【问题标题】:how to count number of color in an image in matlab如何在matlab中计算图像中的颜色数量
【发布时间】:2012-12-03 02:47:17
【问题描述】:

实际上,我是 Matlab 的新手。我对此了解不多。 如何计算图像中的颜色数量?

例如,我有一张 DNA 微阵列的图像(这是一个 RGB 图像),我想计算它有多少个黄点、红点和绿点。

【问题讨论】:

  • 是RGB还是二值图像?
  • 你的问题很难理解,特别是因为这里的大多数人不太可能有生物学背景和微阵列是什么。无论如何,在这种典型的实验中,人们不仅关心阵列上的颜色,还关心强度。您不想知道您有多少种独特的颜色(RGB 组合)吗?或者你真的只是想知道黄色、红色和绿色有多少?然后,您需要定义黄色、红色和绿色点。特别是因为“黄色”点来自绿色和红色荧光团的混合。多少才够你考虑黄色?

标签: matlab image-processing colors


【解决方案1】:

如果我是你的形象,你可以使用这个:

size(unique(reshape(I, [], 3), 'rows'), 1)

首先将图像重塑为 nx3,其中 n 代表图像中的像素数,应用独特的函数来折叠相等的行(具有相同颜色的像素),最后生成矩阵的大小将为您提供独特颜色的数量。

【讨论】:

    【解决方案2】:

    如果您有单个像素点,并且“红色”、“黄色”和“绿色”正好表示 [255 0 0]、[0 255 255] 和 [0 255 0],那么您的问题可以很简单地回答:

    red_dots = (DNA(:,:,1)==255); 
    n_red_dots = sum(red_dots(:));
    
    yellow_dots = (DNA(:,:,2)==255 & DNA(:,:,3)==255);
    n_yellow_dots = sum(yellow_dots(:));
    
    green_dots = (DNA(:,:,2)==255); 
    n_green_dots = sum(green_dots(:));
    

    如果您的颜色不是那么精确,但仍然是单像素(或者它们的大小大致相同,并且您对粗略的比例很感兴趣),您可以进行阈值处理:

    redish_dots = (DNA(:,:,1)>200 & DNA(:,:,2)<40 & DNA(:,:,3)<40);
    n_redish_dots = sum(redish_dots(:));
    

    等等……

    【讨论】:

      【解决方案3】:

      如果您使用的是 RGB,那么它也取决于它是 24 位、32 位还是 64 位。 例如对于 24 位图像,有 256*256*256 = 16,777,216 种可能的 RGB 组合。 ;)

      将颜色 R、G、B 分开会不会更容易,然后你计算每个分开的颜色 subplots ? ;)

      试试这个: 取出每个 R、G、B 通道。然后在其上做一个直方图,计算每个 R、G、B 像素。

      DNA = imread('peppers.png');
      redChannel = DNA(:, :, 1);
      greenChannel = DNA(:, :, 2);
      blueChannel = DNA(:, :, 3);
      
      For red:
      [redCount grayCount] = imhist(redPlane);
      subplot(2, 2, 2);
      imshow( DNA(:,:,2));
      >> redcount
      ans = 38385 // SAMPLE count
      

      如果您愿意,可以使用 1:3 的循环。

      【讨论】:

      • 感谢您的帮助。实际上图片是这样的。有几个黄点,红点和绿点。然后我想计算有多少红色、绿色和黄色点。例如,将有 50 个红色点、20 个黄色点、15 个绿色点。图像就像 DNA 微阵列图像..你能帮帮我吗..
      猜你喜欢
      • 2011-07-06
      • 2010-09-12
      • 2013-07-03
      • 2019-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-03
      • 2012-07-07
      相关资源
      最近更新 更多