OpenCVのチュートリアルをやっています。
たまにアサーションエラーなるものが出てしまい、原因がわからず困っています。
以下の記事がほぼほぼ答えなのだろうとは思っているのですが、下記のプログラムをjupyter notebookで実行すると特定のセルではエラーが出たり、違うセルではエラーが出なかったりで、一貫性がないというか、原因の切り分けができません。
OpenCVのチャンネルエラー対処
おそらく初歩的な質問となるのだろうとは思いますが、お分かりになる方がいらっしゃったらご教示いただけると幸いです。よろしくお願いいたします。
python
1import cv2 2import numpy as np 3# 画像の読み込み 4img1 = cv2.imread('./cat.png') 5img2 = cv2.imread('./opencv-logo-white.png') 6 7# ROIの作成 8rows,cols,channels = img2.shape 9roi = img1[0:rows, 0:cols ] 10 11# RGBからグレースケールに変換 12img2gray = cv2.cvtColor(img2,cv2.COLOR_BGR2GRAY) 13ret, mask = cv2.threshold(img2gray, 10, 255, cv2.THRESH_BINARY) 14mask_inv = cv2.bitwise_not(mask) 15 16# maskを使用して画像を統合 17img1_bg = cv2.bitwise_and(roi,roi,mask = mask_inv) #エラーが出るのはここです 18img2_fg = cv2.bitwise_and(img2,img2,mask = mask) 19 20# img1に貼り付け 21dst = cv2.add(img1_bg,img2_fg) 22img1[0:rows, 0:cols ] = dst 23 24cv2.imshow("img_gry", img_gry) 25cv2.imshow("mask", mask) 26cv2.imshow("mask2", mask_inv) 27cv2.imshow("img1_bg", img1_bg) 28cv2.imshow("img2_fg", img2_fg) 29cv2.imshow("dst", dst) 30cv2.imshow('res',img1) 31cv2.waitKey(0) 32cv2.destroyAllWindows()
エラーコード
--------------------------------------------------------------------------- error Traceback (most recent call last) <ipython-input-1-e5eafd79380c> in <module>() 15 16 # maskを使用して二つの画像を統合 ---> 17 img1_bg = cv2.bitwise_and(roi,roi,mask = mask_inv) 18 img2_fg = cv2.bitwise_and(img2,img2,mask = mask) 19 error: OpenCV(3.4.2) C:\Miniconda3\conda-bld\opencv-suite_1534379934306\work\modules\core\src\arithm.cpp:241: error: (-215:Assertion failed) (mtype == 0 || mtype == 1) && _mask.sameSize(*psrc1) in function 'cv::binary_op'
読み込み画像
python
1print(img1.shape, img1.size, img1.dtype) #(900, 1600, 3) 4320000 uint8 2print(img2.shape, img2.size, img2.dtype) #(222, 180, 3) 119880 uint8
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/02 12:13