Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image 在matlab中创建一个由9个白色小圆圈组成的大黑色正方形的图像_Image_Matlab_Geometry - Fatal编程技术网

Image 在matlab中创建一个由9个白色小圆圈组成的大黑色正方形的图像

Image 在matlab中创建一个由9个白色小圆圈组成的大黑色正方形的图像,image,matlab,geometry,Image,Matlab,Geometry,我希望在Matlab中创建一个大黑色矩形的图像,其中有9个小圆,排列成一个3x3阵列,在矩形的中心对齐,即中心圆的中点位于正方形的中心 我需要这些圆均匀地隔开,每个圆之间以及外圆和矩形边界之间有一定的距离(想象一下一张正方形的纸,纸上用钢笔戳了9个孔)。我需要这个,这样我就可以看到图像卷积使用二维高斯将如何扭曲这个图像 然而,我对Matlab比较陌生,一直在尝试创建这个图像。我已经成功地制作了一个黑色/白色正方形和一个黑色正方形中的白色圆圈,它占据了正方形本身的大部分,但我似乎无法在黑色正方形中

我希望在Matlab中创建一个大黑色矩形的图像,其中有9个小圆,排列成一个3x3阵列,在矩形的中心对齐,即中心圆的中点位于正方形的中心

我需要这些圆均匀地隔开,每个圆之间以及外圆和矩形边界之间有一定的距离(想象一下一张正方形的纸,纸上用钢笔戳了9个孔)。我需要这个,这样我就可以看到图像卷积使用二维高斯将如何扭曲这个图像

然而,我对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) 
X=one([100,1])*([-50:49]);
Y=([-50:49])*(一([1100]);
Z=(X.^2)+(Y.^2);
图像=零([100]);

图像(查找(Z如果我理解正确,请尝试以下操作:

% 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)

嘿,你知道段落是什么以及它们的作用是什么吗?阅读你写的东西都很困难……如果你包括一个插图,甚至是一个用油漆或其他东西手工绘制的插图,也会很有帮助。请提供更多关于你尝试过的内容以及你的具体问题所在的详细信息。对于这些段落,我很抱歉这是我用来创建一个大圆圈的黑色正方形:>>X=one([100,1])*([-50:49]);>>Y=([-50:49])*(one([1100]);>>Z=(X.^2)+(Y.^2);>>image=zero([100 100]);>>image(find)(Z>imshow(image)我厌倦了增加最终图像数组的大小(image=zero([200]))但这会导致更多的圆圈被挤压到正方形的左侧。我有点了解它在做什么,因为发现了