Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用emgu cv扫描图像_C#_Opencv_Emgucv - Fatal编程技术网

C# 使用emgu cv扫描图像

C# 使用emgu cv扫描图像,c#,opencv,emgucv,C#,Opencv,Emgucv,我有一张用sobel方法处理过的图像,现在我需要提取这张图像 我的问题是如何开始从中线uo开始逐行扫描图像,当边数小于60时,记录坐标以裁剪图像 所讨论的图像是条形码,这种方法应该只用于提取条形码。问题在于emgu cv的实现 更新: 我遵循本文描述的方法: 此问题与C.图像提取章节有关检查cv::threshold和cv::reduce功能 首先,我将用你的边缘图像创建一个二值贴图,条纹上是黑色,背景上是白色 就像这个小例子: 后边缘 1 70 0 0 85 128 99 0 1 70

我有一张用sobel方法处理过的图像,现在我需要提取这张图像

我的问题是如何开始从中线uo开始逐行扫描图像,当边数小于60时,记录坐标以裁剪图像

所讨论的图像是条形码,这种方法应该只用于提取条形码。问题在于emgu cv的实现

更新:

我遵循本文描述的方法:


此问题与C.图像提取章节有关

检查
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
,将图像“投影”到其一个维度上,然后将条形码存储在一行中

使用
总和
减少
的示例:

0 1785 0 0 1785 1785 1785 0
现在,重新应用阈值:

0 1 0 0 1 1 1 0

谢谢你的回答,但我现在的问题是找到代码的边缘,我已经完成了上面文章中提到的每次图像处理,然后将sobel操作符应用到图像。现在看到代码边缘,我想我可以从图像的中间向上和向下,检查像素是否相等,因为我知道它们的开头和结尾都是101,但是用我读取的像素,我没有得到这样的东西,只是很多0个,然后是1个,我在你的答案中看到,你已经考虑了代码,在没有背景的情况下,使用reduce方法将矩阵放在一个向量中,我的问题是我无法在我的项目中执行reduce方法,例如cvinvoke.cvreduce(…)和img.reduce(…)不起作用,我认为我放的参数是错误的,如果你能帮助我,那就太好了。@celsoap7我没有时间,也没有使用代码条的经验来帮助你。我希望这是一个开始,我邀请你们更深入地学习和尝试。