gpt4 book ai didi

image - 在图像上定位 "black rectangles"- 与语言无关

转载 作者:太空宇宙 更新时间:2023-11-03 21:27:34 24 4
gpt4 key购买 nike

我正在编写一个小型图像分析程序,只是为了好玩。图像分析一直让我着迷。我正在尝试在扫描文档上定位区域。这些区域将由明确定义的黑色实心矩形(预先打印在页面上)标记。

我的问题是定位矩形。我知道 SIFT\SURF 找到“特征”,但我正在尝试寻找特定的东西。这就是我想做的。我不确定这是“正确”的方式还是有更好的主意。

首先使用一些库,我会将图像变成灰度,也许是 PGM,因为这是我在学校习惯使用的。对于分析,我首先计划通过 OpenCV 中最先进的去歪斜算法或我发现的其他算法来运行图像。一旦我得到了校正后的图像,我就会将它设置在某个相当高的阈值处。矩形将是纯黑色的,因此我使用了相当高的阈值。然后,我将通过实验确定一个大小合适的黑色矩形以在图像上滑动。在图像上滑动我的矩形时,我将确定最大百分比像素相同的区域。我会有一个截止点,比如说 90%。如果我的窗口中 90% 的像素都是黑色的,那么我一定找到了一个矩形。我的推理是,一个真正的黑色矩形滑过“几乎”黑色矩形的东西很可能是黑色矩形。由于我对图像进行了校正,因此我可以假设矩形“足够”垂直上下。然后我可以跟踪在图像上找到矩形的 (x,y) 偏移量并标记它们。

有人会建议更好的方法吗?

最佳答案

有许多可能有效的方法。 (一个人可以很容易地想出 10 种或更多的方法。)


想法 #1 - Canny 边缘检测;找到适合轮廓的矩形


想法 #2 - 使用 Hough 变换查找所有直线;遍历从线交叉点创建的所有区域。


想法 #3 -(对 #2 的改进)通过预处理将 Hough 变换限制为水平和垂直线。


想法#4 - 计算整个图像的水平和垂直轮廓;寻找逢低;遍历所有候选区域。

这个想法是基于这样的假设,即黑色矩形足够大,以至于它们在水平和垂直投影剖面上都留下了“凹陷”,尽管图像中有其他噪声对象,但仍可以检测到。

  • cv::reduce

    • 使用 dim = 0 或 1 分别缩减为一行或一列,
    • 带有 CV_REDUCE_AVG 标志
  • 申请 cv::threshold分别到水平和垂直投影剖面。

  • 对于现在阈值为零/非零的每个配置文件,找到零的游程。这些是可能包含深色矩形的行范围和列范围。

  • 对于每个候选行范围和列范围的组合,计算平均像素值来判断它是否是一个真正的暗矩形。


想法#5 - 使用积分图像(面积求和表)快速计算任意矩形内的平均像素值


预处理思路——使用形态学膨胀(或腐 eclipse )来“抹去”不能成为连续大黑盒的东西。


预处理思想——利用预处理来增强水平和垂直边缘;抑制其他方向的边缘。

关于image - 在图像上定位 "black rectangles"- 与语言无关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22901391/

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