检测扫描图像中的任意形状

时间:2014-09-08 23:25:49

标签: c# c++ opencv emgucv

我正在与Emgu CV合作,以确定图像区域是否包含任意形状。我是Open和Emgu图书馆(以及他们的社区)的新手,并且担心我的头脑,但是这里有。

图像是扫描形式(纸质文档),“用户”圈出/检查/查看给定区域。例如,假设我有一个简单的纸质表单,其中包含一个包含三个项目的组。该群体是“性别”,可用的选择是“男性”,“女性”和“其他”。用户X通过“女性”写入复选标记;用户Y圈出“其他”;并且用户Z在“男性”旁边绘制了一个漂亮的独角兽。

现在,我有没有标记的表格示例。我只是使用嵌套模板匹配1)找到“性别”组,2)在性别组的子图像中找到项目(男性,女性,其他)(性能现在是次要的准确性)。然后我模糊(高斯)并对结果图像进行二值化(对每个形式进行阈值调整),并采用2 bin直方图。我比较了规范化模板和观察到的直方图,得到了一个布尔结果(true:任意形状存在/假:形状不存在)。

这个过程没问题,但不是很好。我有4个形式,约500个字段,平均精度为70%。该程序的输出正在为预测模型提供信息,并且表单的字段是强预测器候选者,因此我想将正确/总比率提高几个等级(理想情况下> .90)。

我尝试过轮廓比较,但由于扫描质量差,扫描图像墨水量不足,标记/表格类型之间的矢量长度不同等原因,这种情况不准确。

所以(最后!)我的问题是:是否有任何Open / Emgu CV专家对如何检测扫描文档上的标记有更好的想法?如果情景和问题太模糊,我很乐意清除它们。欢迎使用代码示例(C ++,C#,Python)。

0 个答案:

没有答案