prewitt算子

  1. #include "opencv2/highgui/highgui.hpp"    
  2. #include "opencv2/imgproc/imgproc.hpp"    
  3. using namespace cv;     
  4.   
  5. int main( intchar** argv )    
  6. {    
  7.     Mat src,gray,Kernelx,Kernely;  
  8.        
  9.     src = imread( argv[1] );    
  10.     cvtColor( src, gray, CV_RGB2GRAY );  
  11.     namedWindow("srcImage", 1);    
  12.     namedWindow("dstImage", 1);    
  13.     
  14.     Kernelx = (Mat_<double>(3,3) << 1, 1, 1, 0, 0, 0, -1, -1, -1);    
  15.     Kernely = (Mat_<double>(3,3) << -1, 0, 1, -1, 0, 1, -1, 0, 1);   
  16.       
  17.     Mat grad_x, grad_y;  
  18.     Mat abs_grad_x, abs_grad_y, grad;  
  19.     
  20.     filter2D(gray, grad_x, CV_16S , Kernelx, Point(-1,-1));    
  21.     filter2D(gray, grad_y, CV_16S , Kernely, Point(-1,-1));  
  22.     convertScaleAbs( grad_x, abs_grad_x );  
  23.     convertScaleAbs( grad_y, abs_grad_y );  
  24.       
  25.     addWeighted( abs_grad_x, 0.5, abs_grad_y, 0.5, 0, grad );   
  26.     imshow("dstImage", grad);    
  27.    
  28.     waitKey();    
  29.     return 0;    
  30. }   

猜你喜欢

转载自blog.csdn.net/xhyan523/article/details/80782920