clc;
clear;
close all;
warning off;
addpath(genpath(pwd));
rng('default')
I = imread('car.jpg');
figure,imshow(I)
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);
figure,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;
w = imread('P.bmp');
w = ~w;
C=real(ifft2(fft2(goal).*fft2(rot90(w,2),256,256)));
thresh = 240;
figure(3),subplot (1, 2, 1) ;imshow (goal) ;subplot (1, 2, 2) ;imshow(C > 0.15*thresh)
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
matlab_(含教程)基于形态学处理的车牌定位和车牌提取matlab仿真.7z (11个子文件)
matlab_(含教程)基于形态学处理的车牌定位和车牌提取matlab仿真
P.bmp 206B
untitled22.jpg 23KB
M.bmp 190B
8.bmp 206B
教程.mp4 6.74MB
4.bmp 206B
car.jpg 60KB
Runme.m 2KB
untitled11.jpg 26KB
2.bmp 206B
B.bmp 206B
共 11 条
- 1
资源评论
mYlEaVeiSmVp
- 粉丝: 1887
- 资源: 19万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功