現在この質問をフォロー中です
- フォローしているコンテンツ フィードに更新が表示されます。
- コミュニケーション基本設定に応じて電子メールを受け取ることができます。
Matlab imread grayscale import has bad contrast
1 回表示 (過去 30 日間)
古いコメントを表示
I'm trying to import a series of grayscale TIFF images. The pixels span the full range of values, from pure white to pure black. This can be seen when the image is viewed in a desktop program such as paint. However, when imread in Matlab is used to import the image, the contrast is greatly reduced: instead of spanning from 0 to 255 like it ought to, it covers only 70 to 95, for example. The range is different for each imported file.
The image is definitely grayscale, as imread outputs a 2D matrix.
Is there some trick that needs to be used, so that the image has the proper contrast after import?
17 件のコメント
Geoff Hayes
2014 年 8 月 13 日
Jacob - could you attach one of the images that should be showing pure white and pure black colours, but is only covering a subset of the range?
Jacob
2014 年 8 月 13 日
Actually I used Windows' "Remove Properties and Personal Information" tool in the file properties menu to remove anything sensitive and tried importing that and it works. Does Matlab have a way of removing file properties?
I'm sorry but I'd prefer not to upload the picture; my company takes IP very seriously.
Joseph Cheng
2014 年 8 月 13 日
Then how about create a sample TIFF that you generate (non IP gradient, random pixel values, take Lena (or matlab sample image) and convert to problematic TIFF) that also contains this problem. Which property that you removed which caused this to import correctly?
Geoff Hayes
2014 年 8 月 13 日
Interesting - I wonder what properties you removed? Could you do the following instead - on the tif file that has not had its properties removed, can you run the command
imfinfo('myTifWithProps.tif')
and compare those results with the file where you have removed all properties and personal info
imfinfo('myTifWithoutProps.tif')
Either or both might still show something sensitive, so if you'd rather not post, I understand.
Jacob
2014 年 8 月 13 日
I already did just that. Both Windows' property viewer and imfinfo show identical results. Yet the stripped file definitely has the proper grayscale.
Geoff Hayes
2014 年 8 月 13 日
t = Tiff('myTifWithProblems.tif','r');
image_one = t.read();
imshow(subimage_one)
Jacob
2014 年 8 月 13 日
I get an elaborate structure from Tiff(). What am I looking for? t has the following fields. Each one except file name is a structure.
t.FileName, t.TagID, t.SubFileType, t.Compression, t.Photometric, t.Thresholding, t.Orientation, t.PlanarConfiguration, t.ExtraSamples, t.Group3Options, t.ResolutionUnit, t.InkSet, t.SampleFormat, t.YCbCrPositioning, t.SGILogDataFmt, t.JPEGColorMode
Jacob
2014 年 8 月 13 日
The Tiff object returned by t = Tiff('image.tif','r') seems to be a directory of possible values rather than an actual list of properties.
imfinfo gives actual values for those fields but all of the data returned by imfinfo is the same before and after clearing the properties.
Geoff Hayes
2014 年 8 月 13 日
I was curious to see what happened when the TIFF library was used to load and read the image.
Did
img = t.read();
imshow(img)
show the same flawed image?
Jacob
2014 年 8 月 13 日
Ok I have no clue what happened but displaying the "stripped" file now has bad contrast just like the normal file. I have no clue what made it display properly before.
Geoff Hayes
2014 年 8 月 13 日
What are the lines of code that you are using to read the file - simply imread('image.tif'), or something else? Do you have (or can you create) a non-sensitive file that is exhibiting this behaviour? And, are you doing anything special/different when generating the tif?
Jacob
2014 年 8 月 13 日
What I'm doing right now as a workaround is I'll have the user manually convert the TIFFs to PNG in MSPaint. Matlab is displaying PNG's just fine with the help of the rgb2gray function. Obviously this is not ideal though so if you have any more insight that would be great.
I'm not sure what changed but the stripped TIFF displays wrong as well. I think I need to find some TIFF property that is improperly defining the luminance scale of the image.
Jacob
2014 年 8 月 13 日
The tif is generated from a 3rd party program, which is why I'm trying to find something embedded in the file.
I think I found a way around. The program can also export to .csv, so if I can parse through that, it might be the way I have to go. I'm sorry if I wasted your time, I really thought TIFF files would be easier to process.
Geoff Hayes
2014 年 8 月 13 日
If you do something like
[img,map] = imread('yourTifFile.tif');
is map empty?
Jacob
2014 年 8 月 14 日
I'm just driven by curiosity now. The map is the same as what was stored under the Colormap property. 256x3 array ranging from 0 to 1. Seems to be divided into blocks of 24 rows where it would start at zero and either be all zeros for the next 24 rows; or start at zero and irregularly increase towards 1. For some reason, loading the image using imshow in the command line displays it properly without the contrast issue. I think I may still stick with csv but it's interesting that the TIFF worked in the command prompt.
Geoff Hayes
2014 年 8 月 14 日
Jacob - so what happens if you do the following:
[img,map] = imread('yourTifFile.tif');
imshow(img);
At this point, is the image displaying the poor contrast? If so, then do the following
colormap(map)
What does the image look like now that you are using the colour map that is associated with the image?
Maybe the integers in the 2D img matrix are NOT colours but indices into the colour map that comes with the image.
回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Image Data についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!エラーが発生しました
ページに変更が加えられたため、アクションを完了できません。ページを再度読み込み、更新された状態を確認してください。
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom(English)
アジア太平洋地域
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 日本Japanese (日本語)
- 한국Korean (한국어)