关于cvAdsDiffS的那些事

时间:2023-03-09 15:39:07
关于cvAdsDiffS的那些事

cvAbsDiffS
计算数组元素与数量之间差的绝对值

void cvAbsDiffS( const CvArr* src, CvArr* dst, CvScalar value );

#define cvAbs(src, dst) cvAbsDiffS(src, dst, cvScalarAll(0))

src
原数组.
dst
输出数组
value
数量.
函数 cvAbsDiffS 计算数组元素与数量之间差的绝对值

dst(I)c = abs(src(I)c - valuec).

所有数组必须有相同的数据类型相同的大小(或ROI大小)

代码:

// cvAdsDiffs函数的使用.cpp : 定义控制台应用程序的入口点。
// #include "stdafx.h"
#include "opencv2/opencv.hpp" int _tmain(int argc, _TCHAR* argv[])
{
//创建两个窗口
cvNamedWindow("src");
cvNamedWindow("dst");
//加载图片
IplImage* src;
src= cvLoadImage("F://Opencv_picture//a.jpg");
//创建dst
IplImage* dst;
dst= cvCreateImage(cvGetSize(src), src->depth, src->nChannels); //使用cvAbsDiffS
cvAbsDiffS(src, dst,cvScalar(255, 255, 255)); cvShowImage("src", src);
cvShowImage("dst", dst); cvWaitKey(0); //释放和销毁
cvReleaseImage(&src);
cvReleaseImage(&dst);
cvDestroyWindow("dst");
cvDestroyWindow("src"); return 0;
}

结果图:

关于cvAdsDiffS的那些事

PS: 《学习opencv》(中文版)上的cvAbsDiffS的参数顺序写错了和dst前没有写CvArr* ......