gpt4 book ai didi

OpenCV "Blured Corners"检测器 (C++)

转载 作者:太空宇宙 更新时间:2023-11-03 23:16:45 28 4
gpt4 key购买 nike

我正在使用 OpenCV 3.1 和 Visual Studio C++。

目标

我想检测角点,而不是曲线、矩形或圆形。这意味着,我想找到模糊字符的位置。这里是我感兴趣的领域:

Areas of interest

红色区域具有更高的优先级,因为它们比当前 Shi-Tomasi 角检测器可以检测到的橙色区域更模糊。

我尝试过的

我测试了 Shi-Tomasi 角点检测器 - 代码放在本教程中 http://docs.opencv.org/2.4/doc/tutorials/features2d/trackingmotion/good_features_to_track/good_features_to_track.html当您有清晰的图像时,这非常适合定位带有文本的区域。我想找到使用 OpenCV 的算法,它具有相似(非常好的)性能并且可以检测模糊文本。文本过于模糊的区域(无法阅读 - 检测角落)应该被忽略。也应该忽略具有良好清晰度的区域。

这是我尝试过的示例 - 这是 Shi-Tomasi 教程的结果:

这是源图像:

Source image

这就是我得到的

Results

上图参数 minDistance=5, qualityLevel=0.01,下图 minDistance=10, qualityLevel=0.05 两张图的其余参数相同:

int blockSize = 3; bool useHarrisDetector = false; double k = 0.04;

错误的结果是它没有找到模糊文本 - 右上角或左下角的数字“195”,例如“14 毫秒”和/或“19 毫秒”。相反,它找到了最好的锐利结果,这不是我想要的。

我相信,如果我可以使用某种内核来模糊锐利区域并锐化模糊区域,也许 Shi-Tomasi 角检测器可以找到结果。

有什么实现目标的技巧吗?

最佳答案

我能想到一些小点子,但它可能会耗尽性能。

逐个窗口(3*3 或更大以获得更好的性能)遍历您的图像窗口,并在每次迭代中执行:

  1. 模糊这个窗口。
  2. 计算模糊前后窗口之间的cv::Norm。将此值存储在每个窗口的某个位置。

这些值具有以下属性:

  1. 当模糊度高时它们就低。
  2. 当模糊度较低时它们较高

现在浏览这些值并找到符合您标准的值。

关于OpenCV "Blured Corners"检测器 (C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37895777/

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