gpt4 book ai didi

python - 从直方图的密度自动找到最佳图像阈值

转载 作者:太空狗 更新时间:2023-10-29 21:45:16 25 4
gpt4 key购买 nike

我希望在显示器上执行光学字符识别 (OCR),并希望该程序能够在不同的光照条件下运行。为此,我需要对图像进行处理和阈值处理,使每个数字周围都没有噪声,从而让我能够检测到数字的轮廓并从那里执行 OCR。我需要我使用的阈值来适应这些不同的光照条件。我已经尝试过自适应阈值处理,但我无法让它发挥作用。

我的图像处理很简单:加载图像 (i),灰度 i (g),对 g (h) 应用直方图均衡化,并对 h 应用二值阈值,阈值 = t。我使用了几个不同的数据集,发现使 OCR 始终如一地工作的最佳阈值位于 (h) 直方图(图中唯一没有间隙的部分)中的最高密度范围内。 A histogram of (h). The values t=[190,220] are optimal for OCR

(h) 的直方图。值 t=[190,220] 对于 OCR 是最佳的。此处提供了一组更完整的描述我的问题的图像:http://imgur.com/a/wRgi7

我当前的解决方案有效但笨重且缓慢,它会检查:

    1. There must be 3 digits
2. The first digit must be reasonably small in size
3. There must be at least one contour recognized as a digit
4. The digit must be recognized in the digit dictionary

除非所有情况都被接受,否则阈值将增加 10(从低值开始)并再次尝试。

我可以识别 (h) 的直方图上的最佳阈值这一事实可能只是确认偏差,但我想知道是否有一种方法可以提取该值。这与我之前使用直方图的方式不同,后者更多地是为了寻找峰/谷。

我使用 cv2 进行图像处理,使用 matplotlib.pyplot 进行直方图绘制。

最佳答案

检查这个:link它真的不依赖于密度,它起作用是因为你分离了 2 个最大值。局部最大值是主要类前景 - 左局部最大值(文本像素)和背景右局部最大值(白皮书)。最佳阈值应该最佳地分离这些最大值。最佳阈值位于两个局部最大值之间的局部最小值区域。

关于python - 从直方图的密度自动找到最佳图像阈值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46119539/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com