找到具有良好阈值的饱和度

时间:2012-09-01 03:38:24

标签: image-processing matlab

我是matlab的新手,我想在我的图像上设置阈值。I want find the saturation of purple cells in order to distinguish that which one is a cancer one, because the cancer on have specific saturation 但我不知道该怎么做。这是我的代码。它永远不会去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

enter image description here

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

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

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

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