一、简介

1 原理分析\ \ \ \ \ 2 编程过程\ 2.1 准备工作\ \ 2.2 迭代运算\

二、源代码

``` %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% clear; clc;

%读图像并将rgb图像转化为灰度图象,为了节省cpu时间,将图像变小为原来大小的1/2

im=imread('3.bmp'); im=rgb2gray(im); im=double(im); im = imresize( im, 0.5 );
figure(1);imshow(uint8(im)); [nrow,ncol]=size(im);

%为了计算函数g,先对图像作预平滑。 J= gauss( im,3,2 ); %guassian平滑

%求图像梯度模值 Jx = (J(:,[2:ncol ncol])-J(:,[1 1:ncol-1]))/2; Jy = (J([2:nrow nrow],:)-J([1 1:nrow-1],:))/2;
gradim = (Jx.^2 + Jy.^2).^0.5;
%计算边缘函数g kk=5; %contrast parameter g=1./(1+(grad
im/kk).^2);

%初始化曲线为一个图,初始化u为带符号距离函数 curvIndex=zeros(5nrowncol,2); curvImag=zeros([nrow,ncol]); num=0; for i = 2 : nrow - 1 for j = 2 : ncol - 1 if ((i==8|i==nrow-8)&(j>=8&j<=(ncol-8)))|((i>=8&i<=(nrow-8))&(j==8|j==ncol-8)) num=num+1; InitCurvImag(i,j)=255; curvIndex(num,1)=i; curvIndex(num,2)=j; for k=1:num-1 %check is it the last point of the curve if curvIndex(k,1)==i & curvIndex(k,2)==j num=num-1;break end end end end end

u = zeros(nrow,ncol); dist=zeros(1,num); for j=1:ncol for i=1:nrow for k=1:num dist(k)=sqrt((i-curvIndex(k,1)).^2+(j-curvIndex(k,2)).^2); end u(i,j)=min(dist); if i>8&i<(nrow-8)&j>8&j<(ncol-8) u(i,j)=-u(i,j); end end end

%将当前曲线加入到原图像中,然后写入文件 newim=createimage(im,u,0);
figure(2);imshow(uint8(newim));

%选定迭代步长 delta_t=20; %选定常数速度 c=0.2;

%迭代开始 for iterations=1:4000 %%% compute Roe upwind gradient
uxe = u(:,[2:ncol,ncol])-u; uye = (u([2:nrow,nrow],:)+u([2:nrow,nrow],[2:ncol,ncol])-u([1 1:nrow-1],:)-u([1 1:nrow-1],[2:ncol ncol]))/4; uGe = sqrt(uxe .^2+uye .^2); ge = 0.5*(g(:,[2:ncol,ncol])+g); Terme = ge.*uxe./(uG_e+eps);

uxw = u-u(:,[1 1:ncol-1]); uyw = (u([2:nrow,nrow],:)+u([2:nrow,nrow],[1 1:ncol-1])-u([1,1:nrow-1],:)-u([1,1:nrow-1],[1 1:ncol-1]))/4; uGw = sqrt(uxw.^2+uyw.^2); gw = 0.5*(g(:,[1 1:ncol-1])+g); Termw = gw.*uxw./(uG_w+eps);

uys = u([2:nrow,nrow],:)-u; uxs = (u(:,[2:ncol,ncol])+u([2:nrow,nrow],[2:ncol,ncol])-u(:,[1 1:ncol-1])-u([2:nrow,nrow],[1 1:ncol-1]))/4; uGs = sqrt(uys.^2+ uxs.^2); gs = 0.5*(g([2:nrow,nrow],:)+g); Terms = gs.*uys./(uG_s+eps);

uyn = u-u([1 1:nrow-1],:); uxn = (u(:,[2:ncol,ncol])+u([1 1:nrow-1],[2:ncol,ncol])-u(:,[1 1:ncol-1])-u([1 1:nrow-1],[1 1:ncol-1]))/4; uGn = sqrt(uyn.^2+uxn.^2); gn = 0.5*(g([1,1:nrow-1],:)+g); Termn = gn.*uyn./(uG_n+eps); function Ig=gauss(I,ks,sigma2) %private function: gauss (by Guy Gilboa): % Ig=gauss(I,ks,sigma2) % ks - kernel size (odd number) % sigma2 - variance of Gaussian

[Ny,Nx]=size(I); hks=(ks-1)/2; % half kernel size if (Ny else %% 2-d convolution x=ones(ks,1)*(-hks:hks); y=x'; flt=exp(-(x.^2+y.^2)/(2*sigma2)); % 2D gaussian flt=flt/sum(sum(flt)); % normalize % expand if (hks>1) xL=mean(I(:,1:hks)')'; xR=mean(I(:,Nx-hks+1:Nx)')'; else xL=I(:,1); xR=I(:,Nx); end eI=[xLones(1,hks) I xRones(1,hks)]; if (hks>1) xU=mean(eI(1:hks,:)); xD=mean(eI(Ny-hks+1:Ny,:));
else xU=eI(1,:); xD=eI(Ny,:);
end ```

三、运行结果

\ \

四、备注

