前提・実現したいこと
HSVで閾値を指定してマスク処理を行い、マスクされていない部分の彩度(S)の分散を求めたいです。
わからない部分
RGBが0の場合、彩度は0として考えてよいのでしょうか?
RGBが0の場合、明度は0ですが、色相や彩度はどの値でも取れると認識していて、どう扱えばよいのか困っています。
もしRGBが0の場合は彩度が0であれば、以下のコードを適用できると考えています。
彩度の分散=np.var(彩度の配列[彩度の配列>0])
どうか、お力をお貸しいただけますと幸いです。
該当のソースコード
photos_dir = "/content/drive/MyDrive/1221/D" files = glob.glob(photos_dir + "/*.tiff") # creat green mask (H value for green is from 100/360*179 until 180/360*179) in OpenCV lower_green = np.array([28 , 16, 0]) upper_green = np.array([50, 255, 255]) green_mask=cv2.inRange(img_HSV,lower_green,upper_green) # crop green area img_green_masked = cv2.bitwise_and(img_BGR, img_BGR, mask=green_mask) img_HSV2 = cv2.cvtColor(img_green_masked, cv2.COLOR_BGR2HSV) HSV2=cv2.split(img_HSV2) V1=HSV2[1] Vrow1=np.array(V1).flatten() Vmean1 = Vrow2[0 < Vrow1].mean() VV1=np.var(Vrow1[Vrow1>0])
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/12/27 10:15