如何修复 OpenCV 中不支持的格式错误而不每次都更改输入图像的数据类型?

问题描述 投票:0回答:1

在下面的代码中,我正在尝试实现阈值处理,但我需要为每种类型的阈值更改图像的数据类型(numpy 数组),因为我收到了错误。

a = cv.threshold(img.astype('uint8'), 100, 255, cv.THRESH_BINARY)[1]
b = cv.threshold(img.astype('uint8'), 0, 255, cv.THRESH_OTSU)[1]

错误是这样的,

OpenCV(4.8.1) D:\a\opencv-python\opencv-python\opencv\modules\imgproc\src\thresh.cpp:1659: error: (-210:Unsupported format or combination of formats)  in function 'cv::threshold'

有没有办法解决这个问题,而不会在每次运行 opencv 中的函数并且使用的格式不受支持时出现错误?

python opencv image-processing types
1个回答
0
投票

好吧,据我了解,问题是方法需要包含

numpy
值的
uint8
数组,并且你有
int32
。因此,您必须使用
array.astype(np.uint8)
更改它的类型,以便可以将其作为参数传递给方法。如果您只想执行一次,只需创建包含新类型数组的新变量即可。

现在,如果您想将图像加载为

uint8
,考虑到用于存储图像的库和数据格式的限制,您可能会或可能不会这样做。

© www.soinside.com 2019 - 2024. All rights reserved.