圖像分析(1)
h0=figure('toolbar','none',...
'position',[198 56 350 468],...
'name','實(shí)例72');
h1=axes('parent',h0,...
'position',[0.25 0.45 0.5 0.5],...
'visible','off');
I=imread('rice.tif');
imshow(I)
k=0;
b1=uicontrol('parent',h0,...
'units','points',...
'tag','b1',...
'style','pushbutton',...
'string','圖像輪廓圖',...
'backgroundcolor',[0.75 0.75 0.75],...
'position',[20 100 60 20],...
'callback',[...
'cla,',...
'k=1;,',...
'I=imread(''rice.tif'');,',...
'imcontour(I)']);
b2=uicontrol('parent',h0,...
'units','points',...
'tag','b2',...
'style','pushbutton',...
'string','SOBEL邊界圖',...
'backgroundcolor',[0.75 0.75 0.75],...
'position',[100 100 60 20],...
'callback',[...
'cla,',...
'k=2;,',...
'I=imread(''rice.tif'');,',...
'BW=edge(I,''sobel'');,',...
'imshow(BW)']);
b3=uicontrol('parent',h0,...
'units','points',...
'tag','b3',...
'style','pushbutton',...
'string','CANNY邊界圖',...
'backgroundcolor',[0.75 0.75 0.75],...
'position',[180 100 60 20],...
'callback',[...
'cla,',...
'k=3;,',...
'I=imread(''rice.tif'');,',...
'BW=edge(I,''canny'');,',...
'imshow(BW)']);
b4=uicontrol('parent',h0,...
'units','points',...
'tag','b4',...
'style','pushbutton',...
'string','灰度調整',...
'backgroundcolor',[0.75 0.75 0.75],...
'position',[20 50 60 20],...
'callback',[...
'cla,',...
'k=4;,',...
'I=imread(''rice.tif'');,',...
'J=imadjust(I,[0.15 0.9],[0 1]);,',...
'imshow(J,64)']);
b5=uicontrol('parent',h0,...
'units','points',...
'tag','b5',...
'style','pushbutton',...
'string','圖像柱狀圖',...
'backgroundcolor',[0.75 0.75 0.75],...
'position',[180 50 60 20],...
'callback',[...
'if k==0,',...
'figure,',...
'imhist(I,64),',...
'end,',...
'if k==1,',...
'imhist(I,64),',...
'end,',...
'if k==2,',...
'imhist(BW,64),',...
'end,',...
'if k==3,',...
'imhist(BW,64),',...
'end,',...
'if k==4,',...
'imhist(J),',...
'end']);
b6=uicontrol('parent',h0,...
'units','points',...
'tag','b6',...
'style','pushbutton',...
'string','關(guān)閉',...
'backgroundcolor',[0.75 0.75 0.75],...
'position',[100 50 60 20],...
'callback','close');
過(guò)濾圖像
h0=figure('toolbar','none',...
'position',[198 56 350 468],...
'name','實(shí)例73');
h1=axes('parent',h0,...
'position',[0.25 0.45 0.5 0.5],...
'visible','off');
I=imread('eight.tif');
imshow(I)
u1=uimenu('parent',h0,...
'tag','u1',...
'label','添加噪聲',...
'backgroundcolor',[0.75 0.75 0.75]);
u11=uimenu('parent',u1,...
'tag','u11',...
'label','SALT&PEPPER噪聲',...
'backgroundcolor',[0.75 0.75 0.75],...
'callback',[...
'set(u11,''checked'',''on'');,',...
'set(u12,''checked'',''off'');,',...
'cla,',...
'I=imnoise(I,''salt & pepper'',0.02);,',...
'imshow(I)']);
u12=uimenu('parent',u1,...
'tag','u12',...
'label','GAUSSIAN噪聲',...
'backgroundcolor',[0.75 0.75 0.75],...
'callback',[...
'set(u12,''checked'',''on'');,',...
'set(u11,''checked'',''off'');,',...
'cla,',...
'I=imnoise(I,''gaussian'',0,0.005);,',...
'imshow(I)']);
b1=uicontrol('parent',h0,...
'units','points',...
'tag','b1',...
'style','pushbutton',...
'string','均平過(guò)濾',...
'backgroundcolor',[0.75 0.75 0.75],...
'position',[30 100 50 20],...
'callback',[...
'cla,',...
'J=filter2(fspecial(''average'',3),I)/255;,',...
'imshow(J)']);
b2=uicontrol('parent',h0,...
'units','points',...
'tag','b2',...
'style','pushbutton',...
'string','中值過(guò)濾',...
'backgroundcolor',[0.75 0.75 0.75],...
'position',[100 100 50 20],...
'callback',[...
'cla,',...
'J=medfilt2(I,[3 3]);,',...
'imshow(J)']);
b3=uicontrol('parent',h0,...
'units','points',...
'tag','b3',...
'style','pushbutton',...
'string','自適應過(guò)濾',...
'backgroundcolor',[0.75 0.75 0.75],...
'position',[170 100 50 20],...
'callback',[...
'cla,',...
'J=wiener2(I,[5 5]);,',...
'imshow(J)']);
b4=uicontrol('parent',h0,...
'units','points',...
'tag','b4',...
'style','pushbutton',...
'string','關(guān)閉',...
'fontsize',15,...
'backgroundcolor',[0.75 0.75 0.75],...
'position',[90 50 70 30],...
'callback','close');
圖像的區域處理
h0=figure('toolbar','none',...
'position',[198 56 350 468],...
'name','實(shí)例74');
h1=axes('parent',h0,...
'position',[0.25 0.45 0.5 0.5],...
'visible','off');
I=imread('trees.tif');
imshow(I)
b1=uicontrol('parent',h0,...
'units','points',...
'tag','b1',...
'style','pushbutton',...
'string','區域過(guò)濾一',...
'backgroundcolor',[0.75 0.75 0.75],...
'position',[30 100 50 20],...
'callback',[...
'cla,',...
'I=imread(''trees.tif'');,',...
'imshow(I),',...
'BW=roipoly;,',...
'h=fspecial(''unsharp'');,',...
'I2=roifilt2(h,I,BW);,',...
'imshow(I2)']);
b2=uicontrol('parent',h0,...
'units','points',...
'tag','b2',...
'style','pushbutton',...
'string','區域過(guò)濾二',...
'backgroundcolor',[0.75 0.75 0.75],...
'position',[100 100 50 20],...
'callback',[...
'cla,',...
'BW=imread(''text.tif'');,',...
'f=inline(''imadjust(x,[],[],0.01)'');,',...
'I2=roifilt2(I,BW,f);,',...
'imshow(I2)']);
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,',...
'load trees,',...
'I=ind2gray(X,map);,',...
'imshow(I),',...
'I2=roifill;,',...
'imshow(I2)']);
b4=uicontrol('parent',h0,...
'units','points',...
'tag','b4',...
'style','pushbutton',...
'string','關(guān)閉',...
'backgroundcolor',[0.75 0.75 0.75],...
'position',[90 50 70 30],...
'callback','close');
圖像的顏色處置
h0=figure('toolbar','none',...
'position',[198 56 350 468],...
'name','實(shí)例75');
h1=axes('parent',h0,...
'position',[0.12 0.45 0.75 0.5],...
'visible','off');
I=imread('flowers.tif');
imshow(I)
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,',...
'[X,map]=imread(''flowers.tif'');,',...
'[Y,map2]=imapprox(X,map,64);,',...
'image(Y),',...
'colormap(map2)']);
b2=uicontrol('parent',h0,...
'units','points',...
'tag','b2',...
'style','pushbutton',...
'string','顏色抖動(dòng)',...
'backgroundcolor',[0.75 0.75 0.75],...
'position',[100 100 50 20],...
'callback',[...
'cla,',...
'I=imread(''flowers.tif'');,',...
'[X,map]=rgb2ind(I,128,''nodither'');,',...
'imshow(X)']);
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,',...
'I=imread(''flowers.tif'');,',...
'Y=rgb2ntsc(I);,',...
'J=Y(:,:,1);,',...
'imshow(J)']);
b4=uicontrol('parent',h0,...
'units','points',...
'tag','b4',...
'style','pushbutton',...
'string','關(guān)閉',...
'backgroundcolor',[0.75 0.75 0.75],...
'position',[170 50 50 20],...
'callback','close');
b5=uicontrol('parent',h0,...
'units','points',...
'tag','b5',...
'style','pushbutton',...
'string','顏色轉換三',...
'backgroundcolor',[0.75 0.75 0.75],...
'position',[100 50 50 20],...
'callback',[...
'cla,',...
'I=imread(''flowers.tif'');,',...
'J=rgb2ycbcr(I);,',...
'imshow(J)']);
b6=uicontrol('parent',h0,...
'units','points',...
'tag','b6',...
'style','pushbutton',...
'string','顏色轉換二',...
'backgroundcolor',[0.75 0.75 0.75],...
'position',[30 50 50 20],...
'callback',[...
'cla,',...
'I=imread(''flowers.tif'');,',...
'J=rgb2hsv(I);,',...
'imshow(J)']);
交換顯示圖像
h0=figure('toolbar','none',...
'position',[198 56 500 500],...
'name','實(shí)例76');
h1=axes('parent',h0,...
'position',[0.15 0.5 0.7 0.5],...
'visible','off');
u1=uimenu('parent',h0,...
'label','加載圖像',...
'backgroundcolor',[0.753 0.753 0.753],...
'tag','u1',...
'callback',[...
'[X,map]=imread(''800.jpg'',''jpg'');,',...
'Y=imresize(X,2);,',...
'image(Y),',...
'colormap(map),',...
'axis image,',...
'camva(camva/2.5),',...
'disp(''單擊鼠標左鍵點(diǎn)取需要的點(diǎn)''),',...
'disp(''單擊鼠標右鍵確定最后一個(gè)點(diǎn)''),',...
'while 1,',...
'[x,y]=ginput(1);,',...
'if ~strcmp(get(gcf,''selectiontype''),''normal''),',...
'break,',...
'end,',...
'ct=camtarget;,',...
'dx=x-ct(1);,',...
'dy=y-ct(2);,',...
'camdolly(dx,dy,ct(3),''movetarget'',''data''),',...
'drawnow,',...
'end']);
u2=uimenu('parent',h0,...
'label','關(guān)閉',...
'backgroundcolor',[0.753 0.753 0.753],...
'tag','u2',...
'callback','close');
矢量數據的顯示
h0=figure('toolbar','none',...
'position',[198 56 450 468],...
'name','實(shí)例77');
h1=axes('parent',h0,...
'position',[0.3 0.45 0.5 0.5],...
'visible','off');
load wind
b1huidiao=[...
'cla,',...
'xmin = min(x(:));,',...
'xmax = max(x(:));,',...
'ymax = max(y(:));,',...
'zmin = min(z(:));,',...
'wind_speed = sqrt(u.^2 + v.^2 + w.^2);,',...
'hsurfaces =
slice(x,y,z,wind_speed,[xmin,100,xmax],ymax,zmin);,',...
'set(hsurfaces,''FaceColor'',''interp'',''EdgeColor'',''none''),',...
'hcont =
contourslice(x,y,z,wind_speed,[xmin,100,xmax],ymax,zmin);,',...
'set(hcont,''EdgeColor'',[.7,.7,.7],''LineWidth'',.5),',...
'[sx,sy,sz] = meshgrid(80,20:10:50,0:5:15);,',...
'hlines = streamline(x,y,z,y,v,w,sx,sy,sz);,',...
'set(hlines,''LineWidth'',2,''Color'',''r''),',...
'view(3),',...
'daspect([2,2,1]),',...
'axis tight'];
b2huidiao=[...
'cla,',...
'wind_speed = sqrt(u.^2 + v.^2 + w.^2);,',...
'hiso = patch(isosurface(x,y,z,wind_speed,40));,',...
'isonormals(x,y,z,wind_speed,hiso),',...
'set(hiso,''FaceColor'',''red'',''EdgeColor'',''none'');,',...
'hcap =
patch(isocaps(x,y,z,wind_speed,40),''FaceColor'',''interp'',''EdgeColor'',''none'');,',...
'colormap hsv,',...
'daspect([1,1,1]);,',...
'[f verts] =
reducepatch(isosurface(x,y,z,wind_speed,30),0.07);,',...
'h1 =
coneplot(x,y,z,u,v,w,verts(:,1),verts(:,2),verts(:,3),3);,',...
'set(h1,''FaceColor'',''blue'',''EdgeColor'',''none'');,',...
'xrange = linspace(min(x(:)),max(x(:)),10);,',...
'yrange = linspace(min(y(:)),max(y(:)),10);,',...
'zrange = 3:4:15;,',...
'[cx,cy,cz] = meshgrid(xrange,yrange,zrange);,',...
'h2 = coneplot(x,y,z,u,v,w,cx,cy,cz,2);,',...
'set(h2,''FaceColor'',''green'',''EdgeColor'',''none'');,',...
'axis tight,',...
'box on,',...
'camproj perspective,',...
'camzoom(1.25),',...
'view(65,45),',...
'camlight(-45,45),',...
'lighting phong,',...
'set(hcap,''AmbientStrength'',.6)'];
b1=uicontrol('parent',h0,...
'style','pushbutton',...
'units','points',...
'tag','b1',...
'backgroundcolor',[0.75 0.75 0.75],...
'string','可視化',...
'position',[50 100 60 20],...
'callback',b1huidiao);
b2=uicontrol('parent',h0,...
'style','pushbutton',...
'units','points',...
'tag','b2',...
'backgroundcolor',[0.75 0.75 0.75],...
'string','錐形圖',...
'position',[200 100 60 20],...
'callback',b2huidiao);
b3=uicontrol('parent',h0,...
'style','pushbutton',...
'units','points',...
'tag','b3',...
'backgroundcolor',[0.75 0.75 0.75],...
'string','關(guān)閉',...
'position',[125 60 60 20],...
'callback','close');
圖像分析(2)
h0=figure('toolbar','none',...
'position',[198 56 350 468],...
'name','實(shí)例78');
h1=axes('parent',h0,...
'position',[0.25 0.45 0.5 0.5],...
'visible','off');
load imdemos flower
imshow(flower)
colormap(copper)
n=size(X,1);
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,',...
'[X,map]=imread(''flowers.tif'');,',...
'X=double(flower);,',...
'X=(0.25/256)*X;,',...
'C=copper(35);,',...
'set(gca,''colororder'',C(21:35,:),''box'',''on'');,',...
'imcontour(X,3);,',...
'axis([1 n 1 n]),',...
'axis(''ij''),',...
'axis(''square'')']);
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,',...
'D=-del2(X);,',...
'pcolor(D),',...
'axis([1 n 1 n]),',...
'axis(''ij''),',...
'shading(''flat'')']);
b3=uicontrol('parent',h0,...
'units','points',...
'tag','b3',...
'style','pushbutton',...
'string','3D表面圖',...
'backgroundcolor',[0.75 0.75 0.75],...
'position',[170 100 50 20],...
'callback',[...
'cla,',...
'D=-del2(X);,',...
'surf(X,D),',...
'colormap(copper),',...
'axis([1 n 1 n 0 1]),',...
'axis(''ij''),',...
'shading(''flat''),',...
'view(-20,75);']);
b4=uicontrol('parent',h0,...
'units','points',...
'tag','b4',...
'style','pushbutton',...
'string','關(guān)閉',...
'backgroundcolor',[0.75 0.75 0.75],...
'position',[80 50 80 30],...
'callback','close');
圖像邏輯操作
h0=figure('toolbar','none',...
'position',[198 56 350 468],...
'name','實(shí)例79');
h1=axes('parent',h0,...
'position',[0.25 0.45 0.5 0.5],...
'visible','off');
load imdemos bacteria
imshow(bacteria)
k1=~(bacteria>100);
k2=filter2(fspecial('laplacian'),bacteria);
k3=(k2>-4)&k1;
k4=erode(k1)&(k3==0);
[r,c]=find(k4);
k5=bwselect(k1,c,r);
b1=uicontrol('parent',h0,...
'units','points',...
'tag','b1',...
'style','pushbutton',...
'string','二值分割圖',...
'backgroundcolor',[0.75 0.75 0.75],...
'position',[30 110 50 20],...
'callback',[...
'cla,',...
'imshow(k1)']);
b2=uicontrol('parent',h0,...
'units','points',...
'tag','b2',...
'style','pushbutton',...
'string','濾波結果圖',...
'backgroundcolor',[0.75 0.75 0.75],...
'position',[100 110 50 20],...
'callback',[...
'cla,',...
'imshow(k2)']);
b3=uicontrol('parent',h0,...
'units','points',...
'tag','b3',...
'style','pushbutton',...
'string','閾值化圖',...
'backgroundcolor',[0.75 0.75 0.75],...
'position',[170 110 50 20],...
'callback',[...
'cla,',...
'imshow(k3)']);
b4=uicontrol('parent',h0,...
'units','points',...
'tag','b4',...
'style','pushbutton',...
'string','目標的核',...
'backgroundcolor',[0.75 0.75 0.75],...
'position',[30 60 50 20],...
'callback',[...
'cla,',...
'imshow(k4)']);
b5=uicontrol('parent',h0,...
'units','points',...
'tag','b5',...
'style','pushbutton',...
'string','目標分割圖',...
'backgroundcolor',[0.75 0.75 0.75],...
'position',[100 60 50 20],...
'callback',[...
'cla,',...
'imshow(k5)']);
b6=uicontrol('parent',h0,...
'units','points',...
'tag','b6',...
'style','pushbutton',...
'string','關(guān)閉',...
'backgroundcolor',[0.75 0.75 0.75],...
'position',[170 60 50 20],...
'callback','close');
進(jìn)度條的使用
h0=figure('toolbar','none',...
'position',[198 56 350 450],...
'name','實(shí)例80');
h1=axes('parent',h0,...
'position',[0.25 0.45 0.6 0.5],...
'visible','off');
I=imread('flowers.tif');
imshow(I)
b1=uicontrol('parent',h0,...
'units','points',...
'tag','b1',...
'style','pushbutton',...
'string','轉換',...
'backgroundcolor',[0.75 0.75 0.75],...
'position',[50 80 60 25],...
'callback',[...
'handlek=waitbar(0,''initializing......'');,',...
'pause(0.5),',...
'i=1;,',...
'while i<=100,',...
'waitbar(i/100,handlek,[num2str(i),''%finished''],handlek),',...
'i=i+1;,',...
'pause(0.05),',...
'end,',...
'pause(1.5),',...
'cla,',...
'delete(handlek),',...
'Y=rgb2ntsc(I);,',...
'J=Y(:,:,1);,',...
'imshow(J)']);
b2=uicontrol('parent',h0,...
'units','points',...
'tag','b2',...
'style','pushbutton',...
'string','關(guān)閉',...
'backgroundcolor',[0.75 0.75 0.75],...
'position',[150 80 60 25],...
'callback','close');
MRI數據的顯示
load mri
D = squeeze(D);
h0=figure('toolbar','none',...
'position',[198 56 450 468],...
'name','實(shí)例81');
h1=axes('parent',h0,...
'position',[0.3 0.45 0.5 0.5],...
'visible','off');
image_num = 8;
image(D(:,:,image_num))
axis image
colormap(map)
x = xlim;
y = ylim;
b1=uicontrol('parent',h0,...
'units','points',...
'tag','b1',...
'style','pushbutton',...
'backgroundcolor',[0.75 0.75 0.75],...
'position',[50 100 60 20],...
'string','二維圖',...
'callback',[...
'cla,',...
'contourslice(D,[],[],image_num),',...
'axis ij,',...
'xlim(x),',...
'ylim(y),',...
'daspect([1,1,1]),',...
'colormap(''default'')']);
b2=uicontrol('parent',h0,...
'units','points',...
'tag','b2',...
'style','pushbutton',...
'backgroundcolor',[0.75 0.75 0.75],...
'position',[250 100 60 20],...
'string','三維圖',...
'callback',[...
'cla,',...
'phandles = contourslice(D,[],[],[1,12,19,27],8);,',...
'view(3);,',...
'axis tight,',...
'set(phandles,''LineWidth'',2)']);
b3=uicontrol('parent',h0,...
'units','points',...
'tag','b3',...
'style','pushbutton',...
'backgroundcolor',[0.75 0.75 0.75],...
'position',[50 50 60 20],...
'string','立體圖',...
'callback',[...
'cla,',...
'Ds = smooth3(D);,',...
'hiso =
patch(isosurface(Ds,5),''FaceColor'',[1,.75,.65],''EdgeColor'',''none'');,',...
'hcap =
patch(isocaps(D,5),''FaceColor'',''interp'',''EdgeColor'',''none'');,',...
'colormap(map),',...
'view(45,30),',...
'axis tight,',...
'daspect([1,1,.4]),',...
'lightangle(45,30),',...
'lighting phong,',...
'isonormals(Ds,hiso),',...
'set(hcap,''AmbientStrength'',.6),',...
'set(hiso,''SpecularColorReflectance'',0,''SpecularExponent'',50)']);
b4=uicontrol('parent',h0,...
'units','points',...
'tag','b4',...
'style','pushbutton',...
'backgroundcolor',[0.75 0.75 0.75],...
'position',[250 50 60 20],...
'string','關(guān)閉',...
'callback','close');