【问题标题】:getting a good sample of pixels from an image从图像中获取良好的像素样本
【发布时间】:2010-02-07 04:37:53
【问题描述】:

假设我有一张大图像,其中大约 90% 的绿色像素、9% 的蓝色像素和 1% 的棕色像素。我想从大约 2000,000 像素的整个图像中获取只有 100 个像素的样本。

我不希望样本包含相对于它们在原始图像中的频率的像素,而是应该具有相同数量的绿色、蓝色和棕色像素。

我在每种颜色之后都使用 -ish,因为像素具有不同的值,如果我知道每个图像的颜色,这也很容易做到,每个图像都有不同的颜色组,所以我需要想出一个通用的方法这样做并不取决于我指定图像的颜色。

【问题讨论】:

  • 原始图像上的像素是否随机分布?例如,您的图像是否有 900 000 个绿色像素,然后是 90 000 个蓝色像素,最后 10 行有 10 000 个褐色像素。换句话说,如果您的图像是 1000 像素宽,那么 10 000 个褐色图像是否都在底部,填充最后十行?
  • 哦,等等...如果在一百万像素中有一个独特的红色像素,您是否希望该红色像素出现在您的样本中?
  • “样本”是指 10x10 的相邻像素块吗?
  • 了解所需的样本类型:它必须为每个颜色类别(红色、棕色...)提供偶数个代表无论这些类别的代表的相对总数如何。然而,这个问题是模棱两可的:您是在尝试找到一种采样方法来应用于未见过的图像,还是尝试为您之前分析过的图像生成这样的样本。
  • wizardofodds :像素是随机分布的,对于你的第二个问题,我应该提到我必须从图像中传递我想要的组数,所以对于这张图像,我会说 3,它应该忽略唯一的红色像素,只给我三种最重的颜色。 mikewyatt:我必须将此样本传递给一个时间密集型聚类算法,因此我可以运行的最大值是 50x50 相邻像素的图像块。这就是为什么我试图从更大的图像中获得一个好的样本,以便我可以在较小的样本上运行数据聚类并获得好的样本

标签: image sampling


【解决方案1】:

2 兆像素是 8MB,每像素 32 位。

您可以将二维像素数组视为一维数字列表并对其进行排序。

然后从排序列表中取出每个第 n 个像素。

【讨论】:

    猜你喜欢
    • 2019-07-27
    • 2013-07-21
    • 1970-01-01
    • 2016-01-22
    • 1970-01-01
    • 2014-12-06
    • 2011-05-08
    • 2011-09-25
    • 1970-01-01
    相关资源
    最近更新 更多