这个问题找了很久,使用关键词”IplImage 累加 相加 灰度值 和”google了好久都没找到,后来还在opencv群里问了也没人回应。
回应的都是我自己知道的最原始的办法,使用两重循环累加各个灰度值,最后求和。
今天终于在无意中发现,opencv是有这样的函数的——cvSum!
下面讲解这个函数:
CvScalar cvSum( const CvArr* arr );
所以IplImage* img需要先转化成CvArr*数组,应该可以直接放入吧,待验证。
注意返回的结果是CvScalar,关于CvScalar结构说明如下:
CvScalar s = cvSum(arr);
s.val[0]:数组arr中的B通道值的和,double类型
s.val[1]:数组arr中的G通道值的和,double类型
s.val[2]:数组arr中的R通道值的和,double类型
s.val[3]:数组arr中的alphe通道值的和,double类型
例子:
CvScalar sca = cvSum(arr);
double x = sca.val[0];
参考:
http://www.opencv.org.cn/forum/viewtopic.php?f=1&t=2529&p=28845#p28844