• 从视频文件中读入数据-->将数据转换为灰度图-->对图像做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;
    
    
    }

  • 相关阅读:
    .NET面试题系列[2]
    .NET面试题系列[1]
    被淡忘的c#析构函数
    关于Spring IOC容器解释
    工作随笔记 点击除div自身之外的地方,关闭自己
    js获得控件位置
    PHP如何判断对象为空的方法分享
    PHP 网页调用本地exe程序实例
    PHP jQuery实现上传图片时预览图片的功能实例
    Yii 自带的分页实例
  • 原文地址:https://www.cnblogs.com/beihaidao/p/4870131.html
Copyright © 2020-2023  润新知