# How to display an image in 3D cordinate axes ?

조회 수: 6(최근 30일)
Shivani Limaye 2021년 7월 12일
댓글: ANKUR KUMAR 2021년 7월 13일
I want to display this image in 3D cordinate system with x,y and z axes. Pls. help me out.
Attached below is the image in question. It is a 3D image 780x1040x3 size.

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

### 답변(1개)

ANKUR KUMAR 2021년 7월 13일
It is not really a 3D image. The third dimension has the RGB values. That is why you can able to see the color image.
Let's see this example.
size(A)
ans = 1×3
384 512 3
A is a 3D matrix, but RGB values are stored along the third dimension.
imshow(A)
If you plot using only the X and Y coordinate, you would get like this in each of the third dimension.
imshow(A(:,:,1))
imshow(A(:,:,2))
imshow(A(:,:,3))
The combination of these three images results into a color image.
##### 댓글 수: 2표시숨기기 이전 댓글 수: 1
ANKUR KUMAR 2021년 7월 13일
X, Y and Z are just the sequence of numbers from 1 to the size along that dimension.
size(A)
ans = 1×3
384 512 3
imshow(A)
These would be your coordinates of image.
X=[1:size(A,1)];
Y=[1:size(A,2)];
Z=[1:size(A,3)];
Above are the X, Y and Z coordinates of the image. You can plot it using contourf function giving corrdinates as arguments.
figure
for index=1:3
subplot(2,2,index)
contourf(Y,X,A(:,:,index),'linecolor','none')
set(gca,'Ydir','rev')
daspect(ones(1,3))
title(index)
end
If you want to crop the image, you can use these dimension to crop it, followed by using imshow or contourf as per your need.
figure
for index=1:3
subplot(2,2,index)
contourf(Y(400:510),X(200:325),A(200:325,400:510,index),'linecolor','none')
set(gca,'Ydir','rev')
daspect(ones(1,3))
title(index)
end
subplot(2,2,4)
imshow(A(200:325,400:510,:))

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

### 범주

Find more on Image Processing and Computer Vision in Help Center and File Exchange

R2021a

### Community Treasure Hunt

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

Start Hunting!

Translated by