⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ex2.m

📁 MATLAB图像处理中的实力应用
💻 M
字号:
I = imread('car.jpg'); 
I2 = rgb2gray(I);
I4 = im2bw(I2, 0.2);
bw = bwareaopen(I4, 500);
se = strel('disk',15);
bw = imclose(bw,se);
bw = imfill(bw,[1 1]);
[B,L] = bwboundaries(bw,4);
imshow(label2rgb(L, @jet, [.5 .5 .5]))
hold on
for k = 1:length(B)
 boundary = B{k};
 plot(boundary(:,2),boundary(:,1),'w','LineWidth',2)
end
% 找到每个连通域的质心
stats = regionprops(L,'Area','Centroid');
% 循环历遍每个连通域的边界
for k = 1:length(B)
  % 获取一条边界上的所有点
  boundary = B{k};
  % 计算边界周长
  delta_sq = diff(boundary).^2;    
  perimeter = sum(sqrt(sum(delta_sq,2)));
  % 获取边界所围面积
  area = stats(k).Area;
  % 计算匹配度
  metric = 27*area/perimeter^2;
  % 要显示的匹配度字串
  metric_string = sprintf('%2.2f',metric);
  % 标记出匹配度接近1的连通域
  if metric >= 0.9 && metric <= 1.1
    centroid = stats(k).Centroid;
    plot(centroid(1),centroid(2),'ko');
    % 提取该连通域所对应在二值图像中的矩形区域
    goalboundary = boundary; 
    s = min(goalboundary, [], 1);
    e = max(goalboundary, [], 1);
  goal = imcrop(I4,[s(2) s(1) e(2)-s(2) e(1)-s(1)]); 
  end
  % 显示匹配度字串
  text(boundary(1,2)-35,boundary(1,1)+13,...
    metric_string,'Color','g',...
'FontSize',14,'FontWeight','bold');
end
goal = ~goal;
goal(256,256) = 0;
figure;
imshow(goal);
w = imread('P.bmp');
w = ~w;
C=real(ifft2(fft2(goal).*fft2(rot90(w,2),256,256)));
thresh = 240;
figure;
imshow(C > thresh);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -