【问题标题】:How to know the threshold value when using the Open CV adaptiveThreshold() method?使用 Open CVadaptiveThreshold() 方法时如何知道阈值?
【发布时间】:2019-01-25 23:58:58
【问题描述】:

当使用 OpenCV 的 adaptiveThreshold() 方法时,它只返回图像。但我想知道使用的阈值(如在固定的thresholdvalue() 方法中)。知道如何获得它吗?

【问题讨论】:

  • 此函数对每个像素使用不同的阈值。 documentation 准确解释了这些阈值是如何计算的,您应该能够使用其中链接的函数来重现该阈值。有什么不清楚的地方请告诉我们。
  • 我不清楚如何重现它。你能解释一下吗?我对图像处理和 openCV 还很陌生。

标签: python image python-2.7 opencv image-processing


【解决方案1】:

正如您在the documentation to adaptiveThreshold 中所读到的,输出是通过使用不同值对每个像素进行阈值处理而获得的。这些值是通过两种方法之一获得的,具体取决于参数adaptiveMethod的值:

output = cv2.adaptiveThreshold(input, 255, adaptiveMethod, THRESH_BINARY, blockSize, C);

相当于:

if adaptiveMethod == cv2.ADAPTIVE_THRESH_MEAN_C:
    T = cv2.blur(input, blockSize);
else: # adaptiveMethod == cv2.ADAPTIVE_THRESH_GAUSSIAN_C
    T = cv2.GaussianBlur(input, blockSize);
T -= C;
output = input > T;

请注意,> 默认情况下将输出设置为 255,如果条件为真,这就是为什么我选择 255 作为 maxValue 参数的值 adaptiveThreshold

[我没有运行上面的代码,但我有理由相信它可以像宣传的那样工作。如果有任何问题,请发表评论。]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-21
    • 1970-01-01
    • 1970-01-01
    • 2020-03-22
    相关资源
    最近更新 更多