【发布时间】:2011-04-25 07:56:37
【问题描述】:
我希望我可以从 stackoverflow 社区获得一些指导,以解决我在高级项目中遇到的困境。首先,我想声明我是一个新手程序员,我相信你们中的一些人会很快告诉我这个项目超出了我的想象。我很快就意识到这可能是真的。
现在已经不碍事了,让我给出一些定义:
项目目标: 该项目的目标,就像许多其他人试图在各种 SO 问题中实现的一样(其中许多在这项工作的过程中对我非常有帮助),是检测 停车位是否已满或可用,最终将其报告给用户(最好通过 iPhone 或 Droid 或其他易于使用的移动应用程序——由于时间限制,这方面很快被认为超出了我的工作范围)。
使用工具: 我大量使用了 AForge.Net 库的资源,它为我提供了将项目整合到一起的所有构建块,包括从 IP 摄像机捕获视频、对图像应用过滤器并最终完成目标的检测。结果,你就会知道我选择用 C# 编程,主要是因为初学者易于使用。其他选项包括 MATLAB/C++、带有 OpenCV 的 C++ 和其他替代方案。
问题
这是我遇到问题的地方。下面链接了一张在 AForge 图像处理实验室中经过预处理的图像。使用的过滤器和过程的顺序是:灰度、直方图均衡、Sobel 边缘检测,最后是 Otsu Threshholding(尽管我不相信需要最后一步)。
http://i.stack.imgur.com/u6eqk.jpg
当然,您可以用肉眼从图像中看出,检测到的边缘序列显然是停在我用摄像头监控的空间中的汽车。这些汽车的清晰定义是亮化车轮的图案,这种“双铁轨”图案基本上代表了侧窗的外边缘,甚至在这种情况下也是车牌的轮廓。具体来说,在项目的延续中,选择的摄像机将是一个 PTZ,以覆盖尽可能多的街区,因此我只想关注汽车的侧面特征(消除车牌等因素) .也可以考虑天窗的矩形等特征,但显然这不是汽车的普遍特征,而一般的窗户轮廓是。
我们都可以看到这些模式存在差异,当然会因汽车品牌和型号而异。但是,通常这个序列不仅可以成功检索所需的特征,而且还可以消除视线中的道路(重要的是,如果您要检测空白空间,我打算使用道路颜色作为“第一个试金石”......如果我检测到与道路数据一致的灰度级,特别是如果在一个区域中没有检测到边缘,我觉得我可以安全地假设一个空白空间)。我的问题是这样的,希望它足够通用,对网站上的其他人实际上有益:
重点问题:
有没有办法拍摄一个图像片段(通过裁剪),然后将检测到的边缘序列与来自相机的未来新帧进行比较?更具体地说,有没有办法做到这一点,同时允许余地/基本上为边缘的微小差异创建公差阈值?
关于这个问题的个人想法/头脑风暴:
- 我确信有一种方法可以逐个像素地进行逐个比较 - 裁剪到边缘周围的矩形,然后将裁剪后的图像滑过新处理的帧以逐个像素进行比较,但这不会除非您与检测到的边缘完全匹配,否则不会特别有帮助。
感谢所有帮助,我也很乐意根据需要进行澄清。
【问题讨论】:
-
很抱歉,由于信息太多,我无法真正理解这个问题(而且我不知道哪些相关,哪些不相关)。也许我很慢,但我认为你应该集中你的问题。
-
试图提供一点澄清。如您所见,我倾向于罗嗦的一面。
标签: c# image-processing edge-detection image-comparison