我將灰度圖像分成小塊,我需要隨機均勻地選擇每個小塊的像素,因此所有小塊的選擇方法應該是相同的。 均勻像素選擇對於我的項目,因爲我需要找出每兩個像素之間的強度差異。 這裏是我嘗試的代碼,但由於只有8像素的模式,其中補丁大小爲[90×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 *秒2「。
它適合我的代碼案例,我該如何實現它? 謝謝
你知道這個算法等距隨機分佈嗎? http://bl.ocks.org/mbostock/dbb02448b0f93e4c82c3 – nowox 2014-11-02 10:16:28
您不會在循環中保存'rpix1,2,..,8'中的任何一個,因此您只能從最後一個循環獲取'8'值。 – Rashid 2014-11-02 10:17:09
你的想法是正確的,高斯不是你想要的,但似乎你有一個實現問題。正如Kamtal所說,rpix1..rpix8是什麼?它們不應該與隨機化過程分離嗎? – ypnos 2014-11-02 10:19:28