您现在的位置:首页 >> 图像处理 >> 内容

基于Graph-Cut算法的图像目标分割matlab仿真

时间:2022/12/11 21:00:40 点击:

  核心提示:a107包含程序操作录像...

1.完整项目描述和程序获取

>面包多安全交易平台:https://mbd.pub/o/bread/Y5mXlpdr

>如果链接失效,可以直接打开本站店铺搜索相关店铺:

点击店铺

>如果链接失效,程序调试报错或者项目合作可以加微信或者QQ联系。

2.部分仿真图预览



3.算法概述

        Graph cuts是一种十分有用和流行的能量优化算法,在图像处理领域普遍应用于前后背景分割(Image segmentation)、立体视觉(stereo vision)、抠图(Image matting)等,目前在医学图像领域应用较多。此类方法把图像分割问题与图的最小割(min cut)问题相关联。首先用一个无向图.G=<V,E>表示要分割的图像,V和E分别是顶点(vertex)和边(edge)的集合。此处的Graph和普通的Graph稍有不同。

4.部分源码

clc;

clear;

close all;

warning off;

addpath(genpath(pwd));

%参数初始化

%初始图像名称

I             = double(imread('Test_Image\hand.jpg'));

%迭代次数

iter          = 400;         

%初始模板,模板在初始的时候只要定义一个较大的矩阵即可

S1                       = size(I,1);

E1                       = size(I,2);

Es                       = 20;

MASK0                    = zeros(S1,E1);

MASK0(Es:S1-Es,Es:E1-Es) = 1;

%转换为二维图

if size(I,3) > 1

   Is = (I(:,:,1)+I(:,:,2)+I(:,:,3))/3;

else

   Is =  I;

end

[Result,Result2,Object] = func_Active_Contour_Flow(Is,I,MASK0,iter);

figure;

subplot(131);

imshow(uint8(I),[]);

hold on

contour(Result,[0,0],'r','linewidth',2); 

subplot(132);

imshow(Result2,[]);

subplot(133);

imshow(uint8(Object));

A107

作者:我爱C编程 来源:我爱C编程
本站最新成功开发工程项目案例
相关评论
发表我的评论
  • 大名:
  • 内容:
本类固顶
  • 没有
  • FPGA/MATLAB商业/科研类项目合作(www.store718.com) © 2025 版权所有 All Rights Reserved.
  • Email:1480526168@qq.com 站长QQ: 1480526168