【问题标题】:check an image pixel by pixel for specific rgb values in matlab在 matlab 中逐个像素检查图像的特定 rgb 值
【发布时间】:2012-06-06 12:00:44
【问题描述】:

我想从 MATLAB 的文件夹中读取 RGB 图像(.jpg),扫描图像的每个像素并检查它是否具有特定颜色(例如,如果它是紫罗兰色:R 128,G 0, B 255)并计算有多少像素具有这种特定的颜色。

你有什么想法吗?

【问题讨论】:

  • 这是作业吗?如果是这样,请将其重新标记为作业。
  • 不,这不是家庭作业。是个人项目的一部分
  • @user1439660:您可以转换为不同的色彩空间来选择您的颜色,而不是在 RGB 中进行颜色比较。像这样的东西:How can I convert an RGB image to grayscale but keep one color?

标签: image matlab matrix pixel


【解决方案1】:

假设图片被加载到名为A的变量中:

 pixelMask =  A(:,:,1) == 128 & A(:,:,2) == 0 & A(:,:,3) == 255;
 count = nnz(pixelMask);

另一种方法是使用bxsfun 和单例扩展:

 pixel = cat(3,128,0,255);
 S = all(bsxfun(@eq, A, pixel), 3);
 count = nnz(S);

【讨论】:

  • 在第二种解决方案中,您可以改为:S = all(bsxfun(@eq, A, pixel), 3);
猜你喜欢
  • 2016-06-21
  • 2014-04-24
  • 2018-08-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多