Img=imread('8.jpg')

thresh = graythresh(Img);     %自动确定二值化阈值

bwImg = im2bw(Img,thresh);       %对图像二值化

[cut_m,cut_n] = size(Img);

cut_sumCol = sum(Img,1);

cut_sumRow = sum(Img,2);

%左右切割

minDigitWidth = 5;

maxDigitWidth = 25;

minColArea = 250;

col_intevl = 1;

offset = 1;

col_seg = findValleys(cut_sumCol, col_intevl, offset,minDigitWidth, maxDigitWidth);

col_seg= clean(col_seg,minDigitWidth);

result_seg_col = chooseBestSeg(col_seg,cut_sumCol,minColArea,7);

seg = result_seg_col;

%左右切割

minDigitWidth = 5;

maxDigitWidth = 25;

minColArea = 250;

col_intevl = 1;

offset = 1;

col_seg = findValleys(cut_sumCol, col_intevl, offset,minDigitWidth, maxDigitWidth);

col_seg= clean(col_seg,minDigitWidth);

result_seg_col = chooseBestSeg(col_seg,cut_sumCol,minColArea,7);

seg = result_seg_col;

% 上下切割

minDigitHeight = 20;

maxDigitHeight = 50;

minRowArea = 150;

row_intevl = 1;

offset = 1;

row_seg = findValleys(cut_sumRow', row_intevl, offset,minDigitHeight, maxDigitHeight);

row_seg= clean(row_seg,minDigitHeight);

result_seg_row = chooseBestSeg(row_seg,cut_sumRow',minColArea,1);

new_bwImg = Img(result_seg_row(1,1):result_seg_row(1,2),:);

figure(55),

subplot(331),imshow(Img);title('灰度图片');hold on;

subplot(332),imshow(bwImg);title('二值化');hold on;

subplot(334),plot(1:n,sumCol);title('X轴及其边框位置');hold on;

plot([cutColLeft cutColRight],sumCol([cutColLeft cutColRight]),'b+');hold on;

subplot(335),plot(1:m,sumRow);title('Y轴及其边框位置');hold on;

plot([cutRowTop cutRowBottom],sumRow([cutRowTop cutRowBottom]),'r+');hold on;

subplot(336),imshow(cut_bwImg);title('去除边框');hold on;

subplot(337),plot(1:cut_n,cut_sumCol);title('去除边框后X轴以及切割点');hold on;

plot(result_seg_col,cut_sumCol(result_seg_col),'go');hold on;

subplot(338),plot(1:cut_m,cut_sumRow);title('去除边框后Y轴以及切割点');hold on;

plot(result_seg_row,cut_sumRow(result_seg_row),'ro');hold on;

subplot(339),imshow(cut_bwImg);title('切割线');hold on;

plot([1:cut_n],result_seg_row(1,1),'r.',[1:cut_n],result_seg_row(1,2),'r.');hold on;

for i=1:size(result_seg_col,1)

plot(result_seg_col(i,1),[1:cut_m],'b.');hold on;

plot(result_seg_col(i,2),[1:cut_m],'b.');hold on;

end

cut_Img_new = [];

for i=1:size(result_seg_col,1)

cut_Img_new = [cut_Img_new cut_bwImg(result_seg_row(1,1):result_seg_row(1,2),result_seg_col(i,1):result_seg_col(i,2)) ones(result_seg_row(1,2)-result_seg_row(1,1)+1,1)];

end

subplot(333),imshow(cut_Img_new);title('切割出的字符');hold on;

出错 sym/subsref (line 687)

B = mupadmex('symobj::subsref',A.s,inds{:})是什么原因啊

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