【问题标题】:How to threshold an image 32 bit using Otsu’s Binarization?如何使用 Otsu 的二值化对 32 位图像进行阈值处理?
【发布时间】:2015-10-13 19:20:46
【问题描述】:

我使用以下说明尝试了所有可能性:

ret,thresh = cv2.threshold(img,0,255,cv2.THRESH_BINARY+cv2.THRESH_OTSU)

但它总是给我同样的错误:

错误:函数 cv::threshold 中的 (-215) src.type() == CV_8UC1

有可能对 32 位单通道图像进行阈值处理??!提前致谢

【问题讨论】:

    标签: opencv python-3.x


    【解决方案1】:

    根据cv::threshold 的 OpenCV 文档:

    目前,Otsu 的方法仅适用于 8 位 (CV_8UC1) 图像。

    对于其他方法,根据文档,是有效的单通道矩阵、8 位 (CV_8UC1) 或 32 位浮点 (CV_32FC1)。

    不过,它也应该适用于 16 位 (CV_16SC1) 矩阵

    对于cv::adaptiveThreshold,类型必须是CV_8UC1

    【讨论】:

    • @三木。那么这是不可能的。它对其他阈值方法也有效吗?
    • 它也不适用于自适应阈值;我对大津的方法很感兴趣,没问题。感谢@Miki 提供的信息
    • @Miki,现在可以了。感谢您提供有用的答案;)
    • @MohamedChamsaddin 很高兴它有帮助
    猜你喜欢
    • 1970-01-01
    • 2020-01-25
    • 1970-01-01
    • 2021-10-27
    • 1970-01-01
    • 2015-10-19
    • 2022-06-22
    • 1970-01-01
    • 2012-10-08
    相关资源
    最近更新 更多