how to superimpose a surface plot on a different size gray scale image
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Huayan Wang
am 14 Feb. 2018
Kommentiert: Huayan Wang
am 15 Feb. 2018
I have a grayscale image which has a size of 2448*2048.
I have a surface plot on a mesh grid of (1:110, 1:92)
Their data numbers are totally different. How can I make the grayscale image as the background and make the surface fit right onto it and transparent so that I can see the background image through the surface plot at the same I can still draw ROI on the surface plot with the roipoly function?
0 Kommentare
Akzeptierte Antwort
Walter Roberson
am 14 Feb. 2018
Look at the XData and YData parameters of image(): you can specify the coordinates of the centers of the bottom left and upper right pixels. Getting them to line up exactly with the boundaries of (for example) 1:110 is a bit of a nuisance because you have to account for the 1/2 pixel, which will be 1/2448/2 or 1/2048/2 of the image, but you can do it (but it's usually easier to just let half a pixel hang outside the surf plot.)
When you create the surf() plot, you will probably want to use 'edgecolor', 'none'. Make it transparent by passing in 'AlphaData', such as .8 .
3 Kommentare
Walter Roberson
am 14 Feb. 2018
All points in the image() are considered to have Z of 0, so Z below 0 on the surface plot would be "behind" the image.
You should consider using
surf(X, Y, ones(size(Z)), Z)
so that your Z data gets interpreted as "color" and so MATLAB thinks your surface is at 1 (and thus "above" your image.)
Weitere Antworten (0)
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!