0
cvAbsDiff(imaggray, imaggray1, imaggray2);
CvScalar sumDiff = cvSum (imaggray2);
ar1[0] =   (long int) sumDiff.val[0] + (long int) sumDiff.val[1] + (long int) sumDiff.val[2];

这是 C++ 代码,其中ar1是一个long int数组。图像的绝对差异imaggrayimaggray1存储在imaggray2.

在蟒蛇中:

cv.AbsDiff(imaggray, imaggray1, imaggray2)

我在将第二行和第三行转换为 python 时遇到了麻烦。

我该怎么做?

4

1 回答 1

0

正如 Abid 评论的那样,我会使用 cv2 而不是 cv 模块。由于 cv2 基于 c++ 接口,因此假设您可以进行 OOP,您可以使用更少的代码行开发脚本。使用 cv2 的另一个优点是 python 语句大多类似于它的 c++ 语句

drawing2 = cv2.absdiff(drawing,drawing0)
sc = cv2.sumElems(drawing2)
ar = sc[0] + sc[1] + sc[2]

更多细节在这里

于 2013-07-07T23:13:41.317 回答