我想在MATLAB中生成多重高斯圖像。圖像包含三個圓圈。每個圓圈的強度遵循高斯分佈。完全,圖像的直方圖將是一個muliplicate高斯分佈直方圖預期如何在MATLAB中生成多重二維高斯圖像分佈
這是我的代碼。但是,它沒有達到我預期的直方圖。你能幫我產生了直方圖上圖
rows=256; columns=256;
grayImage=zeros(rows,columns);
t = linspace(0,2*pi,50); % approximated by 100 lines
r = (rows-10)/2; % circles will be separated by a 10 pixels border
circle1 = poly2mask(r*cos(t)+rows/2+0.5, r*sin(t)+columns/2+0.5, rows, columns);
r = (rows-10)/3;
circle2 = poly2mask(r*cos(t)+rows/2+0.5, r*sin(t)+columns/2+0.5, rows, columns);
r = (rows-10)/5;
circle3 = poly2mask(r*cos(t)+rows/2+0.5, r*sin(t)+columns/2+0.5, rows, columns);
grayImage(circle1) =30;
grayImage(circle2) =100;
grayImage(circle3) =130;
im_normal=double(grayImage)./max(grayImage(:));
v = var(im_normal(:));
im_noise= imnoise(im_normal,'gaussian',0,v/20);
subplot(131);imshow(grayImage,[]); title('Free-noise image');
subplot(132);imshow(im_noise);title('Noisy image');
subplot(133);imhist(uint8(255.*im_noise)); title('Hist. of noisy mage');
這是我上面的代碼圖像的圖像。感謝所有
謝謝你的幫助。實際上,第一個問題是我沒有使用circle1對圖像進行多重處理(因爲我只考慮circle1內部的強度,因此如果我將它多重化,背景將變爲零)。作爲我的方法,是否可以製作高斯噪聲而不乘以高斯噪聲?這意味着強度仍然遵循高斯,但圖像不會嘈雜圖像 – Jame
@ user8430是的,我想你可以,但它是非常模糊的。有無數的方法來做到這一點,你需要進一步限制問題 –
我找到了方法/ matlab代碼來做到這一點。但我沒有找到。你能以某種方式向我建議或直接回答你的答案嗎?謝謝 – Jame