⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 createimage.m

📁 所有程序的运行和编译环境为:Visual C++ 6.0和MATLAB 6.5 service pack1(一般情况下MATLAB 6.5即可)。 如果您有和技术相关的问题或者发现本书实例有错误之处
💻 M
字号:
function newim = createimage( im,u,Flag )%%% 子函数:createimage()实现当前零水平集(演化曲线)在原图上的显示%%%         和嵌入函数u的重新初始化%%% 参数说明:%%% im     - 原始图像%%% u      - 当前水平集函数%%% Flag   - 是否进行重新初始化的标志,0:否;1:是%%% newim  - 返回的当前零水平集(红色曲线)叠加在原图上的新图像[nny,nnx]=size(im);curvIndex=zeros(5*nnx*nny,2);curvImag=zeros([nny,nnx]);num=0;%%- 标记当前零水平集for i = 2 : nnx - 1    for j = 2 : nny - 1        if u(i,j)<0  & (u(i+1,j)>0 | u(i-1,j)>0 | u(i,j+1)>0 | u(i,j-1)>0)            num=num+1; curvIndex(num,1)=i;curvIndex(num,2)=j;            curvImag(i,j)=255;        end    endend%%- 在原图上显示当前零水平集tempim = im;tempim(curvImag>0) = 255;newim( :, :, 1 ) = tempim;tempim(curvImag>0) = 0;newim( :, :, 2 ) = tempim;newim( :, :, 3 ) = tempim;newim = uint8( newim );%%- 如果Flag=1,则重新初始化uif Flag    new_u = zeros(nnx,nny);    dist=zeros(1,num);    for j=1:nny        for i=1:nnx            for k=1:num                dist(k)=sqrt((i-curvIndex(k,1)).^2+(j-curvIndex(k,2)).^2);            end            new_u(i,j)=min(dist);            if u(i,j)<0                new_u(i,j)=-new_u(i,j);            end        end    end    u=new_u;end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -