我得到了一个特殊的图像,现在我需要为图像创建边框。我已经确定我的黑色和白色边框的宽度应该是每个25像素。我的代码如下:
%% Reading the Image in
imdata = imread('image1.png');
%%Creating a new matrix for image3
e_imdata = zeros(300,356);
% First Rectangle of white
for l = 25:331
for m = 25:50
e_imdata(m,l) = 255;
end
end
%% Second Rectangle of White
for l = 25:331
for m = 250:275
e_imdata(m,l) = 255;
end
end
%% Third Rectangle of White
for l = 25:50
for m = 50:250
e_imdata(m,l) = 255;
end
end
%% Fourth Rectangle of White
for l = 306:331
for m = 50:250
e_imdata(m,l) = 255;
end
end
%% Copying the Actual Image in
for l = 51:305
for m = 51:199
e_imdata(m,l) = imdata(m-50,l-50);
end
end
%% Final imsow
imshow(e_imdata);
我正在尝试逐个添加每个白色矩形边框。这肯定是成功的,但我的最终形象并没有按照我想要的方式出现。
原始图片:
我需要创建此图片:
我似乎得到了这张照片:
非常感谢所有帮助和建议!
答案 0 :(得分:1)
问题是imshow()没有将灰度颜色缩放到适当的范围。而是指定最小和最大灰度值:
imshow(e_imdata, [0 255]);
或者,将数据转换为uint8
imshow(uint8(e_imdata));
您的代码中的另一个问题是您没有完全复制图像,这就是您仍然看到一些黑色背景的原因。最后一个循环应该使用以下索引:
%% Copying the Actual Image in
for l = 51:306
for m = 51:250
e_imdata(m,l) = (imdata(m-50,l-50));
end
end