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