void CCVMFCView::OnCannyBorddetec()
{
IplImage* src = 0;
IplImage* dst = 0;
IplImage* color_dst = 0;
CvMemStorage* storage = cvCreateMemStorage(0);
CvSeq* lines = 0;
int i;
if (workImg->nChannels==3) {
src = cvCreateImage(cvGetSize(workImg), IPL_DEPTH_8U, 1);
cvCvtColor(workImg, src, CV_BGR2GRAY);
}
else {
src = cvCloneImage( workImg );
}
cvFlip(src);
dst = cvCreateImage( cvGetSize(src), 8 ,1 );
color_dst = cvCreateImage( cvGetSize(src), 8, 3 );
cvCanny( src, dst, 50, 200, 3 );
cvCvtColor( dst, color_dst, CV_GRAY2BGR );
cvFlip(color_dst);
m_dibFlag=imageClone(color_dst,&workImg);
Invalidate();
}
Opencv实现Canny算子边缘检测
最新推荐文章于 2025-04-15 21:33:29 发布

本文介绍了一种基于Canny算法的边缘检测实现方法。通过将彩色图像转换为灰度图像,利用Canny算法进行边缘检测,并将结果转换回三通道彩色图像以便于显示。该方法还包括图像翻转和内存分配等步骤。
1853

被折叠的 条评论
为什么被折叠?



