我正在寻找一种在EmguCV中执行逐像素求和和减法的优雅方法。
我正在尝试计算图像的哈尔特征。对于一维情况,通过将向量[x x x x x x x x x x]与以下元素向量相乘来完成:
[ 1 -1 1 -1 1 -1 1 -1]
[ 1 1 -1 -1 1 1 -1 -1]
[ 1 1 1 1 -1 -1 -1 -1]
所以我需要添加或减去图像的元素像素。
,
Bgr sum = new Bgr();
sum = sum + img[0,0] - img[0,1] + img[0,2] - img[0,3];
显然这不会编译,因为类Bgr中没有操作符"+"。我必须通过指定每个B, G, R值来创建一个新的Bgr,这很难看。
关于执行优雅的像素操作有什么想法吗?
之前线程
如果您首先翻转要减去的像素的符号,则可能使用img.GetSum()
。您可以通过将图像元素与在适当位置由1
和-1
组成的矩阵相乘来做到这一点。