【发布时间】:2011-09-29 02:19:50
【问题描述】:
有人可以帮忙吗?不知道为什么会报错? ???
Assignment has more non-singleton rhs dimensions than non-singleton subscripts Error in ==> create_padded_image at 17 padded_image(padding+1:padding+image_size(1), padding+1:padding+image_size(2)) = image; Error in ==> create_padded_image at 9 padded_image = create_padded_image(image)
function padded_image = create_padded_image(image, padding)
if nargin < 2
% if no padding passed - define it.
padding = 5;
end
if nargin < 1
% let's create an image if none is given
image = imread('GreyScale.bmp');
padded_image = create_padded_image(image)
end
% what are the image dimensions?
image_size = size(image);
% allocate zero array of new padded image
padded_image = zeros(2*padding + image_size(1), 2*padding + image_size(2));
% write image into the center of padded image
padded_image(padding+1:padding+image_size(1), padding+1:padding+image_size(2)) = image;
end
【问题讨论】:
-
有人可以帮忙吗?不知道为什么会报错? ???赋值比非单子下标有更多的非单子右轴维度 ==> create_padded_image at 17 padded_image(padding+1:padding+image_size(1), padding+1:padding+image_size(2)) = image; ==> create_padded_image 在 9 padded_image = create_padded_image(image) 出现错误
-
这适用于灰度图像。从错误消息中,我怀疑您已将彩色图像作为输入。要修复它,您需要同时填充所有 3 个颜色分量。
-
我已将其更改为所有 3 个组件,之后我使用了 [imshow('picture')] 但我无法获得填充为零的显示图片..... .任何想法?>>> % 分配新填充图像的零数组 padded_image = zeros(2*padding + image_size(1), 2*padding + image_size(2), 2*padding + image_size(3)); % 将图像写入填充图像的中心 padded_image(padding+1:padding+image_size(1), padding+1:padding+image_size(2), padding+1:padding+image_size(3)) = image;
-
您可能不想在第三个(颜色)维度中填充。尝试将其更改为: padded_image = zeros(2*padding + image_size(1), 2*padding + image_size(2), 3);然后:padding_image(padding+1:padding+image_size(1), padding+1:padding+image_size(2), :) = image
-
我试过你的方法,它适用于编码,但我如何以图片形式显示结果?所以我可以检查我的图片是否是零填充的?我必须使用 [imshow('picturename')] 或 [imshow('padded_image')]。因为我无法得到它。 tks.
标签: matlab