一、获取代码方式

获取代码方式1:
完整代码已上传我的资源: 【图像分割】基于matlab超像素SFFCM图像分割【含Matlab源码 1374期】

获取代码方式2:
通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码。

获取代码方式3:
通过紫极神光博客主页开通CSDN年度会员,凭支付凭证,私信博主,可获得此代码。

备注:开通CSDN年度会员,可免费获得1份代码(有效期为开通日起,三天内有效);
订阅紫极神光博客付费专栏,可免费获得1份代码(有效期为订阅日起,三天内有效);

二、图像分割简介

理论知识参考:【基础教程】基于matlab图像处理图像分割【含Matlab源码 191期】

三、部分源代码


clear all
close all
%%
cluster=2;
f_ori=imread('113044.jpg');
% Note that you can repeat the program for several times to obtain the best
% segmentation result for image '12003.jpg'
%% generate superpixels
%SFFCM only needs a minimal structuring element for MMGR, we usually set SE=2 or SE=3 for
%MMGR.
SE=3;
L1=w_MMGR_WT(f_ori,SE);
L2=imdilate(L1,strel('square',2));
[~,~,Num,centerLab]=Label_image(f_ori,L2);
%% fast FCM
Label=w_super_fcm(L2,centerLab,Num,cluster);
Lseg=Label_image(f_ori,Label);
figure,imshow(Lseg);
function varargout = colorspace(Conversion,varargin)
%Ó¦ÓÃ˵Ã÷£ºf2=colorspace('HSV<-RGB',f);f2ΪÊä³ö£¬fΪÊäÈë,¡®HSV<-RGB¡¯±íʾ´ÓRGB²ÊÉ«¿Õ¼äת»»µ½HSV²ÊÉ«¿Õ¼ä
%COLORSPACE  Convert a color image between color representations.
%   B = COLORSPACE(S,A) converts the color representation of image A
%   where S is a string specifying the conversion.  S tells the
%   source and destination color spaces, S = 'dest<-src', or
%   alternatively, S = 'src->dest'.  Supported color spaces are
%
%     'RGB'              R'G'B' Red Green Blue (ITU-R BT.709 gamma-corrected)
%     'YPbPr'            Luma (ITU-R BT.601) + Chroma
%     'YCbCr'/'YCC'      Luma + Chroma ("digitized" version of Y'PbPr)
%     'YUV'              NTSC PAL Y'UV Luma + Chroma
%     'YIQ'              NTSC Y'IQ Luma + Chroma
%     'YDbDr'            SECAM Y'DbDr Luma + Chroma
%     'JPEGYCbCr'        JPEG-Y'CbCr Luma + Chroma
%     'HSV'/'HSB'        Hue Saturation Value/Brightness
%     'HSL'/'HLS'/'HSI'  Hue Saturation Luminance/Intensity
%     'XYZ'              CIE XYZ
%     'Lab'              CIE L*a*b* (CIELAB)
%     'Luv'              CIE L*u*v* (CIELUV)
%     'Lch'              CIE L*ch (CIELCH)
%
%  All conversions assume 2 degree observer and D65 illuminant.  Color
%  space names are case insensitive.  When R'G'B' is the source or
%  destination, it can be omitted. For example 'yuv<-' is short for
%  'yuv<-rgb'.
%
%  MATLAB uses two standard data formats for R'G'B': double data with
%  intensities in the range 0 to 1, and uint8 data with integer-valued
%  intensities from 0 to 255.  As MATLAB's native datatype, double data is
%  the natural choice, and the R'G'B' format used by colorspace.  However,
%  for memory and computational performance, some functions also operate
%  with uint8 R'G'B'.  Given uint8 R'G'B' color data, colorspace will
%  first cast it to double R'G'B' before processing.
%
%  If A is an Mx3 array, like a colormap, B will also have size Mx3.
%
%  [B1,B2,B3] = COLORSPACE(S,A) specifies separate output channels.
%  COLORSPACE(S,A1,A2,A3) specifies separate input channels.
% Pascal Getreuer 2005-2006
%%% Input parsing %%%
if nargin < 2, error('Not enough input arguments.'); end
[SrcSpace,DestSpace] = parse(Conversion);
if nargin == 2Image = varargin{1};
elseif nargin >= 3Image = cat(3,varargin{:});
elseerror('Invalid number of input arguments.');
end
FlipDims = (size(Image,3) == 1);
if FlipDims, Image = permute(Image,[1,3,2]); end
if ~isa(Image,'double'), Image = double(Image)/255; end
if size(Image,3) ~= 3, error('Invalid input size.'); end
SrcT = gettransform(SrcSpace);
DestT = gettransform(DestSpace);
if ~ischar(SrcT) & ~ischar(DestT)% Both source and destination transforms are affine, so they% can be composed into one affine operationT = [DestT(:,1:3)*SrcT(:,1:3),DestT(:,1:3)*SrcT(:,4)+DestT(:,4)];      Temp = zeros(size(Image));Temp(:,:,1) = T(1)*Image(:,:,1) + T(4)*Image(:,:,2) + T(7)*Image(:,:,3) + T(10);Temp(:,:,2) = T(2)*Image(:,:,1) + T(5)*Image(:,:,2) + T(8)*Image(:,:,3) + T(11);Temp(:,:,3) = T(3)*Image(:,:,1) + T(6)*Image(:,:,2) + T(9)*Image(:,:,3) + T(12);Image = Temp;
elseif ~ischar(DestT)Image = rgb(Image,SrcSpace);Temp = zeros(size(Image));Temp(:,:,1) = DestT(1)*Image(:,:,1) + DestT(4)*Image(:,:,2) + DestT(7)*Image(:,:,3) + DestT(10);Temp(:,:,2) = DestT(2)*Image(:,:,1) + DestT(5)*Image(:,:,2) + DestT(8)*Image(:,:,3) + DestT(11);Temp(:,:,3) = DestT(3)*Image(:,:,1) + DestT(6)*Image(:,:,2) + DestT(9)*Image(:,:,3) + DestT(12);Image = Temp;
elseImage = feval(DestT,Image,SrcSpace);
end
%%% Output format %%%
if nargout > 1varargout = {Image(:,:,1),Image(:,:,2),Image(:,:,3)};
elseif FlipDims, Image = permute(Image,[1,3,2]); endvarargout = {Image};
end
return;function [SrcSpace,DestSpace] = parse(Str)
% Parse conversion argument
if isstr(Str)Str = lower(strrep(strrep(Str,'-',''),' ',''));k = find(Str == '>');if length(k) == 1         % Interpret the form 'src->dest'SrcSpace = Str(1:k-1);DestSpace = Str(k+1:end);elsek = find(Str == '<');if length(k) == 1      % Interpret the form 'dest<-src'DestSpace = Str(1:k-1);SrcSpace = Str(k+1:end);elseerror(['Invalid conversion, ''',Str,'''.']);end   endSrcSpace = alias(SrcSpace);DestSpace = alias(DestSpace);
elseSrcSpace = 1;             % No source pre-transformDestSpace = Conversion;if any(size(Conversion) ~= 3), error('Transformation matrix must be 3x3.'); end
end
return;function Space = alias(Space)
Space = strrep(Space,'cie','');
if isempty(Space)Space = 'rgb';
end
switch Space
case {'ycbcr','ycc'}Space = 'ycbcr';
case {'hsv','hsb'}Space = 'hsv';
case {'hsl','hsi','hls'}Space = 'hsl';
case {'rgb','yuv','yiq','ydbdr','ycbcr','jpegycbcr','xyz','lab','luv','lch'}return;
end
return;function T = gettransform(Space)
% Get a colorspace transform: either a matrix describing an affine transform,
% or a string referring to a conversion subroutine
switch Space
case 'ypbpr'T = [0.299,0.587,0.114,0;-0.1687367,-0.331264,0.5,0;0.5,-0.418688,-0.081312,0];
case 'yuv'% R'G'B' to NTSC/PAL YUVT = [0.299,0.587,0.114,0;-0.147,-0.289,0.436,0;0.615,-0.515,-0.100,0];
case 'ydbdr'% R'G'B' to SECAM YDbDrT = [0.299,0.587,0.114,0;-0.450,-0.883,1.333,0;-1.333,1.116,0.217,0];
case 'yiq'% R'G'B' in [0,1] to NTSC YIQ in [0,1];[-0.595716,0.595716];[-0.522591,0.522591];T = [0.299,0.587,0.114,0;0.595716,-0.274453,-0.321263,0;0.211456,-0.522591,0.311135,0];
case 'ycbcr'% R'G'B' (range [0,1]) to ITU-R BRT.601 (CCIR 601) Y'CbCr% Poynton, Equation 3, scaling of R'G'B to Y'PbPr conversionT = [65.481,128.553,24.966,16;-37.797,-74.203,112.0,128;112.0,-93.786,-18.214,128];
case 'jpegycbcr'T = [0.299,0.587,0.114,0;-0.168736,-0.331264,0.5,0.5;0.5,-0.418688,-0.081312,0.5]*255;
case {'rgb','xyz','hsv','hsl','lab','luv','lch'}T = Space;
otherwiseerror(['Unknown color space, ''',Space,'''.']);
end

四、运行结果

五、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 蔡利梅.MATLAB图像处理——理论、算法与实例分析[M].清华大学出版社,2020.
[2]杨丹,赵海滨,龙哲.MATLAB图像处理实例详解[M].清华大学出版社,2013.
[3]周品.MATLAB图像处理与图形用户界面设计[M].清华大学出版社,2013.
[4]刘成龙.精通MATLAB图像处理[M].清华大学出版社,2015.
[5]赵勇,方宗德,庞辉,王侃伟.基于量子粒子群优化算法的最小交叉熵多阈值图像分割[J].计算机应用研究. 2008,(04)

【图像分割】基于matlab超像素SFFCM图像分割【含Matlab源码 1374期】相关推荐

  1. 【Matlab生物电信号】生物电信号仿真【含GUI源码 684期】

    一.代码运行视频(哔哩哔哩) [Matlab生物电信号]生物电信号仿真[含GUI源码 684期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]董兵,超于毅,李 ...

  2. 【Matlab心音信号】EMD心音信号特征提取【含GUI源码 1735期】

    一.代码运行视频(哔哩哔哩) [Matlab心音信号]EMD心音信号特征提取[含GUI源码 1735期] 二.matlab版本及参考文献 1 matlab版本 2014a *2 参考文献 [1] 沈再 ...

  3. 【Matlab答题卡识别】hough变换答题卡判定与成绩统计【含GUI源码 752期】

    一.代码运行视频(哔哩哔哩) [Matlab答题卡识别]hough变换答题卡判定与成绩统计[含GUI源码 752期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [ ...

  4. 【Matlab答题卡识别】hough变换答题卡判定与成绩统计(带面板)【含GUI源码 1017期】

    一.代码运行视频(哔哩哔哩) [Matlab答题卡识别]hough变换答题卡判定与成绩统计(带面板)[含GUI源码 1017期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 ...

  5. 【Matlab语音分析】语音信号分析【含GUI源码 1718期】

    一.代码运行视频(哔哩哔哩) [Matlab语音分析]语音信号分析[含GUI源码 1718期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]韩纪庆,张磊,郑铁 ...

  6. 【Matlab验证码识别】遗传算法和最大熵优化+大津法(OTSU)+自定义阈值数字验证码识别【含GUI源码 1694期】

    一.代码运行视频(哔哩哔哩) [Matlab验证码识别]遗传算法和最大熵优化+大津法(OTSU)+自定义阈值数字验证码识别[含GUI源码 1694期] 二.matlab版本及参考文献 1 matlab ...

  7. 【Matlab人脸识别】BP神经网络人脸识别(含识别率)【含GUI源码 891期】

    一.代码运行视频(哔哩哔哩) [Matlab人脸识别]BP神经网络人脸识别(含识别率)[含GUI源码 891期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] ...

  8. 【Matlab人脸识别】形态学教室人数统计(带面板)【含GUI源码 1703期】

    一.代码运行视频(哔哩哔哩) [Matlab人脸识别]形态学教室人数统计(带面板)[含GUI源码 1703期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]孟 ...

  9. 【Matlab人脸识别】人脸实时检测与跟踪【含GUI源码 673期】

    一.代码运行视频(哔哩哔哩) [Matlab人脸识别]人脸实时检测与跟踪[含GUI源码 673期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]孟逸凡,柳益君 ...

  10. 【Matlab图像融合】小波变换遥感图像融合【含GUI源码 744期】

    一.代码运行视频(哔哩哔哩) [Matlab图像融合]小波变换遥感图像融合[含GUI源码 744期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 包子阳,余 ...

最新文章

  1. ML近三年在CVPR比较流行被应用的技术有哪些?
  2. outdated: 17.2D Texture Font
  3. token、cookie是什么
  4. PAT甲级1102 Invert a Binary Tree:[C++题解]反转二叉树、递归
  5. POJ 2286 The Rotation Game IDA*
  6. 有限元中单元节点和积分点的区别
  7. 图像的灰度级数越多越好_数字图像处理:Reducing Gray Levels, Zooming and Shrinking
  8. [MyBatisPlus]乐观锁和悲观锁
  9. xp系统的计算机管理中用户在哪里,WINDOWSXP的用户管理和系统安全设置
  10. LeetCode训练
  11. [收藏]SQL Server 索引结构及其使用
  12. 机器学习实战(8):局部加强线性回归LWLR
  13. c语言fseek128字节,C语言rewind和fseek函数的用法详解(随机读写文件)
  14. TypeScript 类
  15. XHTML 教程 续一
  16. python multiprocessing遇到Can’t pickle instancemethod问题
  17. 【OpenCV入门指南】第八篇 灰度直方图
  18. D. Bash and a Tough Math Puzzle
  19. java地铁最短距离_地铁线路最短路径(项目实现)
  20. ORACLE US7ASCII编码 读取时乱码问题

热门文章

  1. vbox NAT 设置端口映射(NAT+8080端口转发)
  2. MyBatis框架、log4j、数据库的配置文件
  3. [转]easyui常用控件及样式收藏
  4. ZOJ Problem Set - 1292 Integer Inquiry
  5. Tomcat6.0 配置外部数据源(JNDI)
  6. 七月算法机器学习4 凸优化初步
  7. AR/MR研究团队和机构
  8. unity相机的两种不模式的区别
  9. 目录 1. 管理的门槛 1 1.1. 资历作为一个年龄效应 1 1.2. 高层次知识结构的构建与提升 系统层面及战略层面的问题时 1 2. ,一类是绝对年龄效应,另一类是相对年龄效应。 1 2.1.
  10. Atitit 职位的规划与来源 1.1. 职位任命多元化 1 1.2. 上级任命 1 1.3. 自我推荐 1 1.4. 他人推荐, 1 1.5. 可以下级选举 1 1.6. 缺席任命 1 1.7.