Also fixed some typos and code alignment Also adapted tutorial CPP samples Fixed some identation problems
		
			
				
	
	
		
			64 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			64 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| /**
 | |
|  * @file Sobel_Demo.cpp
 | |
|  * @brief Sample code using Sobel and/orScharr OpenCV functions to make a simple Edge Detector
 | |
|  * @author OpenCV team
 | |
|  */
 | |
| 
 | |
| #include "opencv2/imgproc/imgproc.hpp"
 | |
| #include "opencv2/highgui/highgui.hpp"
 | |
| #include <stdlib.h>
 | |
| #include <stdio.h>
 | |
| 
 | |
| using namespace cv;
 | |
| 
 | |
| /**
 | |
|  * @function main
 | |
|  */
 | |
| int main( int, char** argv )
 | |
| {
 | |
| 
 | |
|   Mat src, src_gray;
 | |
|   Mat grad;
 | |
|   const char* window_name = "Sobel Demo - Simple Edge Detector";
 | |
|   int scale = 1;
 | |
|   int delta = 0;
 | |
|   int ddepth = CV_16S;
 | |
| 
 | |
|   /// Load an image
 | |
|   src = imread( argv[1] );
 | |
| 
 | |
|   if( !src.data )
 | |
|     { return -1; }
 | |
| 
 | |
|   GaussianBlur( src, src, Size(3,3), 0, 0, BORDER_DEFAULT );
 | |
| 
 | |
|   /// Convert it to gray
 | |
|   cvtColor( src, src_gray, COLOR_RGB2GRAY );
 | |
| 
 | |
|   /// Create window
 | |
|   namedWindow( window_name, WINDOW_AUTOSIZE );
 | |
| 
 | |
|   /// Generate grad_x and grad_y
 | |
|   Mat grad_x, grad_y;
 | |
|   Mat abs_grad_x, abs_grad_y;
 | |
| 
 | |
|   /// Gradient X
 | |
|   //Scharr( src_gray, grad_x, ddepth, 1, 0, scale, delta, BORDER_DEFAULT );
 | |
|   Sobel( src_gray, grad_x, ddepth, 1, 0, 3, scale, delta, BORDER_DEFAULT );
 | |
|   convertScaleAbs( grad_x, abs_grad_x );
 | |
| 
 | |
|   /// Gradient Y
 | |
|   //Scharr( src_gray, grad_y, ddepth, 0, 1, scale, delta, BORDER_DEFAULT );
 | |
|   Sobel( src_gray, grad_y, ddepth, 0, 1, 3, scale, delta, BORDER_DEFAULT );
 | |
|   convertScaleAbs( grad_y, abs_grad_y );
 | |
| 
 | |
|   /// Total Gradient (approximate)
 | |
|   addWeighted( abs_grad_x, 0.5, abs_grad_y, 0.5, 0, grad );
 | |
| 
 | |
|   imshow( window_name, grad );
 | |
| 
 | |
|   waitKey(0);
 | |
| 
 | |
|   return 0;
 | |
| }
 |