Bitmap contrast issue

When I use the imread function to open a grayscale .bmp image, the contrast displayed is far darker than the original image, which causes problems for image processing. Converting the image to .jpeg eliminates the contrast issue, but I have several thousand images to read and I don't want to have to convert them all. Is there a way to get MATLAB to read .bmp files correctly?

 Risposta accettata

Sean de Wolski
Sean de Wolski il 24 Giu 2011
Are you sure it's not reading them correctly but you're just viewing a small range?
try:
imshow(imread('example.bmp'),[]); %whole range
Edition:
What class is the bitmap file?
I = imread('example.bmp');
class(I)
and then what class is the corresponding JPG file?
I = imread('sameexample.jpg');
class(I)

2 Commenti

Wesley
Wesley il 24 Giu 2011
That helps, although it's not quite the same as the contrast on the original image. It should be workable, though-- thank you!
Wesley
Wesley il 24 Giu 2011
Bitmap: uint8
JPEG: uint8

Accedi per commentare.

Più risposte (1)

Walter Roberson
Walter Roberson il 24 Giu 2011
BMP files can have color palettes stored, and indeed must use such palettes when they are less than 8 bits deep. A color palette corresponds to MATLAB's colormap.
[YourImage, YourColormap] = imread('example.bmp');
image(YourImage);
if ~isempty(YourColorMap); colormap(YourColorMap); end

Community Treasure Hunt

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

Start Hunting!

Translated by