24小时热门版块排行榜    

查看: 2991  |  回复: 4

流之源

铁虫 (初入文坛)

[求助] opencv中cvAbsDiff函数怎么用

#include
#include
#include
#include "iostream"
using namespace std;
using namespace cv;
void main()
{
        VideoCapture a(0);
        Mat pre;
        a>>pre;
        Mat preg=Mat::zeros(pre.size(),CV_8UC1);
        cvtColor(pre,preg,CV_RGB2GRAY);
        while((waitKey(20))!=27)
        {
                Mat nex;
                a>>nex;
                Mat nexg=Mat::zeros(pre.size(),CV_8UC1);
                cvtColor(nex,nexg,CV_RGB2GRAY);
               
                Mat diff=Mat::zeros(pre.size(),CV_8UC1);
                cvAbsDiff(&preg,&nexg,&diff);
                imshow("pp",diff);
        }

}

cvAbsDiff运行出错:: 想算两幅从摄像头取出的图片做差分,没想到出错了
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

chentianyu1

木虫 (小有名气)

【答案】应助回帖

★ ★
感谢参与,应助指数 +1
流之源: 金币+2, ★★★★★最佳答案, 太感谢你啦,刚学opencv,感觉很吃力啊 2012-06-01 15:18:36
cvAbsDiff是旧式的C函数,应该与IplImage以及CvMat配套使用。
你用的VideoCapture、Mat都是新的C++类,应该用相应的absdiff函数。
参见OpenCV文档:http://opencv.itseez.com/modules ... hlight=absdiff#void absdiff(InputArray src1, InputArray src2, OutputArray dst)
p.s.所有小写cv开头的函数都是旧式的C函数。
2楼2012-06-01 14:21:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

kk_2010

木虫 (正式写手)

3楼2012-06-01 21:37:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

spbau

铜虫 (小有名气)

#include "stdafx.h"
#include "cv.h"
#include "highgui.h"

int main()
{
    IplImage* src1= cvLoadImage("src1.bmp",1);
    IplImage* src2= cvLoadImage("src2.bmp",1);
   
    cvNamedWindow("AbsDiff",1);

    IplImage* dst= cvCreateImage(cvGetSize(src),8,3);
   
    cvAbsDiff(src1,src2,dst);

    cvShowImage("AbsDiff",dst);

    cvWaitKey(0);

    cvReleaseImage(&src1);
    cvReleaseImage(&src2);
    cvReleaseImage(&dst);
    cvDestroyAllWindows();
    return 0;
}

没运行,大体就是这样。
建议找本OpenCV的书看看,打打底子,一定要先知晓基本概念。呵呵共同努力。
4楼2012-06-02 23:09:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

鑫牛

新虫 (初入文坛)

引用回帖:
4楼: Originally posted by spbau at 2012-06-02 23:09:16
#include "stdafx.h"
#include "cv.h"
#include "highgui.h"

int main()
{
    IplImage* src1= cvLoadImage("src1.bmp",1);
    IplImage* src2= cvLoadImage("src2.bmp",1);
   
    cvNamedWindow("A ...

这个程序运行到帧差函数时候就出错了
5楼2014-12-06 21:34:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 流之源 的主题更新
信息提示
请填处理意见