图像处理总结:Canny边缘检测(二)

前言

上节已经讲了图像处理中Canny边缘检测算法原理

https://blog.csdn.net/Aidam_Bo/article/details/86099421

 

这节主要依据原理,代码佐证

话不多说,直接上码

一、源码

#include <opencv2\opencv.hpp>
#include <iostream>
#include <string>
using namespace cv;
using namespace std;

//指向原始图像和处理后图像的指针
IplImage *OriginalImage, *GrayImage, *CannyImage;
//原始图像窗口和后期窗口名字
const char *OriginalWindowsNmae = "边缘检测Img_Original";
const char *GrayWindowsName = "边缘检测Img_Gray";
const char *CannyWindowsName = "边缘检测Img_Canny";

//trackbar回调函数,当trackbar滑条值发生改变时就会触发该函数
void on_trackbar(int Threshold)
{
	cvCanny(GrayImage, CannyImage, Threshold, Threshold * 3, 3);
	cvShowImage(CannyWindowsName, CannyImage);
}
int main()
{
	//图像(彩色)
	char *OriginalImageName = "nini2.jpg";
	char *WindowsToolBar = "Threshold";
	//原始图像(0:灰度图)
	OriginalImage = cvLoadImage(OriginalImageName, 260);
	GrayImage = cvLoadImage(OriginalImageName, 0);
	CannyImage = cvCreateImage(cvGetSize(GrayImage), IPL_DEPTH_8U, 1);
	//创建显示原图的窗口
	cvNamedWindow(OriginalWindowsNmae, 1);
	//创建显示原图的窗口
	cvNamedWindow(GrayWindowsName, 1);
	//创建显示处理后图像的窗口
	cvNamedWindow(CannyWindowsName, 1);
	//创建滑条
	int ThresholdEdge = 1;
	cvCreateTrackbar(WindowsToolBar, CannyWindowsName, &ThresholdEdge, 100, on_trackbar);
	//显示原始图像(彩色图)
	cvShowImage(OriginalImageName,OriginalImage);
	//显示原始图像(灰度图) 
	cvShowImage(GrayWindowsName, GrayImage);
	on_trackbar(1);

	cvWaitKey();
	//销毁窗口
	cvDestroyWindow(OriginalWindowsNmae);
	cvDestroyWindow(GrayWindowsName);
	cvDestroyWindow(CannyWindowsName);
	//释放图像
	cvReleaseImage(&OriginalImage);
	cvReleaseImage(&GrayImage);
	cvReleaseImage(&CannyImage);


	return 0;
}

二、效果图

对 (倪妮版) >=-=<

原图:

OriginalImage

灰度图:

GrayImage
​​​​​


Canny算法处理后:
 

Canny算法

阀值=15时

阀值=15

 

 

.阀值=30时

.阀值=30时

阀值=60时

阀值=60时

阀值=100时


 

阀值=100时

 


完工~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值