python - python opencv cv2.threshold(), TypeError: Expected cv::UMat for argument 'mat'
问题描述
import numpy as np
import cv2
imgfile = 'mi.jpg'
img = cv2.imread(imgfile,0)
tmp = img.copy()
kernel_sharpening = np.array([[-1,-1,-1],[-1,9,-1],[-1,-1,-1]])
tmp1 = cv2.pyrDown(tmp) # down sampleing
tmp2 = cv2.GaussianBlur(tmp1,(3,3),0) # bluring
tmp3 =cv2.filter2D(tmp2,-1,kernel_sharpening) # sharping
tmp3 = cv2.adaptiveThreshold(img,255,cv2.ADAPTIVE_THRESH_MEAN_C,cv2.THRESH_BINARY,15,2)
cv2.imshow('threshold',tmp3)
cv2.waitKey()
cv2.destroyAllWindows()
上面的代码运行良好。但是,下面的代码不起作用。
高于 cv2.adaptiveThreshold(),低于 cv2.threshold()
openvv版本是4。
import numpy as np
import cv2
imgfile = 'mi.jpg'
img = cv2.imread(imgfile,0)
tmp = img.copy()
kernel_sharpening = np.array([[-1,-1,-1],[-1,9,-1],[-1,-1,-1]])
tmp1 = cv2.pyrDown(tmp) # down sampleing
tmp2 = cv2.GaussianBlur(tmp1,(3,3),0) # bluring
tmp3 =cv2.filter2D(tmp2,-1,kernel_sharpening) # sharping
tmp3 = cv2.threshold(tmp3,127,255,cv2.THRESH_BINARY)
cv2.imshow('threshold',tmp3)
cv2.waitKey()
cv2.destroyAllWindows()
回溯(最后一次调用):文件“down.py”,第 26 行,在 cv2.imshow('threshold',tmp3) 类型错误:参数 'mat' 的预期 cv::UMat
解决方案
推荐阅读
- typescript - 如何表达高阶恒等函数
- accessibility - 装饰图标字体可访问性
- jenkins - 如何将源代码与詹金斯工作生成的 jar 一起存档?
- python - TensorFlow tf.data.Dataset - 根据日期/时间创建批次
- javascript - 函数未定义 node.js 未捕获引用错误
- python-3.x - 打开 Spyder 会出现一个不会自行关闭的命令窗口
- java - java - 如果我在彼此之后添加 2 或 3,arraylist.add 函数将被忽略
- swift - 如何将 Realm Results<> 组合成一个 Result<> 集?
- java - Maven项目上JSP连接的NullPointer错误
- python - 在 matplotlib 中绘制看似随机值的轴