用滑动条来简化canny阈值参数调节

写程序用canny做边缘检测时调参数很麻烦,做个滑动条来节省人力

#include<iostream>
#include "opencv2/opencv.hpp"
using namespace std;
using namespace cv;

Mat src,dst;
#define WINDOW_NAME "canny"
int g_nThreash=30;
int g_nMaxThreash=300;

static void on_Track_Canny(int, void *)  
{
	
	Canny(src,dst,g_nThreash,g_nThreash*3,3);
    imshow(WINDOW_NAME, dst);
}


int main(int argc,char** argv)
{
	if(argc<2)
	{
		return -1;
		cout<<"Error!please input the path of image!!!"<<endl;
	}

    src=imread(argv[1]);
	imshow("src",src);
	
	if(src.empty())
	{
		cout<<"Load image error!!!"<<endl;
		return -1;
	}
	GaussianBlur(src,src,Size(3,3),0,0);

	namedWindow(WINDOW_NAME,WINDOW_AUTOSIZE);
	createTrackbar( "Threath:", WINDOW_NAME, &g_nThreash, g_nMaxThreash, on_Track_Canny); 
	waitKey();
	return 0;
}

运行截图:

猜你喜欢

转载自blog.csdn.net/andylanzhiyong/article/details/81366850