1

需要在图像上选择指定数量的点(实际上是在该图像的一部分上)。图像的较暗部分更重要。

最简单的方法是随机选择它们。但是,即使放弃使用过的点,通常也会因为一些点过于靠近其他点而结束,尤其是在考虑权重时。

也许在选择点后应该动态减少权重?没试过。

我注意到原始图像有太多不同的颜色,所以我想平滑它以切断相似的颜色。然而,转换为灰度是不够的。
我使用Emgu CV(OpenCV 包装器)函数对图像进行二值化。比我试图计算流域但计算出的区域并不那么容易分开。一般来说,分水岭是一种非常“不直观”的方法来检测较暗的地方。

简单地说:我想在图像上从较暗的部分开始标记点 - 应该比较亮的部分更频繁地标记。点应该分散在一组相似的颜色上,以避免在附近的地方堆积。

该算法不必是准确的。它可以在下一次迭代中给出不同的结果。从 10 到 150-200 的点数不会很大。

如何计算从较暗区域开始散布在图像上的指定点数?

为了形象化我的意思,请看下面的图片。它包含选定的点(数量。~20)。大多数较暗的部分被选中。下一次迭代后,这些点不必出现在相同的位置。但我想要的是在较轻的区域选择点,因为它们的数量会更高。

当然,对于不同的图像,跳出黑暗所需的点数会有所不同。

点选后的图片

4

1 回答 1

0

如果我正确理解您的问题,您需要图像上的点列表。该列表必须包含来自黑色区域的几个点和来自白色区域的几个点。

一种简单的方法 - 遍历每个像素。将当前像素的值存储在变量's'中,然后:

if(s < 64) // Darker
    if(rand() % 5 == 1)
        // Add to list
else      // White
    if(rand() % 25 == 1)
        // Add to list
于 2010-11-22T06:47:35.643 回答