image - 检测图像中的比例尺 - 特征检测或模式识别

标签 image opencv image-processing machine-learning ocr

在图像中查找比例尺以自动将像素缩放到实际长度测量值的最佳方法是什么?
我发现了一些在查找条形码方面所做的工作,这些工作可能是相似的,但它们似乎使用图像的水平和垂直横截面的对比度差异,我认为这对于查找比例尺来说效果不太好。 使用神经网络或某种模式识别可以最好地实现这一点,或者我可以通过进行一些图像处理来提供更合理的逻辑吗? 我对图像处理非常陌生。
我假设大多数人都看过带有比例尺的显微镜图像,但为了以防万一,这里有一些例子来说明我的意思:

some scale bar image 这将返回 100 纳米以及比例尺的像素长度。

another scale bar image 这将返回 500 纳米以及比例尺的像素长度。

another guy 这将返回 5 纳米以及无论比例尺的像素长度是多少。

我开始使用 OpenCV 来解决这个问题,但我愿意接受有关语言、包或算法的建议。有谁对图像处理中的这项任务有任何想法吗?

最佳答案

我认为这个问题的最佳解决方案是从 OCR 的角度来看,这几乎是一个已解决的问题。为此,您需要查看 nm、mm、cm 等图案在图像中的位置。一旦确定了比例字符的位置,就可以假设比例尺位于附近的位置,并且可以与其他水平线段充分区分。可能有两种情况:

  1. 比例尺位于无纹理背景上。在这种情况下,问题应该不会很难,因为可以搜索水平线段。如何找到线段?使用滞后进行边缘检测,计算直线度度量(您可以自己定义)。

  2. 比例尺位于纹理上方,例如 Google 图像。在这种情况下,您可能需要基于 RANSAC 拟合一条线(在对边权重进行阈值化之后),以便可以剪除不与直线对应的虚假候选者。背景中甚至可能有线条。此时,可以选择刻度中最接近字符的0/90角(取决于字符的方向)的线段。另一个好的假设是比例尺上的线条比背景线条具有更强的边缘。

我有一种感觉,这个问题可以纯粹用视觉来解决,不需要太多涉及数据的学习。当然,如果 OCR 系统使用一些内置学习可能是其中的一部分,但是为了获取比例尺,计算机视觉系统应该足够了。

关于image - 检测图像中的比例尺 - 特征检测或模式识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24836347/

相关文章:

c# - IValueConverter 获取空值 - WPF C#

python - 使用 Python 在 OpenCv 中设置 ORB 参数

opencv - 模板匹配噪声图像的最佳方法是什么?

python - 多条水平线和垂直线未显示

matlab - 简化Matlab中meshgrid的使用

python - Tkinter,并排显示两个图像

java - 图像的 JLabel

python - 从屏幕流式传输帧,生成视频

c++ - 神经网络不学习 - MNIST 数据 - 手写识别

python - 使用 Python OpenCV 检测图像中的对象位置