0

長方形の中心に配置された3x3配列として配置された9つの小さな円を持つ大きな黒い長方形のMatlabで画像を作成しようとしています。つまり、中央の円は正方形の中心に中点があります。

各円の間、および外側の円と長方形の境界線の間にある程度の距離を置いて、円を等間隔に配置する必要があります (ペンで刺して 9 つの穴が配置された正方形の紙を考えてください)。2Dガウスを使用した画像の畳み込みがこの画像をどのように歪めるかを確認できるように、これが必要です。

ただし、私はMatlabに比較的慣れていないため、このイメージを作成しようとしています。黒/白の正方形と、正方形自体の大部分を占める黒い正方形の中に白い円を作成することに成功しましたが、黒い正方形の任意の場所に小さな白い円を作成できないようです。特定のアライメント。


これは、大きな円のある黒い四角形を作成するために使用したものです。

X = ones([100,1])*([-50:49]);
Y = ([-50:49]')*(ones([1,100]));
Z = (X.^2)+(Y.^2);
image = zeros([100 100]);
image(find(Z<=50^2)) = 1;
imshow(image) 
4

1 に答える 1

1

正しく理解できたら、これを試してください:

% size of each small box. Final image will be 3Nx3N
N = 100;

% create a circle mask
t = linspace(0,2*pi,50);   % approximated by 100 lines
r = (N-10)/2;              % circles will be separated by a 10 pixels border
circle = poly2mask(r*cos(t)+N/2+0.5, r*sin(t)+N/2+0.5, N, N);

% replicate to build image
img = repmat(circle, 3,3);
subplot(121), imshow(img)

% after applying Gaussian filter
h = fspecial('gaussian', [15 15], 2.5);
img2 = imfilter(im2double(img), h);
subplot(122), imshow(img2)

画像

于 2013-09-13T02:35:51.427 に答える