版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013354805/article/details/52554147
1. 图像的块操作
<strong><span style="font-size:18px;">h0=figure('toolbar','none',...
'position',[198 56 350 468],...
'name','实例67');
h1=axes('parent',h0,...
'position',[0.2 0.45 0.6 0.5],...
'visible','off');
I=imread('tire.tif');
imshow(I)
b1=uicontrol('parent',h0,...
'units','points',...
'tag','b1',...
'backgroundcolor',[0.75 0.75 0.75],...
'style','pushbutton',...
'string','边沿操作',...
'position',[30 100 50 20],...
'callback',[...
'cla,',...
'I=imread(''tire.tif'');,',...
'f=inline(''max(x(:))'');,',...
'I2=nlfilter(I,[2 2],f);,',...
'imshow(I2)']);
b2=uicontrol('parent',h0,...
'units','points',...
'tag','b2',...
'backgroundcolor',[0.75 0.75 0.75],...
'style','pushbutton',...
'string','显示块操作',...
'position',[100 100 50 20],...
'callback',[...
'cla,',...
'I=imread(''tire.tif'');,',...
'f=inline(''uint8(round(mean2(x)*ones(size(x))))'');,',...
'I2=blkproc(I,[6 6],f);,',...
'imshow(I2)']);
b3=uicontrol('parent',h0,...
'units','points',...
'tag','b3',...
'backgroundcolor',[0.75 0.75 0.75],...
'style','pushbutton',...
'string','交叠块操作',...
'position',[170 100 50 20],...
'callback',[...
'cla,',...
'I=imread(''tire.tif'');,',...
'f=inline(''uint8(round(mean2(x)*ones(size(x))))'');,',...
'I2=blkproc(I,[6 6],[3 3],f);,',...
'imshow(I2)']);
b4=uicontrol('parent',h0,...
'units','points',...
'tag','b4',...
'backgroundcolor',[0.75 0.75 0.75],...
'style','pushbutton',...
'string','关闭',...
'fontsize',14,...
'position',[90 50 70 30],...
'callback','close');</span></strong>
2. 图形的过滤操作:
h0=figure('toolbar','none',...
'position',[198 56 350 468],...
'name','过滤操作');
h1=axes('parent',h0,...
'position',[0.3 0.45 0.5 0.5],...
'visible','off');
I=imread('pout.tif');
imshow(I)
b1=uicontrol('parent',h0,...
'units','points',...
'tag','b1',...
'style','pushbutton',...
'backgroundcolor',[0.75 0.75 0.75],...
'string','均平过滤',...
'position',[50 120 50 20],...
'callback',[...
'cla,',...
'I=imread(''pout.tif'');,',...
'h=fspecial(''average'',6);,',...
'I2=uint8(round(filter2(h,I)));,',...
'imshow(I2)']);
b2=uicontrol('parent',h0,...
'units','points',...
'tag','b2',...
'style','pushbutton',...
'backgroundcolor',[0.75 0.75 0.75],...
'string','Sobel过滤',...
'position',[150 120 50 20],...
'callback',[...
'cla,',...
'I=imread(''pout.tif'');,',...
'h=fspecial(''sobel'');,',...
'I2=filter2(h,I);,',...
'imshow(I2,[])']);
b1=uicontrol('parent',h0,...
'units','points',...
'tag','b1',...
'style','pushbutton',...
'backgroundcolor',[0.75 0.75 0.75],...
'string','关闭',...
'position',[85 60 80 30],...
'callback','close');
3. 图像的频率操作:
h0=figure('toolbar','none',...
'position',[198 56 350 468],...
'name','频率操作');
h1=axes('parent',h0,...
'position',[0.3 0.45 0.5 0.5],...
'visible','off');
b=remez(10,[0 0.4 0.6 1],[1 1 0 0]);
h=ftrans2(b);
[H,W]=freqz(b,1,64,'whole');
colormap(jet(64))
plot(W/pi-1,fftshift(abs(H)))
b1=uicontrol('parent',h0,...
'units','points',...
'tag','b1',...
'backgroundcolor',[0.75 0.75 0.75],...
'style','pushbutton',...
'string','频率变换',...
'position',[30 100 50 20],...
'callback',[...
'cla,',...
'b=remez(10,[0 0.4 0.6 1],[1 1 0 0]);,',...
'h=ftrans2(b);,',...
'[H,W]=freqz(b,1,64,''whole'');,',...
'colormap(jet(64)),',...
'freqz2(h,[32 32])']);
b2=uicontrol('parent',h0,...
'units','points',...
'tag','b2',...
'backgroundcolor',[0.75 0.75 0.75],...
'style','pushbutton',...
'string','频率采样一',...
'position',[100 100 50 20],...
'callback',[...
'cla,',...
'Hd=zeros(11,11);,',...
'Hd(4:8,4:8)=1;,',...
'[f1,f2]=freqspace(11,''meshgrid'');,',...
'mesh(f1,f2,Hd),',...
'axis([-1 1 -1 1 0 1.2]),',...
'colormap(jet(64))']);
b3=uicontrol('parent',h0,...
'units','points',...
'tag','b3',...
'backgroundcolor',[0.75 0.75 0.75],...
'style','pushbutton',...
'string','频率采样二',...
'position',[170 100 50 20],...
'callback',[...
'cla,',...
'Hd=zeros(11,11);,',...
'Hd(4:8,4:8)=1;,',...
'H=fsamp2(Hd);,',...
'freqz2(h,[32 32]),',...
'axis([-1 1 -1 1 0 1.2]),',...
'colormap(jet(64))']);
b4=uicontrol('parent',h0,...
'units','points',...
'tag','b4',...
'backgroundcolor',[0.75 0.75 0.75],...
'style','pushbutton',...
'string','关闭',...
'fontsize',15,...
'position',[80 50 80 30],...
'callback','close');
4. 函数变换:
h0=figure('toolbar','none',...
'position',[198 56 350 468],...
'name','函数变换');
h1=axes('parent',h0,...
'position',[0.25 0.45 0.5 0.5],...
'visible','off');
I=imread('cameraman.tif');
imshow(I)
b1=uicontrol('parent',h0,...
'units','points',...
'tag','b1',...
'backgroundcolor',[0.75 0.75 0.75],...
'style','pushbutton',...
'string','图像压缩',...
'position',[30 100 50 20],...
'callback',[...
'cla,',...
'I=imread(''cameraman.tif'');,',...
'I2=im2double(I);,',...
'imshow(I2)']);
b2=uicontrol('parent',h0,...
'units','points',...
'tag','b2',...
'backgroundcolor',[0.75 0.75 0.75],...
'style','pushbutton',...
'string','图像解压',...
'position',[100 100 50 20],...
'callback',[...
'cla,',...
'I=imread(''cameraman.tif'');,',...
'I=im2double(I);,',...
'T=dctmtx(8);,',...
'B=blkproc(I,[8 8],''P1*x*P2'',T,T'');,',...
'mask=[1 1 1 1 0 0 0 0;,',...
'1 1 1 0 0 0 0 0;,',...
'1 1 0 0 0 0 0 0;,',...
'1 0 0 0 0 0 0 0;,',...
'0 0 0 0 0 0 0 0;,',...
'0 0 0 0 0 0 0 0;,',...
'0 0 0 0 0 0 0 0;,',...
'0 0 0 0 0 0 0 0];,',...
'B2=blkproc(B,[8 8],''P1.*x'',mask);,',...
'I2=blkproc(B2,[8 8],''P1*x*P2'',T'',T);,',...
'imshow(I2)']);
b3=uicontrol('parent',h0,...
'units','points',...
'tag','b3',...
'backgroundcolor',[0.75 0.75 0.75],...
'style','pushbutton',...
'string','线条解析',...
'position',[170 100 50 20],...
'callback',[...
'cla,',...
'I=imread(''cameraman.tif'');,',...
'BW=edge(I);,',...
'imshow(BW)']);
b4=uicontrol('parent',h0,...
'units','points',...
'tag','b4',...
'backgroundcolor',[0.75 0.75 0.75],...
'style','pushbutton',...
'string','关闭',...
'fontsize',15,...
'position',[80 50 80 30],...
'callback','close');
5. RADON函数变换
h0=figure('toolbar','none',...
'position',[198 56 350 468],...
'name','实例71');
h1=axes('parent',h0,...
'position',[0.3 0.45 0.5 0.5],...
'visible','off');
P=phantom(256);
imshow(P)
b1=uicontrol('parent',h0,...
'units','points',...
'tag','b1',...
'style','pushbutton',...
'string','变换一',...
'backgroundcolor',[0.75 0.75 0.75],...
'position',[30 100 50 20],...
'callback',[...
'cla,',...
'k=1;,',...
'theta1=0:10:170;,',...
'R1=radon(P,theta1);,',...
'imagesc(R1),',...
'colormap(hot),',...
'colorbar']);
b2=uicontrol('parent',h0,...
'units','points',...
'tag','b2',...
'style','pushbutton',...
'string','变换二',...
'backgroundcolor',[0.75 0.75 0.75],...
'position',[100 100 50 20],...
'callback',[...
'cla,',...
'k=2;,',...
'theta2=0:5:175;,',...
'R2=radon(P,theta2);,',...
'imagesc(R2),',...
'colormap(hot),',...
'colorbar']);
b3=uicontrol('parent',h0,...
'units','points',...
'tag','b3',...
'style','pushbutton',...
'string','变换三',...
'backgroundcolor',[0.75 0.75 0.75],...
'position',[170 100 50 20],...
'callback',[...
'cla,',...
'k=3;,',...
'theta3=0:2:178;,',...
'R3=radon(P,theta3);,',...
'imagesc(R3),',...
'colormap(hot),',...
'colorbar']);
b4=uicontrol('parent',h0,...
'units','points',...
'tag','b4',...
'style','pushbutton',...
'string','原始图像',...
'backgroundcolor',[0.75 0.75 0.75],...
'position',[50 50 70 30],...
'callback',[...
'cla,',...
'if k==1,',...
'I1=iradon(R1,10);,',...
'imshow(I1),',...
'end,',...
'if k==2,',...
'I2=iradon(R2,5);,',...
'imshow(I2),',...
'end,',...
'if k==3,',...
'I3=iradon(R3,2);,',...
'imshow(I3),',...
'end']);
b5=uicontrol('parent',h0,...
'units','points',...
'tag','b5',...
'style','pushbutton',...
'string','关闭',...
'backgroundcolor',[0.75 0.75 0.75],...
'position',[150 50 70 30],...
'callback','close');