Read an 16 unsigned bits image...

Hello Everybody,
I have a question really stupid but I do not know how how to open a 16 unsigned bit image.
To do that, I use the following program:
f = fopen('ucam.dat','r');
part_corr = fread(f, 80*60, 'ubit16','ieee-be');
fclose (f);
im=reshape(part_corr,80,60);
imagesc(im')
You will find to my website the original data: http://130.120.117.103/Stations/France/TEST/ucam.dat
and what I want to obtain with matlab http://130.120.117.103/Stations/France/TEST/ucam.JPG
I hope you will find a good representation. In my doc, it is written:
16 bit color and resolution: 80x60
Thanks for advance!!!

댓글 수: 4

Image Analyst
Image Analyst 2012년 8월 9일
Well it looks like your result is what you wanted to obtain, or more likely you just pasted the wrong link.
freluque
freluque 2012년 8월 9일
Yes I have corrected the link :)
!
Image Analyst
Image Analyst 2012년 8월 9일
No you didn't.
freluque
freluque 2012년 8월 10일
sorry :) now it works concerning my link! I hope you will find the solution , i am a little confused about the image in matlab :(

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

 채택된 답변

freluque
freluque 2012년 8월 13일

0 개 추천

I have done this conversion and it is working... Because my pixel was coded in RGB565...
f = fopen('ucam.dat','r');
%part_corr = fread(f, 81*60, 'ubit16','ieee-be');
im=fread(f, [80, 60], '*uint16', 'ieee-be');
fclose (f);
imgR = uint8((255/31)*bitshift(bitand(im,63488),-11)); %# Red component
imgG = uint8((255/63)*bitshift(bitand(im,2016),-5)); %# Green component
imgB = uint8((255/31)*bitand(im,31)); %# Blue component
imshow(imgRGB)

추가 답변 (1개)

Image Analyst
Image Analyst 2012년 8월 9일

0 개 추천

Did you try it like this, to avoid having to reshape:
fread(fid, [80, 60], '*uint16', 'ieee-be');
and are you sure there are no header bytes you need to skip?

카테고리

도움말 센터File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

제품

질문:

2012년 8월 9일

Community Treasure Hunt

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

Start Hunting!

Translated by