gusucode.com > matlab程序语言实现的水准网平差程序,使用于测绘人员 > 一种基于极大值稳定区域的文本定位方法matlab源码程序/毕业设计/代码/re_define.m

    function [mserboxes]=re_define(mserStats,mserboxes,grayImage)
    for k=1:10
        for i=1:numel(mserStats)
            for j=(i+1):numel(mserStats)
                broder=[mserboxes.BoundingBox];

                ax=broder((i-1)*4+1);
                ay=broder((i-1)*4+2);
                width1=broder((i-1)*4+3);
                height1=broder((i-1)*4+4);
                bx=ax+width1;
                by=ay+height1;

                mx=broder((j-1)*4+1);
                my=broder((j-1)*4+2);
                width2=broder((j-1)*4+3);
                height2=broder((j-1)*4+4);
                nx=mx+width2;
                ny=my+height2;

                if (mx<=ax && my<=ay && nx>ax && nx<=bx && ny>ay && ny<=by) | (mx>=ax && mx<bx && my<=ay && nx>=bx && ny>ay && ny<=by)
                    flag=1;
                elseif (ax<=mx && ay<=my && bx>mx && bx<=nx && by>my && by<=ny) | (mx<=ax && my>ay && my<=by && nx>=ax && nx<bx && ny>=by)
                    flag=1;
                elseif (mx>=ax && mx<bx && my<ay && nx<=bx && ny>ay && ny<=by) | (mx>=ax && mx<bx && my>=ay && my<by && nx>bx && ny<=by)
                    flag=2;
                elseif (mx>=ax && mx<bx && my>=ay && my<by && nx<=bx && ny>by) | (mx<ax && my>=ay && my<by && nx>ax && nx<=bx && ny<=by)
                    flag=2;
                elseif (ax>=mx && ax<nx && ay<my && bx<=nx && by>my && by<=ny) | (ax>=mx && ax<nx && ay>=my && ay<ny && bx>nx && by<=ny)
                    flag=2;
                elseif (ax>=mx && ax<nx && ay>=my && ay<ny && bx<=nx && by>ny) | (ax<mx && ay>=my && ay<ny && bx>mx && bx<=nx && by<=ny)
                    flag=2;            
                elseif (mx<=ax && my<=ay && nx>=bx && ny>=by) | (ax<=mx && ay<=my && bx>=nx && by>=ny)
                    flag=4;
                else
                    flag=0;
                end

                [mserboxes]=recalculator(mserboxes,flag,i,j,ax,ay,bx,by,mx,my,nx,ny);
            end
        end 
    end
        for i=1:numel(mserStats)
            if mserboxes(i).BoundingBox==[0,0,0,0]
                mserboxes(i).Count=0;
            end
        end

%      [mserboxes]=draweveryone(mserboxes,mserStats,grayImage);
end