【问题标题】:Fuzzy C Means for tumor segmentation using Matlab使用 Matlab 进行肿瘤分割的模糊 C 均值
【发布时间】:2012-03-19 16:28:11
【问题描述】:

我有一个分段的肝脏。我需要分割其中的肿瘤。我使用了 FCM 方法。这是一个 3 级 FCM 阈值。当我将它应用于图像时,我需要单独对肿瘤区域(比其余部分更暗的区域)进行分割。但我得到了相反的结果。肿瘤周围的所有区域都被分割。请帮帮我。该程序有两个文件,testfcmthresh.m和一个函数fcmthresh.m

输入“分段肝脏(使用区域生长)”和 FCM 输出图像:

from here

我尝试补充使用imcomplement() 获得的图像但我得到的整个背景也是白色的,因为背景本来是黑暗的。请帮帮我。

function [bw,level]=fcmthresh(IM,sw)
%FCMTHRESH Thresholding by 3-class fuzzy c-means clustering
%  [bw,level]=fcmthresh(IM,sw) outputs the binary image bw and threshold level of
%  image IM using a 3-class fuzzy c-means clustering. It often works better
%  than Otsu's methold which outputs larger or smaller threshold on
%  fluorescence images.
%  sw is 0 or 1, a switch of cut-off position.
%  sw=0, cut between the small and middle class
%  sw=1, cut between the middle and large class
%
%  Contributed by Guanglei Xiong (xgl99@mails.tsinghua.edu.cn)
%  at Tsinghua University, Beijing, China.

% check the parameters
if (nargin<1)
    error('You must provide an image.');
elseif (nargin==1)
    sw=0;
elseif (sw~=0 && sw~=1)
    error('sw must be 0 or 1.');
end

data=reshape(IM,[],1);
[center,member]=fcm(data,3);
[center,cidx]=sort(center);
member=member';
member=member(:,cidx);
[maxmember,label]=max(member,[],2);
if sw==0
    level=(max(data(label==1))+min(data(label==2)))/2;
else
    level=(max(data(label==2))+min(data(label==3)))/2;
end
bw=im2bw(IM,level);

%testfcmthresh.m

clear;clc;
im=imread('mliver3.jpg');
fim=mat2gray(im);
level=graythresh(fim);
bwfim=im2bw(fim,0.1);
[bwfim0,level0]=fcmthresh(fim,0);
[bwfim1,level1]=fcmthresh(fim,1);
subplot(2,2,1);
imshow(fim);title('Original');
subplot(2,2,2);
imshow(bwfim);title(sprintf('Otsu,level=%f',level));
subplot(2,2,3);
imshow(bwfim0);title(sprintf('FCM0,level=%f',level0));
subplot(2,2,4);
imshow(bwfim1);title(sprintf('FCM1,level=%f',level1));
% imwrite(bwfim1,'fliver6.jpg');

【问题讨论】:

  • 我们能有肿瘤和肝脏的照片吗?
  • 我是新用户。所以我不能在这里发布图片。如果你给我你的身份证,我会把它寄给那个。提前致谢。附言我的项目正在使用 Matlab
  • 将它们上传到某处并将链接放在问题中。我将在其中编辑图像。
  • 我已经编辑了我的问题(添加了图片的链接)。会有2张图片。输入的“分段肝脏图像”和最终的“fcm 输出”图像。请检查一下。
  • 反转/反转图像怎么样?

标签: matlab image-processing


【解决方案1】:

Ghaul 在我之前的问题'Extracting image region within boundary' 中已经告诉了我问题的答案。如果有人需要参考,请通过Ghaul的cmets。谢谢。

【讨论】:

    猜你喜欢
    • 2017-08-28
    • 2020-10-11
    • 2020-03-07
    • 2018-09-24
    • 2021-11-01
    • 1970-01-01
    • 2012-12-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多