【发布时间】:2011-05-12 14:04:58
【问题描述】:
需要在图像上选择指定数量的点(实际上是在该图像的一部分上)。图像的较暗部分更重要。
最简单的方法是随机选择它们。但是,即使放弃使用过的点,通常也会因为某些点过于靠近其他点而结束,尤其是在考虑权重时。
也许在选择点后应该动态减少权重?没试过。
我注意到原始图像有太多不同的颜色,所以我想对其进行平滑处理以切断相似的颜色。然而,转换为灰度是不够的。
我使用Emgu CV(OpenCV 包装器)函数对图像进行二值化。比我试图计算流域但计算出的区域并不那么容易分开。一般来说,分水岭是一种非常“不直观”的方法来检测较暗的地方。
简单地说:我想在图像上从较暗的部分开始标记点 - 这些部分应该比较亮的部分更频繁地标记。点应分散在一组相似的颜色上,以免在附近堆积。
算法不一定要准确。它可以在下一次迭代中给出不同的结果。从 10 到 150-200 的点数不会很大。
如何计算从较暗区域开始散布在图像上的指定点数?
要形象化我的意思,请参见下图。它包含选定的点(数量。~20)。大多数较暗的部分被选中。下一次迭代后,这些点不必出现在相同的位置。但我想要的是当它们的数量会更高时选择较轻区域上的点。
当然,对于不同的图像,跳出黑暗所需的点数会有所不同。
【问题讨论】:
-
您的问题中缺少一些关键部分。您在均匀/随机和“权重较高的较暗部分”之间存在矛盾。你需要清除它。黑暗区域应该“值”多少。白场中的单个黑点是“暗区”吗?关于减少与选择随机点的颜色数量有关的讨论是什么?
-
我对我的意思做了一些澄清。
-
您能否展示一个示例输入文件以及预期的结果?
标签: c# image-processing opencv emgucv