image-processing - 如何在图像上生成概率分布
问题描述
我有一个问题如下:
假设我有一个图像(大小 = 360x640(按列排列)),并且我有一个中心坐标,即 (20, 100)。我想要的是生成一个概率分布,该分布在该中心 (20,100) 具有最高值,在邻居中具有较低的概率值,并且比中心的值低得多。
我想出的只是放置一个多元高斯(因为维度是二维的)并将平均值设置为中心(20,100)。但这是正确的吗?如何设计协方差矩阵?
谢谢!!
解决方案
您可以通过生成径向坐标和极坐标在 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) 向量旋转预定义的角度
推荐阅读
- javascript - 将字符串(作为快捷方式)转换为 Javascript 中的字节
- java - 如何转换 JSON
- azure - 使用 Azure VM 时,为什么在尝试使用 VMAccessAgent 重置管理员密码时出现“无法找到带有指纹的证书”?
- pandas - 如何选择 str.startswith 包含超过 1 个字符串值的行?
- c# - 将 Stacklayout BindableLayout.ItemTemplateSelector 绑定到 MVVM Xamarin 表单时出现 System.InvalidCastException
- laravel - 通过 Sanctum plainTextToken 检索用户
- java - 许多程序读取单个 XML Java
- azure-data-factory - Azure 数据工厂中的雪花复制组件无法默认列时间戳
- r - xtable::xtableList 修改乳胶对齐消息(多列)
- java - https 后的 Spring Boot:配置为侦听端口 8443 的 Tomcat 连接器无法启动