Axes get reverse while overlaying line plot on image

Hi everyone, I have problem with overlying line plot on image. I have corrected the reversed Y-axis, but the line plot is still wrong i.e plotted with reversed axes (as seen on data cursor). I have attached both real line plot (second fig) and same line plot getting falsely plotted when overlayed on image. plz help me on this, thanks
img = imread('wave.png')
min_y = 0
max_y =18
min_x = 985;
max_x = 4500
imagesc([min_x max_x] ,[min_y max_y],img);
truesize;
hold on;
plot(wav, N)
yTicks = get(gca,'YTick');
yTicks_reverse = sort(yTicks,2,'descend');
set(gca,'YTickLabel',num2str(yTicks_reverse.'));
set(gca,'YDir','reverse'); <<
<<
>>
>>

답변 (2개)

Jan
Jan 2014년 10월 12일

0 개 추천

The tick labels are strings. Sorting them might lead to unexpected results, when they have a different number of digits - characters!
You reverse the tick labels and the YDir afterwards. This seems to be confusing.
Image Analyst
Image Analyst 2014년 10월 12일
I think the problem might be you're passing in the x and y axes to imagesc(). These might be opposite to that of a normal image, which has the y origin (y = row or line #1) at the top, instead of having y at the bottom like plot usually does. Try reversing the y array you send in to imagesc() and see if that helps.
imagesc([min_x, max_x] ,[max_y, min_y],img);
Or just use imshow() if you have the Image Processing Toolbox. Or set(gca, 'ydir', 'reverse') or set(gca, 'ydir', 'normal') at the critical time(s).

질문:

am
2014년 10월 12일

답변:

2014년 10월 12일

Community Treasure Hunt

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

Start Hunting!

Translated by