前提・実現したいこと
こちらのリンク先で使用しているプログラムを使用し、
葉領域のみの画像(葉領域以外を黒塗りしたRGB画像)を作りたいです。
しかし、エラーが出てうまくいきません。
どうすればうまくいくでしょうか。
発生している問題・エラーメッセージ
error: OpenCV(3.4.2) C:\Miniconda3\conda-bld\opencv-suite_1534379934306\work\modules\core\src\arithm.cpp:225: error: (-209:Sizes of input arguments do not match) The operation is neither 'array op array' (where arrays have the same size and type), nor 'array op scalar', nor 'scalar op array' in function 'cv::binary_op'
該当のソースコード
参考にしたサイトでは、マスク画像作成時に、葉領域が黒色だったのですが、逆にするため、そこだけ変更しています。
dst = cv2.bitwise_and(img, img_greenmask)
この行がうまくいっていないみたいです。
python
1import cv2 2import numpy as np 3 4img_in = 'C:\Users\potapotapotato\Desktop\leaf.png' 5 6# load image and change the color spaces 7img = cv2.imread(img_in) 8 9# change BGR to HSV 10# H: 0-179, S: 0-255, V: 0-255 11img_HSV = cv2.cvtColor(img, cv2.COLOR_BGR2HSV) 12 13# split photo into 3 channels (H, S, V) 14img_H, img_S, img_V = cv2.split(img_HSV) 15 16# binary transformation (only use H channnel) 17th, img_H1 = cv2.threshold(img_H, 50 / 360 * 179, 255, cv2.THRESH_BINARY_INV) 18th, img_H2 = cv2.threshold(img_H, 150 / 360 * 179, 255, cv2.THRESH_BINARY_INV) 19img_greenmask = img_H2 - img_H1 20 21#マスク箇所だけ色付け 22dst = cv2.bitwise_and(img, img_greenmask) 23# save 24#cv2.imwrite('C:\Users\potapotapotato\Desktop\output.png', img_greenmask) 25cv2.imwrite('C:\Users\potapotapotato\Desktop\output2.png', dst)
試したこと
dst = cv2.bitwise_and(img, img_greenmask)
この行がうまくいっていないみたいでしたので、
img.shapeで形状を調べてみたところ、
imgが(1000, 750, 3)
img_greenmaskが(1000, 750)
だったので、imgをGrayScaleに変換したところ、グレースケールでの合成はできました。
逆にgreenmaskを3バンドにすればいいんだ!とおもい、
img_greenmask = cv2.cvtColor(img, cv2.COLOR_GRAY2BGR)
にしたところ、それはおかしいやろがい!
とエラー表記を返されました
error: OpenCV(3.4.2) c:\miniconda3\conda-bld\opencv-suite_1534379934306\work\modules\imgproc\src\color.hpp:253: error: (-215:Assertion failed) VScn::contains(scn) && VDcn::contains(dcn) && VDepth::contains(depth) in function 'cv::CvtHelper<struct cv::Set<1,-1,-1>,struct cv::Set<3,4,-1>,struct cv::Set<0,2,5>,2>::CvtHelper'
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/11/10 05:41 編集
2021/11/10 06:22 編集
2021/11/10 06:44