12bit to 8 bit and Windowing
16 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
David Großmann
el 19 de En. de 2020
Comentada: David Großmann
el 21 de En. de 2020
Hallo,
I try to dicomread a 12bit-pic, change it to 8bit and windows it.
With
im = dicomread("CTA_Head.dcm");
im8 = uint8(im-1);
imshow(im8, [LOW,HIGH]);
Everything works fine. Matlab cuts all the values that aren't relevant and turns them into white or black.
But is there a function that does the same without directly displaying the picture?
When I use the following pictures do not look the same(it's darker):
im = dicomread("CTA_Head.dcm");
[nrows ncols] = size(im);
for c = 1:ncols
for r = 1:nrows
if (im(r,c) < LOW)
im2(r,c) = 0;
elseif (im(r,c) > HIGH)
im2(r,c) = 255;
else
im2(r,c) = im(r,c);
end
end
end
im8er = uint8(im2);
imshow(im8er);
Shall I cast to uint8 before or after cutting the values?
Thank You!
1 comentario
Guillaume
el 20 de En. de 2020
If im is 12-bit (integer I presume), this is a very odd thing to do:
im8 = uint8(im-1);
If the 12 bit is signed (range [-2048, 2047]), this rescale im to the range [-2049, 2046] (assuming the 12-bits are stored in a 16-bit integer since matlab doesn't have 12 bit type) which is then clipped to [0 255] by the conversion to uint8. So it maps all values between -2048 and 1 included to 0, maps 1-256 to 0-255 and maps 256+ to 255.
If the 12 bit is unsigned (range [0 4095]), this rescale im to [0 4094] which is then clipped to [0 255]. So it maps 0 and 1 to 0, 2-256 to 1-255 and 256+ to 255.
Respuesta aceptada
Walter Roberson
el 19 de En. de 2020
In older MATLAB see mat2gray, which has a deceptive function name and is not restricted to grayscale like the name suggests.
In newer MATLAB rescale()
3 comentarios
Walter Roberson
el 20 de En. de 2020
scaled = (double(im) - LOW) ./ (HIGH - LOW);
im8er = im2uint8(scaled);
Más respuestas (0)
Ver también
Categorías
Más información sobre Matrix Indexing en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!