bitwise_and 方法上的 OpenCV 断言错误

问题描述

import cv2
import numpy as np

img = cv2.imread("Yash.jpeg")
blank = np.zeros(img.shape[:2])

cv2.imshow("YASH",img)
cv2.imshow("Blank",blank)

mask = cv2.circle(blank,(img.shape[1]//2,img.shape[0]//2),150,255,-1)
cv2.imshow("Mask",mask)

masked = cv2.bitwise_and(img,img,mask = mask)  # Error in this line
cv2.imshow("MASKED",masked)

cv2.waitKey(0)
cv2.destroyAllWindows()

** 回溯(最近一次调用最后一次): 文件“D:/pythonProject1/masing.py”,第 13 行,在 掩码 = cv2.bitwise_or(img,mask = mask) cv2.error: OpenCV(4.5.1) C:\Users\appveyor\AppData\Local\Temp\1\pip-req-build-i1s8y2i1\opencv\modules\core\src\arithm.cpp:250: 错误: ( -215: 断言失败) (mtype == CV_8U || mtype == CV_8S) && _mask.sameSize(*psrc1) in function 'cv::binary_op' **

解决方法

只是更正:

blank = np.zeros(img.shape[:2],dtype='uint8')

错误是数据类型错误