Open Cv - Emgu Cv 如何在灰度图像上找到 7 段显示器的矩形区域

Vis*_*tel 5 ocr opencv image-processing emgucv seven-segment-display

我正在创建用于从 7 段显示压力计读取值的系统。为了检测数字(七段显示)仪表中的数字和值,我浏览了以下链接:

  1. https://hackernoon.com/building-a-gas-pump-scanner-with-opencv-python-ios-116fe6c9ae8b
  2. https://www.pyimagesearch.com/2017/02/13/recognizing-digits-with-opencv-and-python/
  3. https://www.kurokesu.com/main/2017/02/20/dumb-thermometer-gets-digital-output/
  4. https://www.calloftechies.com/2017/12/character-recognition-explained.html

根据上面链接的解释,我创建了以下读取数字的步骤

  1. 将图像转换为灰度图像。
  2. 使用Otsu 的阈值和二进制逆算法生成二进制图像。
  3. 使用Otsu阈值应用 Canny 边缘检测。
  4. 查找FindContoursCanny 边缘检测。

这对于某些图像效果很好,但是当表盘有一些浅色时,这不起作用。

浅色原始图像。 原始图像 灰度图像 在此输入图像描述 使用 Otsu 和二值逆的阈值应用图像 在此输入图像描述

您可以看到面板显示部分和仪表区域之间没有很大的色差,因此大津将整个表盘转换为白色,忽略面板部分

另请参阅下面的图像:原始图像、灰度图像和阈值图像。 在此输入图像描述

在此输入图像描述

在此输入图像描述

请帮我找出矩形, 提前致谢。

小智 1

大津非常善于找到一个有两个主导强度的良好阈值。但是当它们是三个(白色,灰色,黑色)时,它无法猜测你想要分离什么。

如果您在拒绝大部分背景的窗口中应用 Otsu,它会再次正常工作。

在此输入图像描述