【发布时间】:2015-01-13 15:16:38
【问题描述】:
Image1=imread('depthmp.png');
[row1,column1]=size(Image1);
B = imresize(Image1, [375 150]);
[row3,column3]=size(B);
subplot(2, 2, 1);
imshow(Image1);
mask = zeros(row3, column3, 'uint8');
mask(30:300, 5:150) = 255;
subplot(2, 2, 2);
imshow(mask);
subplot(2,2,3);
C=imadd(mask,Image1);
imshow(C);
这是我屏蔽一部分图像的代码。但出现错误。错误如下 “使用 imadd 时出错(第 69 行) X 和 Y 必须具有相同的大小 并且 class 或 Y 必须是标量 双倍的。” 请问谁能解决这个问题???
【问题讨论】:
-
mask(200:300,200:300)=255;行不清楚。您将mask放大到 300 列。该错误表明mask和Image1的大小不同-您使用了resize,然后再次更改mask的大小...也许您的意思不是写我提到,并写C=imadd(mask,B); -
我已经删除了那行。我的目标是获取图像的一部分。图像的剩余部分必须是黑色的。
-
试试
C=mask.*B;请注意,mask的尺寸为B,而不是Image1。另外,请注意,要获得原始图像的一部分,您需要将蒙版相乘,而不是相加。 -
感谢您提供的信息。我尝试检查蒙版和 Image1 的大小。两者都相同。现在错误类似于“使用错误。* 矩阵尺寸必须一致。”我可能去了哪里错了??
-
B、mask、Image1的尺寸是多少?C=mask.*Image1有效吗?