필터 지우기
필터 지우기

Overlay a plot on an image

조회 수: 213 (최근 30일)
Fed
Fed 2021년 2월 8일
답변: Ravi Kumar Pallantla 2022년 8월 10일
Hi,
I have to overlay a plot on a image. Here is my code:
Imm = imread('imageLeft.png');
figure()
imshow(Imm)
hold on
plot(pos_sensor_Lx,pos_sensor_Ly,'-o')
where Imm is the image (634x484x3 uint 8) while pos_sensor_Lx and pos_sensor_Ly are two column vectors 3487x1 double with values all normalized between [0;1].
When I plot the vectors and the image separately, I get this results:
Overlaying them, I ideally had to see the scan path well distribuited on the white and red dots of the image. Anyway when I overlay them I can't see the scan path over the image because of the very small values of the vector elements. Here the result I get:
All the values are clustered as shown.
Is there a way to adjust the image dimensions or the value of the vector elements to get the result I want?
Thank you
  댓글 수: 4
KALYAN ACHARJYA
KALYAN ACHARJYA 2021년 2월 8일
편집: KALYAN ACHARJYA 2021년 2월 8일
@Federica In the image, pixels are positioned based on Indices [0-r] and [0-c] in both in y and x direction. In the 2nd data, the values within 0-1, you may check for the normalize the 2nd data with repect to the 1st one?
Actually how do consider the maping of 2nd data with respect to image indices?
Fed
Fed 2021년 2월 8일
편집: Fed 2021년 2월 8일
Thank you for your answer.
How do you suggest to normalize the 2nd data respect to the 1st ones?
I would like to change the size of imageLeft so to have the same dimensions of the scan-path. In this way I could overlay them and see the data from the eye tracker on the first image.
It'd be great if it would be possible to represent imageLeft on the range [0.38 ; 0.46] for the x axis and [0.61 ; 0.67] for the y axis as in the scan - path

댓글을 달려면 로그인하십시오.

채택된 답변

Kiran Felix Robert
Kiran Felix Robert 2021년 2월 11일
Hi Federica,
Use the following code as an example to normalize your 2nd data based on the first and overlay it on the image.
Imm = imread('image.jpeg');
figure()
% Synthesis - [0,1] Normalized random data
P = rand(1,50); % -> X-variable
Q = rand(1,50); % -> Y-Variable
% Normalizing with respect to image pixels and quantizing
C = size(Imm)
P = uint16(P*C(1));
Q = uint16(Q*C(2));
% Overlay Plot
imshow(Imm)
hold on
plot(P,Q)
hold off
  댓글 수: 3
Skylar Strickler
Skylar Strickler 2022년 3월 29일
Hey Kiran, what would I change to the code above to not only overlay the plot, but then to save that image with the overlayed plot as its own file?
Kiran Felix Robert
Kiran Felix Robert 2022년 3월 30일
Hi Skylar, just use the 'Get Current figure' and 'Saveas' function to save the figure.
For eg, add the following line after the last line of the above code, this will save the figure as a PNG file named 'saved'
saveas(gcf,'saved.png')

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Ravi Kumar Pallantla
Ravi Kumar Pallantla 2022년 8월 10일
There is a script in file exchange to plot data on an image file. Hope it will be helpful to you.

카테고리

Help CenterFile Exchange에서 Image Processing and Computer Vision에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by