声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 981|回复: 1

[综合讨论] 【达人帮忙】图像加噪处理,显示图像不正常

[复制链接]
发表于 2009-5-21 00:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
根据一篇文献上的方法来增加低对比度图像的对比度,增强显示效果。
但是程序执行后,第一副图显示正常,第二幅图显示的是全白色,通过查看矩阵,明显显示问题,矩阵没有问题。
这种问题该怎么解决?谢谢
同时,若I=double(I)在imshow(I)前面的话,第一张图也显示全白。
所以我后面把矩阵化整,但是同样得不到正确结果。

a=0;        %PSNR
b=0.3;
Pold=0;     %initial PSNR
Pnew=0;
h=0;        %Bm
k=0;        %Sm
n=0;

I=imread('lene1.bmp');
I=rgb2gray(I);
[m,n]=size(I);
figure(1);
imshow(I);
I=double(I);

M=zeros(m,n);


while Pold<=Pnew
   
    Pold=Pnew
   
    b=b+0.01
   
    for i=1:m
        for j=1:n
            h=h+I(i,j);
        end
    end
    Bm=h/m/n;
    %S'
    for i=1:1:m
        for j=1:1:n
            k=k+I(i,j)^2;
        end
    end
    Sm=k/m/n;
    deta=b*(1+(1-3^0.5*(Sm/Bm^2))^0.5)^0.5

    for i1=1:20
        H=randn(m,n);
        H=b.*H;
        Hmin=min(H(:));
        Hmax=max(H(:));
        H=(H-Hmin)/(Hmax-Hmin);
        for i2=1:m
            for j2=1:n
                if H(i2,j2)>=deta
                    H(i2,j2)=255;
                else
                    H(i2,j2)=0;
                end
            end
            M=M+H;
        end
    end
    M=M./20;
    N=M+I;
    Nmin=min(N(:));
    Nmax=max(N(:));
    N=(N-Nmin)/(Nmax-Nmin);
    N=255.*N;      
   
    % new PSNR
    for i3=1:m
        for j3=1:1:n
            a=a+(N(i,j)-I(i,j))^2;
        end
    end
    Pnew=10*log10(255^2*m*n/a);
   
    N=floor(N);
    I=N;    %reset I
end

figure(2);
imshow(I);

beta2.m

1.24 KB, 下载次数: 1

回复
分享到:

使用道具 举报

 楼主| 发表于 2009-5-21 01:22 | 显示全部楼层

回复 楼主 xiuhuwang 的帖子

问题解决了
是因为imshow在处理double类型数据时,大于1的都是白色
我修改了一下最后面就可以了
Imin=min(I(:));
Imax=max(I(:));
I=(I-Imin)/(Imax-Imin);
figure(2);
imshow(I);

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-17 04:36 , Processed in 0.085116 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表