📄 thankgod1wlov.m
字号:
clc;
close all;
clear all;
global zp;
q=imread('cameraman.tif');
[r g b]=size(q);
if (b==3)
q=rgb2gray(q);
end
%n1=q;
n1=imnoise(q,'gaussian',0,.02);
n1=imresize(n1,[256 256]);
subplot(2,2,1),imshow(n1);
[a b]=size(n1);
zp=zeros(a+9,b+9);
[s1 s2]=size(zp);
for i=10:s1-9
for j=10:s2-9
zp(i,j)=n1(i-8,j-8);
end
end
% imshow(uint8(zp));
zp1=zp;
for i=10:s1-9
for j=10:s2-9
w=zp1(i-1:i+1,j-1:j+1);
m=mean2(w);
zp1(i,j)=m;
end
end
subplot(2,2,2),imshow(uint8(zp1));
g=gradient(zp1);
%subplot(2,3,3),imshow((g));
g1=abs(g);
[a1 b1]=size(g1);
arr=[];
o=[6 8 10 12 14 15 17 18 19 20];
% for n=1:10
% op=zeros(size(zp));
for i=9:a1-9
for j=9:b1-9
if(g1(i,j)<17)
g2(i,j)=1;
else
g2(i,j)=0;
end
end
end
[l,num]=bwlabel(g2,8);
for k=1:num
va=[];
[r c]=find(l==k);
% for i=1:size(r,1)
% va(i)=zp(r(i),c(i));
% end
arsize(k)=size(r,1);
% v(k)=var(va);
end
[sorted index]=sort(arsize,'descend');
index1=index(1);
[r1 c1]=find(l==index1);
for i=1:size(r1,1)
var1(i)=zp(r1(i),c1(i));
end
v=var(var1);
th=median(v).*.3;
n=1;
flag=0;
for i=9:a1-9
for j=9:b1-9
n=1;
vari=switch1(i,j,n);
if (vari<th)
w1=zp(i-n:i+n,j-n:j+n);
zp1(i,j)=mean2(w1);
else
while((vari>th) && (flag==0))
n=n+1;
vari=switch1(i,j,n);
if (n==7)
flag=1;
end
end
w1=zp(i-n:i+n,j-n:j+n);
zp1(i,j)=mean2(w1);
end
end
end
figure,imshow(uint8(zp1));
% if(l==1)
% arr=[arr zp(i,j)];
% end
% num1(n)=[ num];
% [r c]=find(l~=0);
% for ii=1:size(r,1)
% op(r(ii),c(ii))=zp(r(ii),c(ii));
% end
% v(n)=[ var(var(op))];
% end
% subplot(2,2,3:4),stem(o,num1);
% xlabel('threshold');
% ylabel('number of conn region');
%
% subplot(2,3,4),imshow(g1);
% l=bwlabeln(g1,8);
% subplot(2,3,5),imshow(l);
% subplot(2,3,6),plot(num,m);
% n=1;
% flag=0;
% varia=[];
% for i=10:a1-9
% for j=10:b1-9
% w=sir(i,j,n);
% while (w==0)& (flag==0)
% n=n+1;
% if (n==5)
% flag=1;
% end
% end
% w1=zp(i-n:i+n,j-n:j+n);
% varia=[ (var(w1))];
% end
% end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -