假设我有下面的图片,
I = [1 1 1 3 3 3 3 3
1 1 1 1 3 3 3 3
1 1 1 1 3 3 3 3
1 1 1 1 2 2 2 3
1 1 1 1 2 2 2 3
1 1 1 1 2 2 2 3
1 1 1 1 2 2 2 2];
如何在two pixels
点附近放置(4,6)
的正方形?
我能够使用公式找到顶点:
center = [4,6];
Lowerleftvertex = center - [-2, 2];
Upperrightvertex = center - [2, -2];
我不确定这是否是正确的方法。我很感激任何帮助,建议或建议。谢谢!
答案 0 :(得分:0)
您可以从顶点到顶点添加4条边(通过替换I
的值)。
在以下示例中,我将I
的边值设置为零:
I = [1 1 1 3 3 3 3 3
1 1 1 1 3 3 3 3
1 1 1 1 3 3 3 3
1 1 1 1 2 2 2 3
1 1 1 1 2 2 2 3
1 1 1 1 2 2 2 3
1 1 1 1 2 2 2 2];
center = [4, 6];
I(center(1)-2:center(1)-2, center(2)-2:center(2)+2) = 0; %Top edge.
I(center(1)+2:center(1)+2, center(2)-2:center(2)+2) = 0; %Bottom edge.
I(center(1)-2:center(1)+2, center(2)-2:center(2)-2) = 0; %Left edge.
I(center(1)-2:center(1)+2, center(2)+2:center(2)+2) = 0; %Right edge.
imagesc(I); %Display matrix I as image (zeros are blue).
答案 1 :(得分:0)
这个怎么样:
[x_length, y_length] = size(I);
center = [4, 6];
width = 2;
x_min = max((center(1) - width), 1);
x_max = min((center(1) + width), x_length);
y_min = max((center(2) - width), 1);
y_max = min((center(2) + width), y_length);
I_new = I(x_min:x_max, y_min:y_max);
这样您就可以确保不会越过I
的边界。