# How to plot intensity profile of an image

328 views (last 30 days)

Show older comments

##### 1 Comment

Walter Roberson
on 22 Mar 2018

An intensity profile along which direction?

If you want a profile along a horizontal or vertical line then just use array indexing to extract the vector, and then plot it.

### Accepted Answer

Akira Agata
on 22 Mar 2018

Like this?

I = imread('Capture.PNG');

x = [0 size(I,2)];

y = [size(I,1)/2 size(I,1)/2];

c = improfile(I,x,y);

figure

subplot(2,1,1)

imshow(I)

hold on

plot(x,y,'r')

subplot(2,1,2)

plot(c(:,1,1),'r')

hold on

plot(c(:,1,2),'g')

plot(c(:,1,3),'b')

##### 5 Comments

### More Answers (4)

Akira Agata
on 9 Jul 2019

Hi Warid-san,

You can do it by the same way, like the following.

I = imread('Capture.PNG');

% Since size(I,2)/2 = 215.5, I have set the value '215' directly for x

x = [215 215];

y = [0 size(I,1)];

c = improfile(I,x,y);

figure

subplot(2,1,1)

imshow(I);

hold on

plot(x,y,'r')

subplot(2,1,2)

plot(c(:,1,1),'r')

hold on

plot(c(:,1,2),'g')

plot(c(:,1,3),'b')

##### 4 Comments

Vivek
on 10 Aug 2022

Hi Akira San,How Can you plot the 1D profile of a rectangular region instead of just line ?Tx,vivek

Lorenzo Gentili
on 20 Aug 2019

Hi Akira,

I'm trying to obtain an intesity profile of the image below, but I need more than a line. I would like to have at least 5 vertical line in order to understand how the intesity vary in different point of the image ( lets say the 2 boundaries, the center and 2 point between the boundaries and the center). Is it possible to obtain an unique intensity profile that is the sum of 5 intesity profile obtained by the verical lines ?

Thank you for your help

Lorenzo

##### 4 Comments

Image Analyst
on 3 Mar 2022

Edited: Image Analyst
on 3 Mar 2022

@YOGITAA YOGITAA, here is the code:

verticalProfile = mean(grayImage(:, column1:column2), 2);

horizontalProfile = mean(grayImage(row1:row2, :), 1);

r r
on 15 May 2020

Edited: Walter Roberson
on 16 May 2020

I have image of a tumor in it and I want to do it the same way https://www.mathworks.com/matlabcentral/answers/389889-how-to-plot-intensity-profile-of-an-image

, but every time the response is

'improfile' requires Image Processing Toolbox.

Error in line (line 4)

c = improfile(I,x,y);

##### 1 Comment

Walter Roberson
on 16 May 2020

You need the Image Processing Toolbox to use improfile()

improfile() uses linspace() to create vectors of coordinates between the two endpoints, and uses interp2() to interpolate at the coordinates; it does the interpolation once for each color channel.

The question then becomes what coordinates you should interplate at

fransec
on 9 Jun 2020

Hello everybody,

Anyone knows how to make an image profile like ones you showed, but but along the diagonal of an image?

Thank you so much.

##### 2 Comments

Christopher Gordon
on 22 Feb 2021

### See Also

### Products

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!