У меня есть серое изображение, разделенное на патчи, мне нужно выбирать пиксели из каждого патча случайным образом и равномерно, поэтому метод выбора должен быть одинаковым для всех патчей. выбор однородного пикселя имеет решающее значение для мой проект, поскольку мне нужно будет найти разницу в интенсивности между каждыми двумя пикселями. вот код, который я стараюсь, но это не дает нужного результата, как только 8 пикселей выбирается, когда размер заплаты [90 X 100]выбор пикселей случайным образом и равномерно
I = imread('0001hv1.bmp');
Rpix = zeros(size(I));
[m n] = size(I);
for i = 2:m-1
for j = 2:n-1
switch randi(8,1,1)
case 1
rpix1 = I(i-1,j-1);
case 2
rpix2 = I(i-1,j);
case 3
rpix3 = I(i-1,j+1);
case 4
rpix4 = I(i,j-1);
case 5
rpix5 = I(i,j+1); %skip i,j as that is the pixel itself
case 6
rpix6 = I(i+1,j-1);
case 7
rpix7 = I(i+1,j);
case 8
rpix8 = I(i+1,j+1);
end
%rpix(i,j) = rpix ;
end
end
im_sub1 = rpix1 - rpix2;
im_sub2 = rpix3 - rpix4;
im_sub3 = rpix5 - rpix6;
im_sub4 = rpix7- rpix8;
Я читал о гауссовском распределении, где идея предложена является: «X и Y случайным образом дискретизируются с использованием распределения Гаусса, где сначала X отбирается со стандартным отклонением 0,04 * S^2, а затем Yi выбираются с использованием распределения Гаусса. Каждый Yi отбирается со средним Xi и стандартным отклонением 0,01 * S^2 «.
подходит ли он для моего кода и как его реализовать? спасибо
Вы знаете этот алгоритм для эквидистантного случайного распределения? http://bl.ocks.org/mbostock/dbb02448b0f93e4c82c3 – nowox
Вы не сохраняете ни одного из'rpix1,2, .., 8' в цикле, поэтому вы получаете только значения «8» из последнего цикла. – Rashid
Ваша идея правильная, Гаусс не то, что вы хотите, но, похоже, у вас есть проблема с реализацией. Как отметил Камтал, что это такое с rpix1..rpix8? Разве они не должны быть отделены от процесса рандомизации? – ypnos