彩色车牌分割
分割 彩色 车牌
2023-09-14 08:58:46 时间
把彩色图片中的车牌号分割出来
clc; clear; I=imread('Car.jpg'); [y,x,z]=size(I); %x=640,y=480,z=3; myI=double(I); tic % 测定算法执行的时间,开始计时 %%%%%%%%%%% 统计分析 %%%%%%%%%%%%%%% %%%%%%%% Y 方向 %%%%%%%%%% Blue_y=zeros(y,1); for i=1:y for j=1:x if((myI(i,j,1)<=30)&&((myI(i,j,2)<=62)&&(myI(i,j,2)>=51))&&((myI(i,j,3)<=142)&&(myI(i,j,3)>=119))) % 蓝色RGB的灰度范围 Blue_y(i,1)= Blue_y(i,1)+1; % 蓝色象素点统计 end end end [temp MaxY]=max(Blue_y); % Y方向车牌区域确定 %求Blue_y的最大值,MaxY是最大值所在的位置,temp是最大值。 %统计 y方向 上蓝色点数超过5的,上下极限对应的坐标 PY1=MaxY; while ((Blue_y(PY1,1)>=5)&&(PY1>1)) %以蓝色点最多的坐标MaxY为中心,向上统计,直到坐标PY1的蓝色点数为5为止。 PY1=PY1-1; end PY2=MaxY; while ((Blue_y(PY2,1)>=5)&&(PY2<y)) PY2=PY2+1; end IY=I(PY1:PY2,:,:); %确定y方向的车牌区域 %%%%%%%% X 方向 %%%%%%%%%% Blue_x=zeros(1,x); % 进一步确定X方向的车牌区域 for j=1:x for i=PY1:PY2 if((myI(i,j,1)<=30)&&((myI(i,j,2)<=62)&&(myI(i,j,2)>=51))&&((myI(i,j,3)<=142)&&(myI(i,j,3)>=119))) % 蓝色RGB的灰度范围 Blue_x(1,j)= Blue_x(1,j)+1; end end end PX1=1; while ((Blue_x(1,PX1)<3)&&(PX1<x)) %从左到右,找到首个蓝色点数大于等于3的 x轴的坐标。 PX1=PX1+1; end PX2=x; while ((Blue_x(1,PX2)<3)&&(PX2>PX1)) %从右到左,找到首个蓝色点数大于等于3的 x轴的坐标。 PX2=PX2-1; end PX1=PX1-2; % 对车牌区域的修正 PX2=PX2+2; Plate=I(PY1:PY2,PX1-2:PX2,:); %把图像中蓝色车牌的区域摘出来 t=toc % 读取计时 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% figure,imshow(I); figure,plot(Blue_y);grid;title('BlueY') figure,plot(Blue_x);grid;title('BlueX') figure,imshow(IY); figure,imshow(Plate);
相关文章
- 【数字图像处理】边缘检测与图像分割
- 后RCNN时代的物体检测及实例分割进展
- C++对带有分隔符的字符串 分割为数字的通用解决方案
- 131. 分割回文串
- 机器学习笔记 - 基于最简单的编码器/解码器架构SegNet进行语义分割
- 机器学习笔记 - TransUNet 用于医学图像分割的编码器
- 【图像分割】基于神经气体网络的图像分割与量化(Matlab代码实现)
- 使用OpenCV的kmeans实现图像分割
- 基于U-Net网络的图像分割的MindStudio实践
- 基于Graph-Cut算法的图像目标分割matlab仿真
- Java 分割字符串的方法String.split()底层原理与使用
- 在OpenCV里实现自适应阈值分割
- 【AIGC】6、Segment Anything | Meta 推出超强悍可分割一切的模型 SAM
- 【语义分割】9、Mining Contextual Information Beyond Image for Semantic Segmentation
- python工具方法 24 语义分割结果按连通域分割提取其外接矩形保存为yolo标注