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
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
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
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.
更多回答(4 个)
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')
4 个评论
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
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
4 个评论
Image Analyst
2022-3-3
编辑:Image Analyst
2022-3-3
@YOGITAA YOGITAA, here is the code:
verticalProfile = mean(grayImage(:, column1:column2), 2);
horizontalProfile = mean(grayImage(row1:row2, :), 1);
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
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
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
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
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 Center 和 File Exchange 中查找有关 Surface and Mesh Plots 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!