Problem in Gray Level Manipulation

5 ビュー (過去 30 日間)
Vennila Gangatharan
Vennila Gangatharan 2013 年 1 月 6 日
Hi all,
I tried to enhance a gray scale image by using the formula
E(i,j) = round( I(i,j)^3/ f * M^2)
where
M = max gray level of the image
f = 0.8
The output should be a gray scale image, but I get a binary Image.
Thanks for your help in advance.
Code :
[x,y] = size(I);
I1 = repmat(uint8(0),x,y)
M = max(I(:));
for i = 1:x
for j = 1:y
if I(i,j) ~= 0
v = double(I(i,j));
I1(i,j) = round( v^3 / f * M^2 );
% disp(I1(i,j)); ' all manipulated pixels has value 255
end
end
end

採用された回答

Image Analyst
Image Analyst 2013 年 1 月 6 日
What are some values of z? Also, have you looked at I1 in the variable editor to verify that they're all 255 or 1? Have you tried to display I1 with [], like this:
imshow(I1, []);
which you need to do for floating point images? M^2 is in the numerator - is that what you want? The units seem all weird - you'll have an output that is proportional to gray level to the fifth power! Are you missing some parentheses? Like you want M^2 in the denominator? Where did you ever get this formula anyway? Do you have a citation for it?
  11 件のコメント
Vennila Gangatharan
Vennila Gangatharan 2013 年 1 月 7 日
f is not an array.
Image Analyst
Image Analyst 2013 年 1 月 7 日
Then you're not following the algorithm given in the paper.

サインインしてコメントする。

その他の回答 (1 件)

Walter Roberson
Walter Roberson 2013 年 1 月 6 日
Change
M = max(I(:));
to
M = double( max(I(:)) );
  1 件のコメント
Vennila Gangatharan
Vennila Gangatharan 2013 年 1 月 6 日
I tried it but no change.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeLogical についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by