Skip to content
Related Articles
Open in App
Not now

Related Articles

MATLAB | Display histogram of a grayscale Image

Improve Article
Save Article
  • Difficulty Level : Medium
  • Last Updated : 26 Jan, 2019
Improve Article
Save Article

An image histogram is chart representation of the distribution of intensities in an Indexed image or grayscale image. It shows how many times each intensity value in image occurs.

Code #1: Display histogram of an image using MATLAB library function.

% Read an Image in MATLAB Environment
% Convert image to grayscale image
# if read image is an RGB image
% Show histogram of image
# using imhist() function

Code #2: Display Histogram of an Image without using MATLAB Library function.

Approach :

  • Read the source image file into image matrix
  • Convert it to grayscale, if it is an RGB image
  • Iterate over image matrix and count the frequency of every possible value of intensity
  • plot the counted frequency

% Read source image file 
img = imread('apple.jpg');
% Convert image to grayscale image 
% get the dimension of the image 
[x, y] = size(img);
% Create a frequency array of size 256
frequency = 1 : 256;
count = 0;
% Iterate over grayscale image matrix 
% for every possible intensity value
% and count them
for i = 1 : 256
    for j = 1 : x
        for k = 1 : y
            % if image pixel value at location (j, k) is i-1
            % then increment count
            if img(j, k) == i-1
                    count = count + 1;
    % update ith position of frequency array with count
    frequency(i) = count;
    % reset count
    count = 0;
n = 0 : 255;
% Display Histogram
stem(n, frequency);
grid on;
ylabel('Number of pixels with such intensity levels -->');
xlabel('Intensity Levels  -->');

Input Image


My Personal Notes arrow_drop_up
Related Articles

Start Your Coding Journey Now!