首页 > 解决方案 > 如何在图像上生成概率分布

问题描述

我有一个问题如下:

假设我有一个图像(大小 = 360x640(按列排列)),并且我有一个中心坐标,即 (20, 100)。我想要的是生成一个概率分布,该分布在该中心 (20,100) 具有最高值,在邻居中具有较低的概率值,并且比中心的值低得多。

我想出的只是放置一个多元高斯(因为维度是二维的)并将平均值设置为中心(20,100)。但这是正确的吗?如何设计协方差矩阵?

谢谢!!

标签: image-processingprobabilitygaussian

解决方案


您可以通过生成径向坐标和极坐标在 2D 中执行此操作

沿线:

Pi = 3.1415926
cx = 20
cy = 100

r = sqrt( -2*log(1-U(0,1)) )
a = 2*Pi*U(0,1)

x = scale*r*cos(a)
y = scale*r*sin(a)

return (x + cx, y + cy)

wherescale是一个参数,可以将其从无单位高斯转换为适用于您的问题的某个单位。U(0,1)在 [0...1) 随机值中是均匀的。

参考:Box-Muller 抽样

如果您想要通用 2D 高斯,即 2D 中的椭圆,那么您必须对 X 和 Y 使用不同的比例,并使用众所周知的旋转矩阵将 (x,y) 向量旋转预定义的角度


推荐阅读