【发布时间】:2020-08-03 18:38:45
【问题描述】:
我正在尝试为作业的皮肤分割实现贝叶斯分类器,但我在计数时遇到了一些问题。
问题是我正在关注的论文说我需要 RGB 直方图或某种地图 种类的结构:
map(R,G,B) -> 图像中出现的次数
到目前为止,我已尝试找到满足此要求的地图结构或可以更轻松地完成此计数的某些功能或方法(我仍然希望某处有一个功能可以使我免于遍历所有图像)。
理想情况下,我需要它快速,因为我需要对数据集中的一堆图像的计数求和。
欢迎提出任何想法。
【问题讨论】:
-
我认为没有原生的 3D 直方图功能。最高的是bivariate。您可以将 RGB 值映射到 1D,然后对 1D 参数进行直方图。示例:using the "exponentiation trick" to convert RGB to grayscale.
-
另外,虽然我觉得你的问题很有趣,但我不认为这是一个编程问题。 (例如,询问如何将 RGB 映射到灰度将是重复的。)因此我认为它不属于 SO。也许是图像处理 SE 网站。
-
使用循环:
i = 1:256val = sum(img(:) == i/256) end`,你就有了灰度图像特定强度的计数。这同样适用于 RGB 图像,但多一维,因此需要更多时间。也许循环unique颜色可能会加快进程 -
@Argyll 我想计算某个 RGB 像素的出现次数,而不是将其映射到灰度
标签: matlab image-processing colors histogram