cv2.adaptiveThreshold函数类型不匹配解决

 报错日志如下:

---------------------------------------------------------------------------
error                                     Traceback (most recent call last)
Cell In[38], line 1
----> 1 mask_high = cv2.adaptiveThreshold(img, #输入图像
      2                                 1, #超过阈值的部分取值,其余取为0(对于cv.THRESH_BINARY而言)
      3                                 cv2.ADAPTIVE_THRESH_MEAN_C,cv2.THRESH_BINARY,
      4                                 3, #局部邻域大小,如3、5、7等
      5                                 0.1) #偏移值调整量,用均值或高斯计算阈值后,加这个值就是最终阈值。
      6 mask_low = cv2.adaptiveThreshold(img, 1, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY_INV, 3, -0.1)
      7 change_mask_union = (~mask_high+2)*(~mask_low+2)

error: OpenCV(4.6.0) C:\b\abs_d8ltn27ay8\croot\opencv-suite_1676452046667\work\modules\imgproc\src\thresh.cpp:1674: error: (-215:Assertion failed) src.type() == CV_8UC1 in function 'cv::adaptiveThreshold'

我在输入图像后甚至使用了img.astype(np.uint8)也无效,使用matplotlib.pyplot的imshow函数查看后甚至依然是灰度图

解决方法是读取时将imread函数的flags置为0,而且注意plt.imshow和cv2.imshow两种函数的色彩模式不同,如果为了检验结果,尽量用后者,否则可能会掩盖问题

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值