1. 程式人生 > >【matlab影象處理】氣泡麵積與中心檢測

【matlab影象處理】氣泡麵積與中心檢測

clear all;clc;close all;
f=imread('2.jpg');
figure,imshow(f);
fb=im2bw(f,0.34);
figure,imshow(fb);
f1 = medfilt2(fb,[7 7],'symmetric');
figure,imshow(f1)
f2 = medfilt2(f1,[6 6],'symmetric');
figure,imshow(f2)
se = strel('disk', 3);  % 結構元素 圓盤形
fo = imopen(f2, se);
figure;imshow(fo)    % 開
%%
[l,n]=bwlabel(fo);
  ac(1:n)=0;
  for k =1:n
      for i=1: size(f,1)
          for j=1: size(f,2)
              if(l(i,j)== k)
                  ac(k)=ac(k)+1;
              end
          end
      end
          disp(['您想查詢的物體',num2str(k),'對應畫素的面積為',num2str(ac(k))]);
  end
  
clear all;clc;close all;
f=imread('2.jpg');
figure,imshow(f);
% fb=im2bw(f,0.4);
% figure,imshow(fb);
fb=im2bw(f,0.34);
figure,imshow(fb);
f1 = medfilt2(fb,[7 7],'symmetric');
figure,imshow(f1)
title('用7*7中值濾波器濾波的結果1')
f2 = medfilt2(f1,[6 6],'symmetric');
figure,imshow(f2)
title('用6*6中值濾波器濾波的結果2')

% se = strel('square', 6);  % 結構元素
se = strel('disk', 3);  % 結構元素 圓盤形
fo = imopen(f2, se);
figure;imshow(fo)    % 開
title('使用結構元素[disk(3)]開操作後的影象')
%%
[l,n]=bwlabel(fo);
% figure,imshow(fb);
% hold on
  ac(1:n)=0;
  for k =1:n
      for i=1: size(f,1)
          for j=1: size(f,2)
              if(l(i,j)== k)
                  ac(k)=ac(k)+1;
              end
          end
      end
          disp(['您想查詢的物體',num2str(k),'對應畫素的面積為',num2str(ac(k))]);
  end
  

clear all;clc;close all;
f=imread('2.jpg');
figure,imshow(f);
% fb=im2bw(f,0.4);
% figure,imshow(fb);
fb=im2bw(f,0.34);
figure,imshow(fb);
f1 = medfilt2(fb,[7 7],'symmetric');
figure,imshow(f1)
title('用7*7中值濾波器濾波的結果1')
f2 = medfilt2(f1,[7 7],'symmetric');
figure,imshow(f2)
title('用7*7中值濾波器濾波的結果2')

% f2 = adpmedian(f1,7);
% figure,imshow(f2)
% title('用Smax=7的自適應中值濾波結果')
%%
se = strel('square', 3);  % 結構元素
% se = strel('disk', 2);  % 結構元素 圓盤形
fo = imopen(f1, se);
figure;imshow(fo)    % 開
title('使用結構元素[square(3)]開操作後的影象')
g = imfill(fo,'holes');
figure;imshow(g)
title('填充孔洞(完全封閉)後的影象')
%%  膨脹腐蝕  膨脹腐蝕 膨脹腐蝕 膨脹腐蝕 VS濾波