How to plot intensity profile of an image

65 次查看(过去 30 天)
I want to plot the intensity profile of this image. I tried using improfile but I don't really know how it works. Can anyone help?
  1 个评论
Walter Roberson
Walter Roberson 2018-3-22
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.

请先登录,再进行评论。

采纳的回答

Akira Agata
Akira Agata 2018-3-22
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 个评论
Warid Islam
Warid Islam 2019-7-9
Hi,
How can we plot the intensity profile of the same image along the vertical direction instead of the horizontal direction? Thank you.
Elif
Elif 2021-8-4
How can we measure the areas under these curves?

请先登录,再进行评论。

更多回答(4 个)

Akira Agata
Akira Agata 2019-7-9
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')
Capture2.PNG
  4 个评论
Akira Agata
Akira Agata 2020-3-23
Hi Manoj-san,
Could you upload a sample image file for trying?
Vivek
Vivek 2022-8-10
Hi Akira San,How Can you plot the 1D profile of a rectangular region instead of just line ?Tx,vivek

请先登录,再进行评论。


Lorenzo Gentili
Lorenzo Gentili 2019-8-20
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 untitled1.png
  4 个评论
YOGITAA YOGITAA
YOGITAA YOGITAA 2022-3-2
could ypu please share your code, i have the same problem

请先登录,再进行评论。


r r
r r 2020-5-15
编辑:Walter Roberson 2020-5-16
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 个评论
Walter Roberson
Walter Roberson 2020-5-16
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
fransec 2020-6-9
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 个评论
Walter Roberson
Walter Roberson 2020-6-9
[rows, cols, ~] = size(YourImage);
n = min(rows,cols);
prof_diag = improfile(YourImage, [1 n], [1 n]); %diagonal
prof_antidiag = improfile(YourImage, [n 1], [1 n]); %anti-diagonal
Christopher Gordon
Christopher Gordon 2021-2-22
Hey! Question along the same lines. I have 30 vertical lines across a 1024 column image/matrix. Is there a way that I can interpolate/extrapolate the remaining columns to get the entire image/matrix?

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Surface and Mesh Plots 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by