Hi everyone, i have one problem about image resolution. I have took an image which has resolution 4000 pixels of width and 3000 pixels of height (the appearanced is landscape when viewed in photo viewer). Unfortunately, when I load in Matlab (using imread), the resolution is changing itself. Its become 3000 pixels of width and 4000 pixels of height, and when it show using imshow its become potrait. I appreciate if anyone could help me out figuring how it can be happened. Thanks and best wishes

 채택된 답변

Rik
Rik 2019년 5월 23일

1 개 추천

Some cameras store the orientation in the EXIF data, which Matlab generally ignores. In my PhotoAnnotation tool I used an external tool to extract this from the file, but depending on the release you're using you might be able to use native Matlab tools.

댓글 수: 3

dms
dms 2019년 5월 23일
Hi Rik, thank you anyway for your valuable response. Could you give me any suggestion how to prevent those problem in advanced?
Walter has posted this code in a previous question:
IM = imread('YourFile.jpg');
info = imfinfo('YourFile.jpg');
if isfield(info,'Orientation')
orient = info(1).Orientation;
switch orient
case 1:
%normal, leave the data alone
case 2:
IM = IM(:,end:-1:1,:); %right to left
case 3:
IM = IM(end:-1:1,end:-1:1,:); %180 degree rotation
case 4:
IM = IM(end:-1:1,:,:); %bottom to top
case 5:
IM = permute(IM, [2 1 3]); %counterclockwise and upside down
case 6:
IM = rot90(IM,3); %undo 90 degree by rotating 270
case 7:
IM = rot90(IM(end:-1:1,:,:)); %undo counterclockwise and left/right
case 8:
IM = rot90(IM); %undo 270 rotation by rotating 90
otherwise
warning(sprintf('unknown orientation %g ignored\n', orient));
end
end
dms
dms 2019년 5월 23일
Thanks a lot for your help Rik. I'll try it first.

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

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Display Image에 대해 자세히 알아보기

질문:

dms
2019년 5월 23일

댓글:

dms
2019년 5월 23일

Community Treasure Hunt

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

Start Hunting!

Translated by