从视频文件中读入数据-->将数据转换为灰度图-->对图像做candy边缘检测

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

}

时间: 2025-01-23 14:08:28

从视频文件中读入数据-->将数据转换为灰度图-->对图像做candy边缘检测的相关文章

(转载)[FFmpeg]使用ffmpeg从各种视频文件中直接截取视频图片

你曾想过从一个视频文件中提取图片吗?在Linux下就可以,在这个教程中我将使用ffmpeg来从视频中获取图片. 什么是ffmpeg?What is ffmpeg? ffmpeg是一个非常有用的命令行程序,它可以用来转码媒体文件.它是领先的多媒体框架FFmpeg的一部分,其有很多功能,比如解码.编码.转码.混流.分离.转化为流.过滤以及播放几乎所有的由人和机器创建的媒体文件. 在这个框架中包含有各种工具,每一个用于完成特定的功能.例如,ffserver能够将多媒体文件转化为用于实时广播的流,ffp

[SimplePlayer] 1. 从视频文件中提取图像

在开始之前,我们需要了解视频文件的格式.视频文件的格式众多,无法三言两语就能详细分析其结构,尽管如此,ffmpeg却很好地提取了各类视频文件的共同特性,并对其进行了抽象描述. 视频文件格式,统称为container.它包含一个描述视频信息的头部,以及内含实际的音视频编码数据的packets.当然,这里的头部以及packet部分只是个抽象描述,实际的视频格式的描述信息可能不是存放在视频文件的起始位置,可能是由分散于视频文件的各个位置的多个部分组成:数据包有可能是由头部以及尾部进行分割的传统数据包形

SQLServer 从xml 文件中提取节点数据到数据库中

原文出处:http://blog.csdn.net/kk185800961/article/details/12350715  转载请注明出处 XML实例文件: <?xml version="1.0" encoding="utf-8"?> <!-- edited with XMLSpy v2010 (http://www.altova.com) by fengshuai (founder) --> <Root> <Frame

除去文件中的重复数据

1.先对文件内容排序:cat 1.txt |sort > 2.txt 保存到2.txt中 2.使用vim打开2.txt 执行替换命令: 替换空格:%s/ //g 替换tab:%s/^I//g   (注意:^I 是直接按键盘是的tab键) 替换$:  %s/^M//g (注意:^M 是按ctrl+v 再按Enter键) 3.cat 2.txt | uniq > 3.txt 本文为Eliot原创,转载请注明出处:http://blog.csdn.net/xyw_blog/article/detai

七. 从文件中加载数据

从文件中加载数据有两种方法,一种是利用内置的csv模块,一种是利用第三方模块numpy import matplotlib.pyplot as plt import csv import numpy as np # csv 方法 x = [] y = [] with open('example.txt','r') as csvfile: plots = csv.reader(csvfile, delimiter=',') for row in plots: x.append(int(row[0]

C#实现通过ffmpeg从flv视频文件中截图的方法

本文实例讲述了C#实现通过ffmpeg从flv视频文件中截图的方法.分享给大家供大家参考.具体分析如下: 需要先下载ffmpeg,这是开源的,代码如下所示: 代码如下: using System; using System.Configuration; public class PublicMethod:System.Web.UI.Page { public PublicMethod() { } //文件路径 public static string ffmpegtool = "ffmpeg/f

机器学习进阶-图像基本处理-视频的读取与处理 1.cv2.VideoCapture(视频的载入) 2.vc.isOpened(载入的视频是否可以打开) 3.vc.read(视频中一张图片的读取) 4.cv2.cvtColor(将图片转换为灰度图)

1.vc = cv2.VideoCapture('test.mp4') #进行视频的载入 2.vc.isOpened() # 判断载入的视频是否可以打开 3.ret, frame = vc.read()  #进行单张图片的读取,ret的值为True或者Flase, frame表示读入的图片 4.cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)  #表示将图片转换为灰度图 代码: import cv2 vc = cv2.VideoCapture('test.mp4')

老男孩教育每日一题-2017年4月13日-当你删除的多个文件中包含空格或其他特殊字符,请问如何做

当你删除的多个文件中包含空格或其他特殊字符,请问如何做 创建测试环境: mkdir -p  /oldboy/0413 cd   /oldboy/0413 touch oldboy" "{01..10}.log 别上来就rm -f oldboy*.log哟.

c语言实现BMP图像转换为灰度图

当初是自己要装X,非要用c来写信息隐藏作业,装了X,就得付出实践.查了好久资料,到期末才把作业交了,这里总结一下. 这道题是将真彩图转换为灰度图. 关于BMP文件结构,这是困扰了我好久的问题,上网查了很久图片的知识才弄明白 BMP文件包括以下几部分(具体结构在程序中说明): 位图文件头 位图信息头 调色板 位图数据 结构体内存对齐原则 每个成员存储的起始位置要从该成员大小的整数倍开始 成员是结构体时相对与起始偏移是其内部最大元素大小的整数倍 结构体的总大小是其内部最大成员的整数倍 因此在定义头结