gusucode.com > matlab程序语言实现的水准网平差程序,使用于测绘人员 > 一种基于极大值稳定区域的文本定位方法matlab源码程序/毕业设计/代码/cut.m
ReadList1 = textread('cut_list.txt','%s','delimiter','\n');%载入列表 sz1=size(ReadList1); for i=1:sz1(1) name= char(ReadList1(i,1)); image=imread(strcat('D:\daily\样本\机器学习\cut\',name)); grayImage = rgb2gray(image);%转化成灰度图像 [mserRegions] = detectMSERFeatures(grayImage,'regionAreaRange',[70 4500],'ThresholdDelta',2.6);%提取MSER特称 %联通区像素索引列表 pixelIdxList=cellfun(@(xy)sub2ind(size(grayImage),xy(:,2),xy(:,1)),mserRegions.PixelList,'UniformOutput',false); % 创建结构体mserConnComp存储MSER区域 mserConnComp.Connectivity = 8; mserConnComp.ImageSize = size(grayImage); mserConnComp.NumObjects = mserRegions.Count; mserConnComp.PixelIdxList = pixelIdxList; %基本特征过滤 [mserStats,mserRegions] =conComp_filter(mserConComp,mserRegions,grayImage); %笔画宽度过滤 [mserRegions,mserStats]=line_filter(mserStats,mserRegions,grayImage); %转换 [mserboxes]=change(mserStats,mserConComp); %[mserboxes]=draweveryone(mserboxes,mserStats,grayImage); %合并 [mserboxes]=re_define(mserStats,mserboxes,grayImage); broder=[mserboxes.BoundingBox]; for j=1:numel(mserStats) if mserboxes(j).BoundingBox==[0,0,0,0]; else leftx=broder((j-1)*4+1); lefty=broder((j-1)*4+2); width=broder((j-1)*4+3); height=broder((j-1)*4+4); im=imcrop(image,[leftx,lefty,width,height]); filename=['D:\切割后的图片\fire_',num2str(i*j),'.jpg']; imwrite(im,filename,'jpg'); end end end