24小时热门版块排行榜    

查看: 763  |  回复: 3

jgj030106

银虫 (正式写手)

[求助] matlab中实现c-means聚合分类算法 已有2人参与

如何在matlab中实现c-means聚合分类算法,最好给个源代码,必有重谢

发自小木虫Android客户端
回复此楼
谋定而后动
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wrfei01

银虫 (小有名气)

【答案】应助回帖

★ ★ ★ ★ ★
jgj030106: 金币+5, 有帮助 2017-01-11 08:06:39
CodeForge的这个代码或许可以解答你的问题:http://www.codeforge.cn/article/289338
2楼2017-01-09 21:37:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

chenfeixue

新虫 (初入文坛)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
jgj030106: 金币+10, ★★★很有帮助 2017-01-11 08:07:17
%%%%%%%%%%%%%%% FCM算法分割图像 %%%%%%%%%%%%%%
%matlab
function clusterResult = FCM(imagePath, C, V, M, iter, epsm)
% 模糊C均值(FCM)聚类算法分割图像
% clusterResult = FCM(imagePath, C, V, M, iter, epsm)
% Example: clusterResult =  FCM('E:\Image\lena.bmp')
%          clusterResult =  FCM('E:\Image\lena.bmp',3,[0 127 255])
% Input:
%      imagePath: 图像路径
%      C: 类别数,缺省值为2
%      V: 初始化聚类中心,缺省值为[0 255]
%      M: 加权指数,缺省值为2
%      iter: 迭代次数,缺省值为100
%      epsm: 迭代停止阈值,缺省值为1.0e-2
% Output:
%      clusterResult: 聚类中心结果
% Note:
%      C的值要与V的初始化聚类中心个数相同

% 设定缺省值
I= imread('1024.bmp');
if nargin < 6
    epsm = 1.0e-2;
end

if nargin < 5
    iter = 100;
end

if nargin < 4
    M = 2;
end

if nargin < 3
    [x,y,z]=impixel(I);
   
    V(1)=z(1);
    V(2)=z(2);
    V(3)=z(3);
end

if nargin < 2
    C = 3;
end

% 读入图像及其信息

figure, imshow(I);
title('原图像');
[row col] = size(I);
grayHist = imhist(I);
% figure, imhist(I);
% title('直方图');
histProb = grayHist / (row * col);
len = length(histProb);

% tic
% FCM迭代过程
cnt = 0;
while(cnt < iter)
   
   
% 计算隶属度函数(注意要特殊考虑某个像素点和聚类中心一样的情况)
    for i = 1 : len
        flag = 0;
        for j = 1 : C
            if i == V(j)
                U(j, i) = 1.0;
                if j == 1
                    U(j + 1 : C, i) = 0.0;
                elseif j == 3
                    U(1 : C - 1, i) = 0.0;
                elseif j == 2
                    U(1 : j - 1, i) = 0.0;
                    U(j + 1 : C, i) = 0.0;
                end
                flag = 1;
                break;
            end
        end
      
        if flag == 0
            u = (1.0 ./ ((i - V) .^ 2)) .^ (1.0 / (M - 1));
            uSum = sum(u);
            U(1 : C, i) = u' / uSum;
        end
    end   
% 计算更新各类聚类中心
    for j = 1 : C
        i = linspace(1, len, len);
        v = sum(histProb' .* i .* (U(j, .^ M));
        vSum = sum(histProb' .* (U(j, .^ M));
        if vSum == 0
            clusterResult(j) = 0;
        else
            clusterResult(j) = v / vSum;
        end
    end
% 计算误差并判断算法迭代是否停止
    diff = sum((clusterResult - V) .^ 2);
    if diff <= epsm
        break;
    else
        V = clusterResult;
    end
    cnt = cnt + 1;
end
% toc

% 分割图像
for i = 1 : row
    for j = 1 : col
        temp = (double(I(i, j)) - clusterResult) .^ 2;
        [fmin pos] = min(temp);
        I(i, j) = pos * 255 / C;
    end
end
figure, imshow(uint8(I));
title('分类后的图像');
imshow(uint8(I),'Colormap',hsv(255));
%disp('迭代次数:iterTimes = ');
disp(cnt);
% end of FCM.m
3楼2017-01-11 01:03:01
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

15686007389

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by wrfei01 at 2017-01-09 21:37:50
CodeForge的这个代码或许可以解答你的问题:http://www.codeforge.cn/article/289338

这个是Java的

发自小木虫Android客户端
4楼2017-01-15 19:10:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 jgj030106 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 关于filecode,很负责任的告诉大家 +6 爱看书的可乐 2026-08-08 7/350 2026-08-08 22:13 by a_niu
[考博] 【2027博士申请】纳米药物递送方向 20+3 13586093586 2026-08-03 5/250 2026-08-08 21:54 by 13586093586
[基金申请] 关于豆爷回答的JTJC与%2F数量 +5 yang182083 2026-08-06 7/350 2026-08-08 18:29 by zhanghaozhu
[基金申请] 好奇怪的filecode +3 布布和一二 2026-08-08 4/200 2026-08-08 17:46 by zhanghaozhu
[基金申请] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +3 qTvzQBRAHjCi 2026-08-07 4/200 2026-08-08 17:22 by oEVWOejN9taj
[硕博家园] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +3 qTvzQBRAHjCi 2026-08-07 4/200 2026-08-08 17:19 by oEVWOejN9taj
[基金申请] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +3 Vi50GxzrFcSG 2026-08-07 5/250 2026-08-08 16:27 by oEVWOejN9taj
[基金申请] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +3 Vi50GxzrFcSG 2026-08-07 4/200 2026-08-08 16:19 by oEVWOejN9taj
[公派出国] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +3 Vi50GxzrFcSG 2026-08-07 5/250 2026-08-08 15:59 by oEVWOejN9taj
[论文投稿] 售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急 +3 WQyTGMbfH7Cx 2026-08-07 4/200 2026-08-08 15:02 by oEVWOejN9taj
[公派出国] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 +3 HEQlVqMTIA7d 2026-08-07 6/300 2026-08-08 14:39 by oEVWOejN9taj
[教师之家] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +4 HEQlVqMTIA7d 2026-08-07 5/250 2026-08-08 14:27 by oEVWOejN9taj
[教师之家] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +3 KXLV3nuBVBY7 2026-08-07 5/250 2026-08-08 14:07 by oEVWOejN9taj
[硕博家园] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +3 Vi50GxzrFcSG 2026-08-07 6/300 2026-08-08 10:19 by 3OOjAIS77qg2
[基金申请] 基金中了 +14 laoda193707 2026-08-06 14/700 2026-08-08 00:23 by 实验小白ha
[基金申请] 关于filecode +4 布布和一二 2026-08-07 7/350 2026-08-07 22:55 by zhanghaozhu
[基金申请] 娱乐 +6 Tide man 2026-08-03 6/300 2026-08-07 22:40 by 铁帽子农民
[基金申请] filecode +14 等待解的谜 2026-08-06 19/950 2026-08-07 12:20 by wlwhappy
[基金申请] filecode +8 布布和一二 2026-08-06 11/550 2026-08-06 20:41 by tangpu318
[基金申请] 影响面上的因素 +8 布布和一二 2026-08-05 11/550 2026-08-06 10:41 by 宝贝虫子
信息提示
请填处理意见