0
所以我有一个已经用sobel方法处理过的图像,现在我需要提取该图像。使用emgu cv扫描图像
我的问题是我如何开始扫描图像从中线uo和逐行逐行,并且当边数少于60时,记录该坐标以裁剪图像。
有问题的图像是条形码,并且此方法只适用于仅提取条形图。问题是用emgu cv实现。
更新:
我下面本文介绍的方法:http://bit.ly/HUWdcy
这个问题指涉到C.图像提取章
所以我有一个已经用sobel方法处理过的图像,现在我需要提取该图像。使用emgu cv扫描图像
我的问题是我如何开始扫描图像从中线uo和逐行逐行,并且当边数少于60时,记录该坐标以裁剪图像。
有问题的图像是条形码,并且此方法只适用于仅提取条形图。问题是用emgu cv实现。
更新:
我下面本文介绍的方法:http://bit.ly/HUWdcy
这个问题指涉到C.图像提取章
检查cv::threshold
和cv::reduce
功能。
首先创建一个二进制映射出你的边缘图像,条纹上有黑色,背景上有白色。
喜欢这个小例如:阈
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
后边缘
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
后,或者CV_SUM
或CV_AVG
,并且您将条码存储在一行中
reduce
与
例子:
0 1785 0 0 1785 1785 1785 0
现在,重新申请一个门槛:
0 1 0 0 1 1 1 0
感谢您的回答,但我现在的问题是找到PF代码中的边缘,我也做了形象如上面的文章中所提到的那样进行处理,然后将sobel算子应用于图像。现在看代码边缘,我认为我可以从图像的中间上下移动,并检查像素是否相等,对于我知道它们以101开头和结尾的边,但是在读取像素时,我不会收到这样的东西,只是很多0,然后1. – celsoap7 2012-04-05 00:58:59
和我看到你的答案,你已经考虑代码,没有背景,并使用减少方法把矩阵只在一个向量,我的问题是,我无法在我的项目中执行reduce方法,例如cvinvoke.cvreduce(...)和img.reduce(...)不起作用,我所提供的参数是错误的,如果您可以帮助会很好。 – celsoap7 2012-04-05 01:04:10
@ celsoap7我没有时间没有代码栏的经验来帮助你。我希望这是一个开始,我邀请你加深学习和尝试。 – Sam 2012-04-05 05:31:12