加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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”方法复制帧值.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读