【发布时间】:2017-03-08 04:03:20
【问题描述】:
我使用下面的代码创建了一个合成图像,该图像由一个位于方框中心的圆圈组成。
%# Create a logical image of a circle with image size specified as follows:
imageSizeY = 400;
imageSizeX = 300;
[ygv, xgv] = meshgrid(1:imageSizeY, 1:imageSizeX);
%# Next create a logical mask for the circle with specified radius and center
centerY = imageSizeY/2;
centerX = imageSizeX/2;
radius = 100;
Img = double( (ygv - centerY).^2 + (xgv - centerX).^2 <= radius.^2 );
%# change image labels from double to numeric
for ii = 1:numel(Img)
if Img(ii) == 0
Img(ii) = 2; %change label from 0 to 2
end
end
%# plot image
RI = imref2d(size(Img),[0 size(Img, 2)],[0 size(Img, 1)]);
figure, imshow(Img, RI, [], 'InitialMagnification','fit');
现在,我需要在图像上从上到下创建一个矩形遮罩(标签 == 3,行/列尺寸:1,按 imageSizeX),并与圆的边缘成已知角度(见附图)。另外,如何通过 imageSizeX 使矩形比 1 厚?作为另一种选择,我很想尝试让矩形停止在第 350 列。最后,有什么想法可以提高分辨率吗?我的意思是可以在增加/减少分辨率的同时保持图像大小相同。
我不知道该怎么做。请我需要任何我能得到的帮助/建议/建议。非常感谢!
【问题讨论】:
-
你能澄清你的目标吗?对于一些示例角度 phi,您正在寻找的正确掩码是什么?
-
谢谢@Teddy Ort。我不太明白你的意思,但我的目标是获得几张具有不同角度 phi 值的图像(比如 10、20、30、60、90、120、150 度)。然后,我将使用它来验证来自完全不同方法的结果。请让我知道是否清楚。
标签: matlab image-processing image-masking