matlab中函数sum的问题?

I=double(imread(img_name))/255;
mI=double(imread(scribs_img_name))/255;
consts_map=sum(abs(I-mI),3)>0.001;
其中I,mI均为3维数组,consts_map为一维数组,为何经过sum后,3维的(I-mI)变为了一维的consts_map???

第1个回答  2011-11-01
最开头的两句话是读入图像,如果是彩色图,那l和ml就是三维的,如果是灰度图,那这两个就是二维的。
第三句是求二者的差的绝对值的和,二维的求和后会变成一维,如[2 3;4 5]求和后变成[6 8],缺省情况是按列求和,你的程序是按第三维求和。
MATLAB是基于矩阵的,而C和Java什么的是基于数值的,所以你可能一时不太理解。追问

请问我输入了彩色图像,那么将abs(I-mI)按第三维求和是否意味着将某像素点的RGB值如(10,20,30)相加,最后得到的二维数组在该像素点的值为60?

追答

是的。

本回答被提问者采纳
第2个回答  2011-11-01
不好意思 完全看不懂!!
第3个回答  2011-11-01
假如a是2维,那么:
b=sum(a)
b就是1维
相似回答