Opencvを使って髪色を変えたいのですが、思うようにいきません
hue値の値を操作するだけでは黒にできないので、明度を下げる作戦に出たのですが、思うような色になってくれません
python3
1import cv2 2import numpy as np 3img = cv2.imread('gold.jpg') # 画像の読み出し 4height = img.shape[0] 5width = img.shape[1] 6img2 = cv2.resize(img , (int(width*0.5), int(height*0.5))) 7hsv = cv2.cvtColor(img2, cv2.COLOR_BGR2HSV) # BGR->HSV変換 8hsv_2 = np.copy(hsv) 9hsv_2[:, :, 0] = np.where((hsv[:, :, 0]>16) & (hsv[:, :, 0]<25) ,hsv[:, :,(2)]*0.2,hsv[:, :, 0]) 10bgr = cv2.cvtColor(hsv_2, cv2.COLOR_HSV2BGR) 11cv2.imshow('image',bgr) 12cv2.waitKey(0) 13cv2.destroyAllWindows()
自分の当初の思惑では下から6行目の*0.2のところで明度を下げ色を暗くするつもりでしたが写真のような色になります 0.1 0.001と下げても似たような色になるだけでした
根本的にやり方が間違ってるのでしょうか
また、RGBにしてしまうとベタ塗りのような黒になってしまうのでダメでした
!明](b63e9450be6fcde12d5ddaae39328f82.png)
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/16 22:13
2020/08/17 01:28