2017-10-24 26 views
-3

opencv(python)でトラックバーを使ってLabとYCrCbカラーパレットを作りたいと思っています。私はこのソースコードをRGBチャンネルに持っています。opencv(python)でLabとYCrCbカラーパレットを作る方法

https://i.stack.imgur.com/ybVox.png

あなたはラボチャンネルとYCrCbのチャンネルに変更する方法を教えしますか?申し訳ありません、私はちょうど初心者であり、私は本当にそれについて考えていません。

答えて

0

イメージの色空間を変更するだけで済みます。各コンポーネントの正しい範囲を入れてください。ラボの例は次のとおりです。 a、bの範囲は-127〜127で、127を引いています。

import cv2 
import numpy as np 

def nothing(x): 
    pass 

img = np.zeros((300,512,3), np.uint8) 
cv2.namedWindow('image') 

cv2.createTrackbar('L','image',0,100,nothing) 
cv2.createTrackbar('A','image',0,255,nothing) 
cv2.createTrackbar('B','image',0,255,nothing) 

while(1): 

    cv2.imshow('image',img) 
    k = cv2.waitKey(1) & 0xFF 
    if k == 27: 
     break 

    img= cv2.cvtColor(img, cv2.COLOR_BGR2LAB) 
    l = cv2.getTrackbarPos('L','image') 
    a = cv2.getTrackbarPos('A','image')-127 
    b = cv2.getTrackbarPos('B','image')-127 
    img[:] = [l,a,b] 





cv2.destroyAllWindows() 
+0

YCrCbの正しい範囲は何ですか? – Kimhan

0

トラックバーの値を変更する代わりに、ラボの値を変更することができます。コードの後に​​このコマンドを追加し、コードを変更します。 imshowでnewimgを使用できます。

newimg= cv2.cvtColor(img, cv2.COLOR_Lab2BGR) 
+0

しかし、私の講師は、トラックバーを他の色チャンネルに変更するように指示しました。 RGBの横にどのようなカラーチャンネルを使うべきですか? – Kimhan

関連する問題