为了自动将像素转换为实际长度测量,找到图像中比例尺的最佳方法是什么?
我发现了一些关于查找条形码的工作,这可能类似,但它们似乎是利用图像水平和垂直横截面的对比度差异来进行的,我认为这对于查找比例尺效果不会很好。使用神经网络还是某种模式识别会是最佳选择,或者我可以通过一些图像处理来提供更合理的逻辑?我对图像处理非常新手。
我假设大多数人都见过带有比例尺的显微镜图像,但以防万一,这里有一些我所指的例子:
这将返回100纳米和比例尺的像素长度。
这将返回500纳米和比例尺的像素长度。
这将返回5纳米和比例尺的像素长度。
我开始使用OpenCV来解决这个问题,但我对语言、软件包或算法的建议持开放态度。关于图像处理中的这项任务,有人有什么想法吗?
回答:
我认为解决这个问题的理想方法是从OCR的角度出发,这几乎是一个已解决的问题。为此,你需要查找图像中类似nm、mm、cm等模式的位置。一旦你找到了比例字符的位置,假设比例尺会位于附近位置,并且与其他水平线段有足够的区别。可以有两种情况:
-
比例尺位于无纹理背景上。在这种情况下,问题应该不难,因为可以搜索水平线段。你如何找到线段?进行带滞后的边缘检测,计算直线度指标(你可以自己定义)。
-
比例尺位于有纹理的背景上,比如谷歌图片。在这种情况下,你可能需要基于RANSAC拟合一条线(在阈值化边缘权重后),以便可以剔除不对应于直线的虚假候选者。背景中甚至可能有线条。此时,你可以选择与比例字符最接近的线段,角度为0/90度(取决于字符的方向)。另一个好的假设是,比例尺上的线条边缘强度会比背景线条更强。
我觉得这个问题可以纯粹通过视觉来解决,而不需要涉及太多数据学习。当然,如果OCR系统使用了一些内置的学习,那可能是其中的一部分,但是为了获取比例尺,计算机视觉系统应该就足够了。