智能车制作

标题: 图像处理遇到点问题,求大神指教!!!!!! [打印本页]

作者: 駺珩忝丅    时间: 2012-12-26 02:37
标题: 图像处理遇到点问题,求大神指教!!!!!!
求大神指导,我的摄像头设置采集到的图像为88列.但是为什么写黑线算法时,当只扫描到单边沿时,算法里面我设定的值是只有右边沿,设左边沿为0。只有左边沿,设右边沿为88。但是实际看左右黑线函数反馈回来的值却是左边沿为5,右边沿为76。这是怎么回事,不应该是0和88吗??????求赐教!!!!!!
作者: microconfig    时间: 2012-12-26 02:37
LZ,不知你所说的“把将列数改小比如说改成64行”是改动的图像数组的大小还是改动的“youhei=88”这个语句。不过我觉得你这个程序有溢出的危险。
假设,在你原来的的程序里面,j1=you_hei[i+1];赋值的时候,you_hei[i+1]刚好等于88,那么,在你后面判断语句里面的imagine[j1+1]和imagine[j1+2]的j1+1和j1+2都超出了数组的范围。同样,如果you_hei[i+1]刚好等于0,那么j1=0,j1-1=-1,j1-2=-2.这也会造成数组越界。
我不能断定你的这个超出数组范围的判断会导致程序出现什么样的状况。但是,很有可能你的问题就出在这里的越界上面。
你可以加上一个限定试试看,避免出现越界的情况。
我能力也比较有限,暂时没看出来其它问题,说不定其他的网友能看出来。

作者: microconfig    时间: 2012-12-26 11:42
LZ你好,看到你的问题没有人回答,我觉得是因为你没有把问题描述清楚。这种情况我觉得大部分是因为代码里面的逻辑上出现了问题。没有代码的话,也很难有人能一口断定你的错误所在。而且,我觉得也不太会有人能有空去读你的代码。
一般来说可以通过单步调试的方法找到问题所在。运行程序并且在提取黑线的函数里面单步执行,并在Watch里面添加你的返回变量,看看返回值5是如何产生的。
有可能是你在提线的时候,循环范围设置有误,导致到了对应的行,被误判成黑线返回了。
具体情况只能靠lz自己单步调试分析了。
作者: 駺珩忝丅    时间: 2012-12-26 12:37
microconfig 发表于 2012-12-26 11:42
LZ你好,看到你的问题没有人回答,我觉得是因为你没有把问题描述清楚。这种情况我觉得大部分是因为代码里面 ...

初次发帖,有什么不好的请见谅。但是我如果将列数改小比如说改成64行,上述情况就不会发生。左右边界数据就正常。
[img]file:///C:/Users/Administrator/AppData/Roaming/Tencent/Users/1457674704/QQ/WinTemp/RichOle/HLBXI(08V1%253S3[F~N%7BQC85.jpg[/img] 程序大致是这种思路。这个问题真心困扰我们很久啦!!!求帮助


作者: 駺珩忝丅    时间: 2012-12-26 12:39
駺珩忝丅 发表于 2012-12-26 12:37
初次发帖,有什么不好的请见谅。但是我如果将列数改小比如说改成64行,上述情况就不会发生。左右边界数据 ...

[attach]37795[/attach]
作者: mxj1005071012    时间: 2013-1-22 00:01
不懂啊




欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2