【图像分割】基于GAC水平集方法实现图像分割matlab 源码相关推荐

  1. gadecod matlab,【预测模型】基于遗传算法优化BP神经网络房价预测matlab源码

    一.简介 1 遗传算法概述 遗传算法(Genetic Algorithm,GA)是进化计算的一部分,是模拟达尔文的遗传选择和自然淘汰的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法 ...

  2. 【钟表识别】基于计算机视觉实现钟表时间识别含Matlab源码

    1 简介 基于计算机视觉实现钟表时间识别含Matlab源码​ 2 部分代码 function [time_clock]= read(filepath) I = imread(filepath); [e ...

  3. 【语音识别】基于VQ特定人孤立词语音识别matlab 源码

    一.简介 VQ(Vector Quantization)是一个常用的压缩技术,本文主要回顾: 1)VQ原理 2)基于VQ的说话人识别(SR,speaker recognition)技术 〇.分类问题 ...

  4. 基于KNN-凸包提取轮廓点(matlab源码及示例)

    KNN凸包算法提取平面点云轮廓点结果如下: 其可以很好地将轮廓点进行提取出,且为有序点云 源码下载网站: 基于KNN凸包算法提取二维点云边缘点,其提取的边缘点为有序点云-数据集文档类资源-CSDN下载

  5. 【运动学】基于最小半径实现泊车仿真含Matlab源码

    1 简介 ​近年来,智能化的自动泊车技术不断发展.文章针对自动平行泊车轨迹曲率过大,曲率不连续和泊车起始位置,车身姿态要求较为苛刻等问题,提出了最小半径自动平行泊车方法. 2 部分代码 functio ...

  6. 【车牌识别】基于模板匹配实现车牌识别含Matlab源码

    1 简介 车牌识别系统是计算机视觉与模式识别技术在智能交通里的重要研究课题之一.其功能是将运动中的汽车牌照从复杂背景中提取出来,并识别出车牌号码.车牌识别技术广泛应用于高速公路上的电子收费,日常的停车 ...

  7. 【ELM预测】基于极限学习机ELM实现数据预测matlab源码

    一.极限学习机的概念 极限学习机(Extreme Learning Machine) ELM,是由黄广斌提出来的求解单隐层神经网络的算法. ELM最大的特点是对于传统的神经网络,尤其是单隐层前馈神经网 ...

  8. 【优化控制】基于遗传算法实现优化LQR控制器含Matlab源码

    1 简介 车辆悬架系统是影响汽车行驶平顺性和乘坐舒适性的重要结构部件.传统的被动悬架由于其弹性元件刚度和减震器阻尼是固定不变的,这导致其只能适应某一特定路面行驶,限制了适应多样性路况的需求以及车辆性能 ...

  9. 【预测模型】基于 Elm神经网络的电力负荷预测模型matlab源码

    1. 算法概述 **\ ELM算法针对的问题是单隐层的前馈神经网络(single-hidden layer feedforward neural networks,SLFNs),算法特点在于输入层到隐 ...

最新文章

  1. Redis5.0:这些场景下使用,高效还降低成本!
  2. 【WPF】使用 XAML 的 Trigger 系统实现三态按钮
  3. Android studio 单元测试
  4. 如何直接强制客户端刷新.js文件
  5. 【转】BMP图像文件格式
  6. 【算法】剑指 Offer 30. 包含min函数的栈
  7. mysql 备份数据
  8. 海康威视摄像头忘记密码后如何重置
  9. 小米6通话音量补丁_手机通话声音小?只需打开这个开关,音量既大又清晰
  10. uniapp 获取时间戳
  11. 非广延统计分布结构化分析的本征坐标法应用
  12. pm2 start 带参数_pm2
  13. 【华人学者风采】孙怡舟,加州大学洛杉矶分校
  14. Ubuntu下修改键盘排列
  15. 推荐 :数据科学研究的现状与趋势
  16. 2021年电工(初级)报名考试及电工(初级)考试内容
  17. 2D动画设计制作软件:Cartoon Animator 中文版win/mac版
  18. 边缘服务网格 osm-edge
  19. 【转】最容易理解的对卷积(convolution)的解释
  20. 一个40岁老程序员的学习之路,在别人为“中年危机”而忧愁时,你可以淡然处之

热门文章

  1. 全新的视频编码标准——AV1
  2. 09.JavaScript算术运算符(加、减、乘、除、幂、余)、自增、自减、缩写、位移
  3. 安卓免root运行linux,linuxdeploy免root版
  4. 基于LPWAN技术的低成本 IoT 物联网企业资产管理解决方案
  5. caddy 2 源代码发布
  6. 如何优雅的使用GMS,为此我做了个食用Google服务的magisk microG懒人模块。
  7. java处理导入Excel数据重复数据,整理后在导入
  8. 科佩克机器人TCP通信(机器人控制器作为服务器)
  9. Android部分源码资源共享(视屏转GIF图片工具、仿抖音、仿朋友圈、仿红包、饼状图、引导图,图灵源码等)
  10. 吉林大学 王英 计算机学院,王英-上海交通大学纳米电子材料与器件研究组