1

我是 matlab 的新手,我想对我的图像设置阈值。我想找到紫色细胞的饱和度,以区分哪一个是癌症,因为癌症有特定的饱和度 ,但我不知道该怎么做。这是我的代码。它永远不会进入 if 部分!在这些代码中,我使用红色通道,但我想这是错误的!此外,分割部分已经完成,紫色单元格被分割。我唯一需要的是一个好的门槛。请指导我..谢谢这里是代码:

imshow(segmented_images{2})
hsvImage = rgb2hsv(segmented_images{2});
%%segmented_images{2} is a segmented image
Rchannel = hsvImage(:,:,1);
Rchannel=int8(Rchannel);

if Rchannel > 2736*3765

 message = sprintf('it is a cancer image');
    reply = questdlg(message, 'Continue with Demo?', 'OK','cancel', 'OK');
    if strcmpi(reply, 'cancel')
        % User canceled so exit.
        return;
    end
end

 [1]: http://i.stack.imgur.com/jn2X9.jpg

在此处输入图像描述

4

2 回答 2

0

使用自动计算的二进制阈值会很棘手。如果可能,请使用颜色信息。光靠强度信息可能是不够的。

以下是一些需要考虑的选项:

  1. 在不同的色彩空间中工作。RGB 通常不像 HSI 那样有用的色彩空间。如果您转换为 HSI,然后为图像中的所有像素绘制 H 与 S 或 H 与 I 的图,您应该能够发现紫色癌症与周围组织颜色之间的差异。在灰度图像中执行此操作要困难得多。
  2. 不要对图像进行二值化,而是考虑使用分水岭算法。这会将图像分割成不仅仅是一个前景和一个背景。或者,比这更好...
  3. 尝试均值偏移聚类,这可能非常适合这个问题。均值偏移会在相邻的、颜色相似的区域中找到斑点,即使它们具有奇怪的形状。

http://www.cs.cityu.edu.hk/~wzhao2/mean_shift.htm

http://www.mathworks.com/matlabcentral/fileexchange/10161-mean-shift-clustering

于 2012-09-21T02:04:36.680 回答
0

不是真正的编程问题。这样的阈值完全取决于您正在处理的数据和应用程序。这是您需要从对数据的统计和经验分析中得出的结论。这里没有人能给你这个。

于 2012-09-01T13:42:46.223 回答