This is my way to read 12bit raw image file.
data = fread(p,[768,1024],'ubit12=>uint32',4,'l');
But it takes very long time, is there any other way to speed up the processing time?
Thanks!

2 Kommentare

Walter Roberson
Walter Roberson am 6 Feb. 2012
Is the data really packed in groups of 12 consecutive bits? It is not impossible, but it would be somewhat unusual.
Sounder
Sounder am 7 Feb. 2012
one 12 bits pixel is stored in 2 bytes. It's combined with 4bits of random number and 12 bits of data. So this is the only ezsy way I know to implement, but it takes long time to read.

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

Jan
Jan am 7 Feb. 2012

1 Stimme

You can read all 16 bits and set the upper 4 bits to zero:
data = fread(p, [768,1024], 'uint16');
b = uint32(rem(data, 4096));
I assume you can use the format 'uint16=>uint32' directly - please test if this is faster and if rem works on UINT32 arrays.

Weitere Antworten (0)

Kategorien

Mehr zu Data Import and Analysis finden Sie in Hilfe-Center und File Exchange

Gefragt:

am 6 Feb. 2012

Bearbeitet:

am 4 Okt. 2013

Community Treasure Hunt

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

Start Hunting!

Translated by