嘿我试图在MATLAB中为图像添加彩色边框,但我无法理解为什么这不起作用:
clear, close all, clc
A = imread('syd.jpg')
[m n o] = size(A)
border_width = 25;
border = zeros(m+(border_width*2),n+(border_width*2),3);
c = [randi(255) randi(255) randi(255)];
border(:,:,1) = c(1);
border(:,:,2) = c(2);
border(:,:,3) = c(3);
for i = 1 : m
for j = 1 : n
border(m+border_width,n+border_width,:) = A(m,n,:);
end
end
imshow(uint8(border));
我得到的只是一块彩色图像,也许我只是错过了一些小的东西,我做错了什么?
答案 0 :(得分:2)
在for
- 循环中,您使用m
和n
编制索引,而不是i
和j
。变量m
和n
是常量,这意味着您只需在代码中设置一个像素的值。
试试这个:
for i = 1 : m
for j = 1 : n
border(i+border_width,j+border_width,:) = (A(i,j,:));
end
end