matlab求图像的最低灰度,matlab 灰度最小方差图像处理

picture =imread('pout.tif');

n=415;

m=554;

I=im2double(picture) ;%由于matlab中读入的图像是uint8的,因此将其转换成double型进行运算

for h=1:m

X(1,h)=I(1,h);% 由于第一、二行行,最后一行,倒数第二行,第一、二列,最后一列,倒数二列,不能满足九个邻域,因此我们将它的数据保存起来不变。最后和变化后的数据一起组成图像的灰度矩阵,并显示。

X(2,h)=I(2,h);

%X(3,h)=I(3,h);

%X(413,h)=I(413,h);

X(414,h)=I(414,h);

X(415,h)=I(415,h);

end

for j=1:n

X(j,1)=I(j,1);

X(j,2)=I(j,2);

%X(j,3)=I(j,3);

% X(j,552)=I(j,552);

X(j,553)=I(j,553);

X(j,554)=I(j,554);

end

for i=3:n-2

for j=3:m-2

F1=[I(i-2,j-2),I(i-2,j-1),I(i-2,j),I(i-1,j-2),I(i-1,j-1),I(i-

1,j),I(i,j-2),I(i,j-1),I(i,j)];%取出每个邻域的像素值

F2=[I(i-2,j+1),I(i-2,j-1),I(i-2,j),I(i-1,j+1),I(i-1,j-1),I(i-

1,j),I(i,j+1),I(i,j-1),I(i,j)];

F3=[I(i-2,j+1),I(i-2,j+2),I(i-2,j),I(i-1,j+1),I(i-1,j+2),I(i-

1,j),I(i,j+1),I(i,j+2),I(i,j)];

F4=[I(i+1,j-2),I(i+1,j-1),I(i+1,j),I(i-1,j-2),I(i-1,j-1),I(i-

1,j),I(i,j-2),I(i,j-1),I(i,j)];

F5=[I(i+1,j+1),I(i+1,j-1),I(i+1,j),I(i-1,j+1),I(i-1,j-1),I(i-

1,j),I(i,j+1),I(i,j-1),I(i,j)];

F6=[I(i+1,j+1),I(i+1,j+2),I(i+1,j),I(i-1,j+1),I(i-1,j+2),I(i-

1,j),I(i,j+1),I(i,j+2),I(i,j)];

F7=[I(i+1,j-2),I(i+1,j-1),I(i+1,j),I(i+2,j-2),I(i+2,j-1),I

(i+2,j),I(i,j-2),I(i,j-1),I(i,j)];

F8=[I(i+1,j+1),I(i+1,j-1),I(i+1,j),I(i+2,j+1),I(i+2,j-1),I

(i+2,j),I(i,j+1),I(i,j-1),I(i,j)];

F9=[I(i+1,j+1),I(i+1,j+2),I(i+1,j),I(i+2,j+1),I(i+2,j+2),I

(i+2,j),I(i,j+1),I(i,j+2),I(i,j)];

I1=var(F1);%求方差

I2=var(F2);

I3=var(F3);

I4=var(F4);

I5=var(F5);

I6=var(F6);

I7=var(F7);

I8=var(F8);

I9=var(F9);

shuzu=[I1,I2,I3,I4,I5,I6,I7,I8,I9];%将方差放在一个数组中

sort (shuzu);%对方差排序

switch shuzu(1)%判断最小方差属于哪一个邻域

case I1

junzhi=(I(i-2,j-2)+I(i-2,j-1)+I(i-2,j)+I(i-1,j-2)+I(i-1,j-1)

+I(i-1,j)+I(i,j-2)+I(i,j-1)+I(i,j))/9;

case I2

junzhi=(I(i-2,j+1)+I(i-2,j-1)+I(i-2,j)+I(i-1,j+1)+I(i-1,j-1)+I

(i-1,j)+I(i,j+1)+I(i,j-1)+I(i,j))/9;

case I3

junzhi=(I(i-2,j+1)+I(i-2,j+2)+I(i-2,j)+I(i-1,j+1)+I(i-1,j+2)

+I(i-1,j)+I(i,j+1)+I(i,j+2)+I(i,j))/9;

case I4

junzhi=(I(i+1,j-2)+I(i+1,j-1)+I(i+1,j)+I(i-1,j-2)+I(i-1,j-1)

+I(i-1,j)+I(i,j-2)+I(i,j-1)+I(i,j))/9;

case I5

junzhi=(I(i+1,j+1)+I(i+1,j-1)+I(i+1,j)+I(i-1,j+1)+I(i-1,j-1)

+I(i-1,j)+I(i,j+1)+I(i,j-1)+I(i,j))/9;

case I6

junzhi=(I(i+1,j+1)+I(i+1,j+2)+I(i+1,j)+I(i-1,j+1)+I(i-1,j+2)

+I(i-1,j)+I(i,j+1)+I(i,j+2)+I(i,j))/9;

case I7

junzhi=(I(i+1,j-2)+I(i+1,j-1)+I(i+1,j)+I(i+2,j-2)+I(i+2,j-1)

+I(i+2,j)+I(i,j-2)+I(i,j-1)+I(i,j))/9;

case I8

junzhi=(I(i+1,j+1)+I(i+1,j-1)+I(i+1,j)+I(i+2,j+1)+I(i+2,j-1)

+I(i+2,j)+I(i,j+1)+I(i,j-1)+I(i,j))/9;

case I9

junzhi=(I(i+1,j+1)+I(i+1,j+2)+I(i+1,j)+I(i+2,j+1)+I(i+2,j+2)

+I(i+2,j)+I(i,j+1)+I(i,j+2)+I(i,j))/9;

end

X(i,j)=junzhi;%将九个邻域中像素最均匀的邻域的均值赋给该像素

end

end

zuihou=im2uint8(X);%将double型数据转换成uint8

imshow(picture),title('原图');

figure;

imshow(zuihou),title('最大均匀性平滑后的图像');

???         F1=[I(i-2,j-2),I(i-2,j-1),I(i-2,j),I(i-1,j-2),I(i-1,j-1),I(i-

|

Error: Expression or statement is incorrect--possibly unbalanced (, {, or [.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值