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)
        

你可能感兴趣的:(python,python,opencv,人工智能,数据分析)