opencv python 单波段tiff加载问题&&error: (-210:Unsupported format or combination of formats) CV_8UC1 CV_32S

问题1tiff无法加载彩色或灰色

opncv 4.0+
python 3.7+

  • python好像智能默认加载三个波段的图片,虽然支持tif格式,但是单波段的tif无法加载灰度图像
  • 解决方法:
    1. 用cv.IMREAD_UNCHANGED或-1
      • 相当于是加载原数据,
      • (不知道为什么2也可以)
    2. 根据需要自己设置波段

报错:

OpenCV(4.5.1) C:\Users\appveyor\AppData\Local\Temp\1\pip-req-build-oduouqig\opencv\modules\imgproc\src\contours.cpp:197: error: (-210:Unsupported format or combination of formats) [Start]FindContours supports only CV_8UC1 images when mode != CV_RETR_FLOODFILL otherwise supports CV_32SC1 images only in function ‘cvStartFindContours_Impl’

  • 错误原因
    • 需要CV_8UC1但是数据却是CV_32SC1
  • 解决方法1
    1. 灰度图导入数据就没错了(我没成功,网上都是c++的,python可能不行)
  • 解决方法2
    1. 将数据转化为对应数据
      1. 百度解读CV_8UC1和CV_32SC1可以知道,将float32转化为unit8就行
      2. 示例:
        t = t.astype(np.float32) / 255
        t = (t * 255).astype(np.uint8)
        
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值