我将灰度图像划分为补丁,我需要随机均匀地从每个补丁中选择像素,因此所有补丁的选择方法应该相同。 均匀像素选择在我的项目中至关重要,因为我需要找到每两个像素之间的强度差异。 这是我尝试的代码,但它没有提供所需的结果,因为只有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.“
它适合我的代码案例,我该如何实现它? 谢谢
答案 0 :(得分:1)
我要做的是用随机值填充1x8矩阵,然后将它们用作索引。然后需要将索引映射到实数x,y值。小心首先使用一维索引。因为你在中心有一个洞,如果你使用随机的x,y值,均匀性会成为一个问题。