我现在在一个程序试图改变图片从正常到二进制化。所以我在python上使用opencv,但是当我在家里完成我的问题,把我的代码带到我的办公室时,它出现了一个未知的错误。所以我来到这里,寻求帮助。
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
import cv2
im = Image.open('card.jpg')
img = np.array(im)
if img.ndim == 3:
img = img[:, :,0]
plt.gray()
ret, thresh1 = cv2.threshold(img, 50, 255, cv2.THRESH_BINARY)
plt.subplot(222)
plt.imshow(thresh1)
plt.show()
回溯是
追溯(最近一次调用):文件“D:/tensorflow/ www.example.com ”,第12行,在ret中,thresh 1 = cv 2。threshold(img,50,255,cv2.THRESH_BINARY)类型错误:不支持src数据类型= 17
1条答案
按热度按时间k97glaaz1#
您可以找到OpenCV类型here的列表。
type = 17
意味着您的图像是CV_8SC3
,也就是char
的3通道矩阵。但是,threshold
只接受(单通道、8位或32位浮点)。
这意味着类型必须是
CV_8UC1
或CV_32FC1
。检查
img
的shape
和dtype
,并根据需要调整img
。