一开始代码如下
p=imread('lv.jpg');
q=imread('new.png');
[m,n]=size(p); %这里
q=imresize(q,[m,n]);
p=imadd(1/2*p,1/2*q);
imshow(p,[]);
出现如下错误说是矩阵大小不一样
一查m,n,n的大小扩大了3倍
一直不明白为什么会这样后来查了查
结论:
由此可以看到size函数默认是输出三通道每一道的大小同[m,n,r]=size(p),但是[m,n]=size(p)中n会返回三通道的和,所以代码修改如下
p=imread('lv.jpg');
q=imread('new.png');
[m,n,r]=size(p);
q=imresize(q,[m,n]);
p=imadd(1/2*p,1/2*q);
imshow(p,[]);
效果出现了