【发布时间】:2012-12-04 15:56:49
【问题描述】:
我正在开发一个图像处理应用程序,我遇到的问题是我想从给定窗口生成一个随机子窗口。例如,给定一个 5x5(像素)的窗口,我想在 x,y 的给定位置生成一个具有给定宽度和高度的子窗口。目前,可以假设子窗口的宽度和高度总是彼此相等。然而,原来的窗口没有这个限制。
目前,我只是为我知道适合原始窗口的子窗口生成随机宽度/高度。然后我生成一个有效的 x,y 坐标,允许该子窗口适合原始窗口。当前方法的问题在于它不尊重较小的窗口更丰富,因此更有可能发生的事实。通过为子窗口宽度/高度选择随机尺寸,我假设它们在宽度和高度方面的分布是均匀的,而实际上并非如此。
例如,假设我们有一个 5x5 的窗口。有 25 个可能的 1x1 子窗口、16 个可能的 2x2 窗口、9 个可能的 3x3 窗口、4 个可能的 4x4 窗口和 1 个可能的 5x5 窗口。因此,我应该选择概率约为 0.45(25/(25+16+9+4+1) 的 1x1 窗口,概率约为 0.29 的 2x2 窗口等)。
我不确定如何从正确的分布中快速生成此类允许的子窗口,而无需暴力评估所有可能的窗口,然后简单地从列表中选择一个,但我相当确定有一种更聪明的方法来做到这一点,我只是不知道从哪里开始。
谢谢!
【问题讨论】:
标签: algorithm random probability