所以我有一张用sobel方法处理的图像,现在我需要提取该图像。
我的问题是如何从中线uo和逐行扫描图像,当边数小于60时,记录该坐标以裁剪图像。
有问题的图像是条形码,此方法仅适用于提取条形图。问题是用emgu cv。
实现更新
我遵循本文所述的方法:http://bit.ly/HUWdcy
这个问题与C.图像提取章节有关。
答案 0 :(得分:0)
检查cv::threshold
和cv::reduce
功能。
首先从边缘图像创建二进制地图,条纹上有黑色,背景上有白色。
就像这个小例子:
边缘后
1 70 0 0 85 128 99 0
1 70 0 0 85 128 99 0
1 70 0 0 85 128 99 0
1 70 0 0 85 120 99 0
1 74 0 0 85 138 99 0
1 80 0 0 85 128 99 0
1 72 0 0 85 128 99 0
阈值后
0 255 0 0 255 255 255 0
0 255 0 0 255 255 255 0
0 255 0 0 255 255 255 0
0 255 0 0 255 255 255 0
0 255 0 0 255 255 255 0
0 255 0 0 255 255 255 0
0 255 0 0 255 255 255 0
第二个函数可用于使用CV_MAX
或CV_SUM
或CV_AVG
在其中一个维度上“投影”图像,并且您将条形码存储在行
reduce
SUM
的示例:
0 1785 0 0 1785 1785 1785 0
现在,重新申请一个门槛:
0 1 0 0 1 1 1 0