这里IplImage img=cvLoadImage("D:\\demo2jpg");如果不加参数,默认读取图像的原通道数。
假如你载入的图像不是单通道的,if(in->nChannels != 1) return 0;这句就直接被执行然后return了,Img2自然什么都么有。
改正:把IplImage img=cvLoadImage("D:\\demo2jpg");
改成IplImage img=cvLoadImage("D:\\demo2jpg",0);//强制转化读取的图像为灰度图
附:cvLoadImage函数使用方法
cvLoadImage( filename, -1 ); //默认读取图像的原通道数
cvLoadImage( filename, 0 ); //强制转化读取图像为灰度图
cvLoadImage( filename, 1 ); //读取彩色图
最简单的方法是,如果大小固定,你跟踪一下在cview类显示的左上角和右下角的位置设为(x1,y1),(x2,y2)(鼠标点那两个点就行)
通过LBUTTONDOWN得到当前鼠标位置设为(x,y)
真实像素值为wh
J=(x-x1)w/(x2-x1)
I=(y-y1)H/(y2-y1)
w和h你要想明白,容易搞混
以上就是关于opencv 将灰度图进行边缘检测全部的内容,包括:opencv 将灰度图进行边缘检测、在MFC中的单文档中通过OPENCV的IplImage把图像显示出来后,在View类中得到鼠标坐标(x,y)。、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)