Edge Detection in MATLAB: Source Code and Explanation

This page provides MATLAB code for edge detection, along with a basic explanation of edge detection methods. We’ll cover the core concepts and present a practical MATLAB implementation.

Edge Detection Methods Basics

  • Edges in an image typically correspond to object boundaries.
  • Edges are essentially pixels where the image brightness changes significantly and abruptly.
  • An edge is a property associated with an individual pixel, calculated based on the image function’s behavior in the pixel’s neighborhood.
  • It’s often represented as a vector variable, having both a magnitude (gradient) and a direction.

Edge detection basics Image: Edge detection basics

Edge Detection: Algorithm Overview

  • Edge information is extracted by examining the relationship between a pixel and its surrounding neighbors.
  • If a pixel’s gray level is similar to its neighbors, it’s unlikely to be an edge point.
  • Conversely, if a pixel has neighbors with drastically different gray levels, it’s a potential edge point.

edge detection algorithm Image: edge detection algorithm

MATLAB Code for Edge Detection

Here’s the MATLAB code for edge detection. You can adjust the threshold value (G) to fine-tune the results.

clear all;
close all;
clc;

G=15; % Threshold value - adjust this to change the output
f=imread('pepper.gif');
figure;imshow(f);

for k1=3:(length(f)-3)
    for k2=3:(length(f)-3)
        if( abs((f(k1,k2)- f(k1,k2+1)) > G) | ...
            abs((f(k1,k2)- f(k1,k2-2)) > G) | ...
            abs((f(k1,k2)- f(k1-1,k2)) > G) | ...
            abs((f(k1,k2)- f(k1-1,k2+2)) > G) | ...
            abs((f(k1,k2)- f(k1-1,k2-2)) > G) | ...
            abs((f(k1,k2)- f(k1+2,k2-2)) > G) | ...
            abs((f(k1,k2)- f(k1-1,k2+2)) > G) | ...
            abs((f(k1,k2)- f(k1+2,k2+2)) > G) );
            x(k1,k2)=1;
        else
            x(k1,k2)=0;
        end
    end
end

figure;imshow(x);

Input Image

You can download the “pepper.gif” image using the following link, or use your own image.

Download Input Image

Input to the MATLAB Code

Edge detection matlab input Image: Edge detection matlab input

Output from the MATLAB Code

Edge detection matlab output Image: Edge detection matlab output