【发布时间】:2012-08-11 11:20:41
【问题描述】:
一个电视屏幕识别项目,我需要从一个图像中剪辑电视屏幕。
电视屏幕实际上是矩形的。但很明显,电视屏幕在手机摄像头的图像中变形了。我的问题是:
- 如何检测图像中的任意 4 边多边形(不是矩形)。
- 在我知道图像上的多边形区域后,如何将区域检索到 Mat。
- 完成任务 2 后,如何将 4 边多边形的 Mat 转换为固定 W/H 无线电的矩形 Mat。
提供一些代码示例以供参考非常有帮助。
感谢您的回答!
【问题讨论】:
-
'垫子'? 'Mat' 是什么意思,是矩阵吗?
-
你知道电视屏幕的长宽比吗?当您说它不是矩形时,您的意思是它是透视变形下的矩形还是根本不是矩形?检测电视边缘的方法会根据您对背景的假设而有所不同。如果不了解更多关于图像的信息,任何人都无法为您提供太多帮助。
-
场景是我在家里的电视屏幕上拍照。众所周知,电视屏幕实际是矩形的。但由于透视失真,它在我的照片中是梯形的。那么问题来了,如何检测4边多边形并将其转换为原始矩形。
-
您可能需要结合使用边缘检测和霍夫变换来确定构成矩形边界的线条。从那里,您需要计算单应性。
-
我现在正面临这个问题,我的第一次尝试就是这样,使用 canny 和 hough 来获取线路,但我得到了很多不属于电视的线路。我以某种方式改编了 OpenCV 的正方形示例,但我仍然无法很好地检测到电视。 @tihuBird 你的问题解决了吗?
标签: iphone linux image-processing opencv computer-vision