【发布时间】:2020-03-20 18:50:34
【问题描述】:
我正在创建用于从 7 段显示压力计读取值的系统。为了检测数字(七段显示)仪表中的数字和值,我通过以下链接:
- https://hackernoon.com/building-a-gas-pump-scanner-with-opencv-python-ios-116fe6c9ae8b
- https://www.pyimagesearch.com/2017/02/13/recognizing-digits-with-opencv-and-python/
- https://www.kurokesu.com/main/2017/02/20/dumb-thermometer-gets-digital-output/
- https://www.calloftechies.com/2017/12/character-recognition-explained.html
根据上述链接的说明,我创建了以下读取数字的步骤:
- 将图像转换为灰度图像。
- 使用 Otsu 的 阈值和二进制逆算法生成二进制图像。
- 使用 Otsu 的 阈值应用 Canny 边缘检测。
- 在 Canny 边缘检测上查找
FindContours。
这对某些图像效果很好,但是当表盘有一些浅色时,它就不起作用了。
浅色原图。 灰度图像 使用 Otsu 和二进制逆的阈值应用图像
可以看到Panel之间没有大的色差 显示部分和仪表区域,因此 Otsu 将整个表盘转换为 忽略面板部分发白
请帮我找出矩形 提前致谢。
【问题讨论】:
-
您是否考虑过不使用 otsus,而是尝试找到适用于您所有情况的固定阈值?
-
@TA:“适用于所有情况的固定阈值”:这永远行不通。
-
@TA : 我曾尝试使用固定阈值,但由于所有图像的光线和角度不同,因此不适用于所有图像。
标签: opencv image-processing ocr emgucv seven-segment-display