// ConsoleApplication3_6_23.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include<opencv2/opencv.hpp>
#include<iostream>
using namespace std;
using namespace cv;
Mat src,dst,gray;
int pro_type = 0;
char* windowName = "demo";
char* windowName1 = "demo_pro";
void Image_pro(int,void*);
int _tmain(int argc, _TCHAR* argv[])
{
src = imread("test.png");
if(!src.data)
return -1;
namedWindow(windowName,CV_WINDOW_AUTOSIZE);
imshow(windowName,src);
GaussianBlur(src,src,Size(3,3),0,0,BORDER_DEFAULT);
cvtColor(src,gray,CV_RGB2GRAY);
namedWindow(windowName1,CV_WINDOW_AUTOSIZE);
createTrackbar("Type : 0-sobel 1-laplace 2-canny /n",
windowName1,&pro_type,2,Image_pro);
Image_pro(0,0);
waitKey(0);
return 0;
}
void Image_pro(int,void*){
Mat grd_x,grd_y;
Mat abs_grd_x,abs_grd_y;
Mat la_dst;
switch (pro_type)
{
case 0 :
Sobel(gray,grd_x,CV_16S,1,0,3,1,0,BORDER_DEFAULT);
convertScaleAbs(grd_x,abs_grd_x);
Sobel(gray,grd_y,CV_16S,0,1,3,1,0,BORDER_DEFAULT);
convertScaleAbs(grd_y,abs_grd_y);
addWeighted(abs_grd_x,0.5,abs_grd_y,0.5,0,dst);
break;
case 1:
Laplacian(gray,la_dst,CV_16S,3,1,0,BORDER_DEFAULT);
convertScaleAbs(la_dst,dst);
break;
case 2:
Canny(gray,dst,20,50 * 3,3);
break;
default:
break;
}
imshow(windowName1,dst);
}
1、
该函数接受了以下参数:
函数接受了以下参数:
输入参数:
原文:http://blog.csdn.net/h_wlyfw/article/details/34508537