c – 在opencv中获取两帧之间的差异
发布时间:2020-12-16 10:53:25 所属栏目:百科 来源:网络整理
导读:我试图在OpenCv中获得两个cv :: Mat帧之间的差异.所以这就是我的尝试, #includeopencv2opencv.hpp #includeopencv2calib3dcalib3d.hpp #includeopencv2corecore.hpp #include opencv2highguihighgui.hpp int main () { cv::VideoCapture cap(0); cv::
我试图在OpenCv中获得两个cv :: Mat帧之间的差异.所以这就是我的尝试,
#include<opencv2opencv.hpp> #include<opencv2calib3dcalib3d.hpp> #include<opencv2corecore.hpp> #include <opencv2highguihighgui.hpp> int main () { cv::VideoCapture cap(0); cv::Mat frame,frame1,frame2; int key=0; while(key!=27){ cap >> frame; if(key=='c'){ frame1 = frame; key = 0; } if(key =='x'){ cv::absdiff(frame,frame2); // I also tried frame2= (frame -frame1)*255; cv::imshow("difference ",frame2); key =0; } cv::imshow("stream",frame); key = cv::waitKey(10); } } 结果总是相同的0矩阵,任何想法我在这里做错了什么? 解决方法
Mat对象是指针类型.在使用frame1 = frame直接将frame1设置为frame之后,两个矩阵也显示相同的点和相同的帧.您必须使用Mat的“copyTo”方法复制帧值.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |