0

我得到了一个特定的图像,现在我需要为图像创建边框。我已经决定我的黑白边框的宽度都应该是 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);

我正在尝试一一添加每个白色矩形边界。这当然是成功的,但我的最终形象并没有按照我想要的方式出现。

原图:

在此处输入图像描述

我需要创建这个图像:

在此处输入图像描述

我似乎得到了这张图片:

在此处输入图像描述

非常感谢所有帮助和建议!

4

1 回答 1

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
于 2015-11-27T21:55:07.270 回答