我在C#.NET中使用EmguCV,并试图隔离或检测图像中的白色矩形(照片)。我们无法控制我们收到的照片质量。计划是找到这个矩形并执行一些处理步骤以增加ocr工作的机会(我们试图检测大黑盒子上方的文本行)。
此处提供的示例图片: http://imgur.com/Qa0Rzmu
我尝试了很多教程和示例项目 - 边缘检测,样本拆分,LicensePlateRecognition,ShapeDetection,SURFFeature,TrafficSignRecognition。但没有成功。
对此的要求不是实时的,但处理一个图像也不需要3个小时。
我希望预处理图像,这样Canny Edge检测和HoughLines和FindContours会返回我的形状,我可以根据最小尺寸和宽高比找到这个矩形。
非常感谢任何有关检测白盒的策略的帮助。
谢谢!
答案 0 :(得分:0)
一种简单的方法可以是:首先平滑图像。
Image<Bgr, byte> theSmoothImage = theImage.SmoothBlur(25, 25);
甚至更好:
Image<Bgr, byte> theSmoothImage = theImage.SmoothMedian(35);
在频道中分割图像
Image<Gray, byte>[] theChannels = theSmoothImage.Split();
然后尝试在通道3 =&gt;中填充白色矩形。 theChannels [2]