OpenCV中的海报检测?
Posted
技术标签:
【中文标题】OpenCV中的海报检测?【英文标题】:Poster detection in OpenCV? 【发布时间】:2016-05-27 14:38:23 【问题描述】:我是图像处理方面的新手,所以请原谅我是新手。我尝试使用squares.cpp 来检测海报(因为它们通常是矩形)不使用昂贵的特征检测器(如 SIFT)。不幸的是,结果非常令人失望(因为它是可以预测的,结果如下)。
实际上,我并不关心是否只检测到海报,因为从统计上来说,海报是图像中最大(或第二大)的矩形(体面的启发式)。
最后一张图片是这段代码使用this Hough Transofrm 代码的结果(这似乎更糟糕!)。
知道如何改进这段代码吗?
[
【问题讨论】:
【参考方案1】:您是否熟悉霍夫变换?如果没有,我强烈建议您阅读它们here 我会采取的方法,因为您的海报似乎与他们的背景有很大的对比,如下:
对图像应用 canny 边缘检测(如果 rgb 边缘检测结果不佳,请考虑在边缘检测之前更改为 HSV 颜色空间),并对 canny 的结果进行矩形霍夫变换。这将从您的图像中提取所有“矩形”形状。从那里,您可以在提取的矩形(可能是文本?)中查找特征,以进一步验证您提取的矩形确实是海报。
这种方法的一个缺点是,如果海报的照片角度太大,可能会不起作用,但只要在海报的相对位置拍摄,就可以了。
【讨论】:
我已经尝试过使用霍夫变换的this 代码,但似乎效果更差(我将使用它更新问题并添加结果)! 啊,所以这段代码试图从霍夫线变换生成一个矩形。在本文中,霍夫变换过程被推广到任何任意形状:sci.utah.edu/~gerig/CS7960-S2010/handouts/… 我会尝试使用特定的矩形变换而不是线变换 “特别是矩形变换”是什么意思?你知道任何实现吗? 您“可能”无法在 Internet 上找到可以神奇地工作的预打包实现。如果你喜欢阅读论文,试试这个:semanticscholar.org/paper/…如果你不喜欢阅读论文,那么考虑复习你的简历基础知识(也许从 O'Reilly 那里拿一本书?他们出版了一本修订的 openCV 书八月,但大部分都可以在网上找到),直到你对简历有足够的了解以利用论文 引用this 回答:“霍夫变换应该适用于矩形检测IFF,您可以假设矩形的边是图像中最突出的线。然后您可以简单地检测4个最大的霍夫空间中的峰值,你得到了你的矩形。”情况并非如此,因为示例图片中有许多其他(甚至更好定义的)行。那么也许霍夫变换不是正确的选择?以上是关于OpenCV中的海报检测?的主要内容,如果未能解决你的问题,请参考以下文章
OpenCV 例程300篇238. OpenCV 中的 Harris 角点检测
OpenCV 例程300篇238. OpenCV 中的 Harris 角点检测
OpenCV 例程 300篇240. OpenCV 中的 Shi-Tomas 角点检测