这个错误通常是由于数据类型不匹配引起的,可以尝试将数据类型转换为CV_8U或CV_8S。以下是一个示例代码:
import cv2
img = cv2.imread("test.png")
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
ret, mask = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU)
result = cv2.bitwise_and(img, img, mask=mask.astype('uint8'))
cv2.imshow("Original Image", img)
cv2.imshow("Mask", mask)
cv2.imshow("Result", result)
cv2.waitKey(0)
cv2.destroyAllWindows()
这里我们首先读取一个彩色图像,并将其转换为灰度图像。然后使用OSTU阈值方法对图像进行二值化,并反转颜色以得到掩码图像。在进行按位与操作时,我们明确地将掩码图像的数据类型转换为uint8类型。