zoukankan      html  css  js  c++  java
  • 从视频文件中读入数据-->将数据转换为灰度图-->对图像做canny边缘检测

    //从视频文件中读入数据-->将数据转换为灰度图-->对图像做candy边缘检测
    //作者:sandy
    //时间:2015-10-10
    #include <cv.h>
    #include <highgui.h>
    int main(int argc, char *argv[]){
        //预备工作
        CvCapture* capture=cvCreateFileCapture("E:\Videos\xx.avi");//让capture变量指向视频文件
        if(!capture) return -1;//检查函数是否成功
        //读视频
        //方法一:用cvGrab(攫取)Frame()将视频复制到内存空间,
        //再用cvRetrieve(检索)Frame()来处理读入的数据
        //方法二:用cvQueryFrame()来代替方法一种的两个函数
    
        //申明变量
        IplImage *vd_frame;//用来存放彩色的视频
        IplImage *gray_frame;//用来存放灰度图
        IplImage *canny_frame;//canny边缘检测后的图
    
        //声明窗口
        cvNamedWindow("video",0);
        cvNamedWindow("gray",0);
        cvNamedWindow("canny",0);
    
        //变量初始化
        vd_frame = cvQueryFrame(capture);
        gray_frame = cvCreateImage(cvGetSize(vd_frame),IPL_DEPTH_8U,1);
        canny_frame = cvCreateImage(cvGetSize(vd_frame),IPL_DEPTH_8U,1);
    
        while(1){
            //不同图像格式的转换函数cvConvertImage(const CvArr* src(源),CvArr dst(目标), int flag=0)
            //canny边缘检测函数cvCanny(const CvArr * image,CvArr *edges,double 阈值一,double 阈值二,int 算子内核大小)
            //小阈值用来控制边缘链接,大阈值用来控制边缘的初始分割。
            cvConvertImage(vd_frame,gray_frame,0);//flag=1则会得到倒立的图像
            cvCanny(vd_frame,canny_frame,10,50,3);//阈值一,小一点可以扣更多边缘。。阈值二越大扣的越少
    
            //显示
            cvShowImage("video",vd_frame);
            cvShowImage("gray",gray_frame);
            cvShowImage("canny",canny_frame);
    
            char c=cvWaitKey(28);
            if(c==27) break;
    
            vd_frame = cvQueryFrame(capture);
        }
    
        //查询和设置视频的各种属性
    
        //释放CvCapture结构
        cvReleaseCapture(&capture);
    
        cvDestroyAllWindows();
    
        return 0;
    
    
    }

  • 相关阅读:
    【HDOJ6687】Rikka with Stable Marriage(Trie树,贪心)
    【CF1244D】Paint the Tree(树形DP,树)
    【HDOJ6681】Rikka with Cake(扫描线,线段树)
    CPU亲和力
    iostat、vmstat和mpstat命令
    sar命令介绍
    Linux网络调试工具
    svn使用入门
    深入探究C/C++基本数据类型
    core文件与gdb调试
  • 原文地址:https://www.cnblogs.com/beihaidao/p/4870131.html
Copyright © 2011-2022 走看看