How Sobel Operator works in edge function?

C
c_j · Feb 6, 2023 · 2K views
Question
What does the edge function do when using the Sobel operator? How to automatically choosing a threshold? The edge is different from my own Sobel function.  
Expert Answer
Profile picture of Prashant Kumar
Prashant Kumar PhD Expert
Answered Nov 20, 2025
The sobel operator is used in Image processing edge detection, it works in the following manner
1.) Compute gradient in X direction
This can be done by multiple methods, simplest is to use conv2 function, call the resultant image Gx
2.) Compute gradient in Y direction
This can be done by multiple methods, simplest is to use conv2 function, call the resultant image Gy
3.) Obtain magnitude of the resultant image
I = sqrt(Gx*Gx + Gy*Gy)
4.) Choose threshold based on application
 
the following lines of code does all the above steps
 
G  = imread('cameraman.tif')
Gx = conv2(G , [1 0 -1;...
                2 0 -2;...
                1 0 -1]); 
Gy = conv2(G , [1  2  1;...
                0  0  0;...
               -1 -2 -1]);
I = sqrt(Gx.*Gx + Gy.*Gy);
I_final = I > 150  % choose the thresold on your application need, experiment with different value to pick the best 
imshow(255*I_final)
OR
you can use the inbuilt function in MATLAB that does the same functionality
 
I = imread('cameraman.tif');
I = edge(I, 'sobel') % there are also other operators like canny
imshow(I)

 

Have a different question? Ask here

Get a Free Consultation or a Sample Assignment Review!