Как сгенерировать распределение вероятностей на изображении - PullRequest
0 голосов
/ 28 января 2019

У меня такой вопрос:

Предположим, у меня есть изображение (размер = 360x640 (строка за столбцом)), и у меня есть центральная координата, которая называется (20, 100).Я хочу создать распределение вероятностей, которое имеет самое высокое значение в этом центре (20 100), и более низкое значение вероятности у соседа и намного более низкое значение, чем в центре.

Все, что я выясняю, этопоместите многомерный гауссов (так как размерность 2D) и установите среднее значение к центру (20 100).Но правильно ли это, и как мне создать ковариационную матрицу?

Спасибо !!

1 Ответ

0 голосов
/ 28 января 2019

Вы можете сделать это в 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)

, где scale - это параметр, который превращает его из единичного гауссова в некоторую единицуприменимо к вашей проблеме.U(0,1) является равномерным по [0 ... 1) случайному значению.

Ссылка: Выборка Бокса-Мюллера .

Если вы хотите использовать универсальный 2D гауссов, то есть эллипсв 2D, вам придется использовать разные шкалы для X и Y, и повернуть (x, y) вектор на заранее определенный угол, используя хорошо известную матрицу вращения

...