Edwad〆 2022-05-13 09:29 采纳率: 100%
浏览 21
已结题

这是一段车牌字符分割的matlab程序,请问这是哪种方法,然后之中有个0.02是怎么来的啊,有人知道吗

%% 字符分割
I_VER_JZ_S = handles.chepaiyu;
thresh = handles.chepaiyuT;
I_1=rgb2gray(I_VER_JZ_S);
K=im2bw(I_1,thresh);
[kuan,chang]=size(K);
[x,y]=find(K==1)
a1=length(x);
[x,y]=find(K==0)
b1=length(y);
if a1>b1
K1=K;
else
K1=K;
end
[a b] = size(K1);
sumK = sum(K1);
%寻找阈值
T=2;
myb = find(sumK>=T); %所在的列为myb
myf = zeros(1,length(myb)); %大于阈值的列的数目
for ii = 2:length(myb)
if myb(ii)-myb(ii-1)==1
myb(ii-1) = 0; %myb不为0的点位跳变的前边缘_index
else
myf(ii) = myb(ii); %myf不为0的点对应跳变的后边缘_index
end
end
myd = find(myb
=0); %找到跳变的前边缘
MYE = myb(myd); %对应列号
myh = find(myf~=0); %找到跳变的后边缘
myi = myf(myh);
MYB = [1 myi];
for ii = 1:length(MYE)
part=sumK(1,MYB(ii):MYE(ii))
sumP=sum(part,2)
end
count = 1;
for ii = 1:length(MYE)
part1=sumK(1,MYB(ii):MYE(ii))
sumP1=sum(part1,2)
if sumP1(1)> (chang*kuan)*0.02
switch count
case 1
axes(handles.axes9);
case 2
axes(handles.axes12);
case 3
axes(handles.axes13);
case 4
axes(handles.axes14);
case 5
axes(handles.axes15);
case 6
axes(handles.axes16);
otherwise
axes(handles.axes17);
end

  imshow(K1(:,MYB(ii):MYE(ii)));
  images_test1 = imresize(K1(:,MYB(ii):MYE(ii)),[24 12]);  
  images_test(:,count) = double(reshape(images_test1,288,1));        
 count = count+1;
 end

end
handles.testnum = images_test;
guidata(hObject, handles);

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 5月21日
    • 创建了问题 5月13日

    悬赏问题

    • ¥20 有偿 写代码 要用特定的软件anaconda 里的jvpyter 用python3写
    • ¥20 cad图纸,chx-3六轴码垛机器人
    • ¥15 移动摄像头专网需要解vlan
    • ¥20 access多表提取相同字段数据并合并
    • ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角
    • ¥20 Java-Oj-桌布的计算
    • ¥15 powerbuilder中的datawindow数据整合到新的DataWindow
    • ¥20 有人知道这种图怎么画吗?
    • ¥15 pyqt6如何引用qrc文件加载里面的的资源
    • ¥15 安卓JNI项目使用lua上的问题