OpenCV笔记1

所用头文件

#include <opencv2/opencv.hpp>
#include <iostream>
#include <fstream>
  1. 显示图片

    void DrawImage() {
        string filepath = "/home/yang/Datasets/lfpw/testset/Path_Images.txt";
        ifstream fin;
        fin.open(filepath.c_str()); //string类型转为字符串类型
        string name;
        while (getline(fin, name)) {
            name.erase(0, name.find_first_not_of("  "));
            name.erase(name.find_last_not_of("  "));
            cv::Mat image = cv::imread(name, 1);//读取图片
            cv::Mat img_gray;
            cvtColor(image, img_gray, CV_BGR2GRAY);
            cv::imshow("result", image);//显示
            cv::waitKey(0);
        }
        fin.close();
    }
  2. 播放视频

    void ShowAVI() {
        string filepath = "768x576.avi";
        CvCapture* capture = 0;
        IplImage* iplImg;
        cv::Mat frame, frameCopy;
        capture = cvCaptureFromAVI(filepath.c_str());
        if (!capture)
            cout << "Capture from AVI didn‘t work" << endl;
        while (1) {
            iplImg = cvQueryFrame(capture);
            frame = iplImg;
            if (frame.empty())
                break;
            cv::imshow("result", frame);
            if (cv::waitKey(33) >= 0)//按任意键推出waitKey返回所按键盘的ASCII码
                goto _cleanup_;
        }
        cv::waitKey(0);
        _cleanup_: cvReleaseCapture(&capture);
    }
  3. 视频播放控制
时间: 2024-10-18 15:48:34

OpenCV笔记1的相关文章

【OpenCV笔记】使用VS2012和OpenCV2.4.9搭建配置OpenCV开发环境

使用MS Visual C++来创建OpenCV工程,由于不同的VS版本在配置时有所差别,现特把配置过程总结下来,以方便自己和其他朋友使用. 1.软件准备 安装Visual Studio2012和OpenCV2.4.9 这里就不再对软件的安装和环境变量的设置进行说明了,其他类似的文章的设置都大抵相似,本文重点介绍一下VS2012环境的配置. 2.配置VS2012环境 (1)新建工程 你可以创建简单的控制台应用或者拥有图形用户界面的复杂应用,此处我们选择最简单常用的控制台应用. 理解解决方案(So

OpenCV笔记(十二)—自定义线性滤波器

在<OpenCV笔记(七)>中,写了四种线性滤波的方法:箱式滤波器.高斯滤波器.中值滤波器和双边滤波器. 在OpenCV中,我们可以使用filter2D函数自定义kernel进行线性滤波. void filter2D(InputArray src, OutputArray dst, int ddepth, InputArray kernel, Point anchor=Point(-1, -1), double delta=0, int borderType=BORDER_DEFAULT) 参

OpenCV笔记大集锦(转载)

整理了我所了解的有关OpenCV的学习笔记.原理分析.使用例程等相关的博文.排序不分先后,随机整理的.如果有好的资源,也欢迎介绍和分享. 1:OpenCV学习笔记 作者:CSDN数量:55篇博文网址:http://blog.csdn.NET/column/details/opencv-manual.html 2:部分OpenCV的函数解读和原理解读 作者:梦想腾飞数量:20篇博文网址:http://blog.csdn.Net/xidianzhimeng/article/category/1593

OpenCV笔记(十八)——使用霍夫变换检测圆圈

这些笔记的最初,我是以接近于源码分析的形式来梳理自己学习OpenCV的过程. 然而写下来,一是执行力,二是时间的问题,确实越写越马虎了.用我老师的话:观其大略了. 但是,暂时就这么写着吧. 在笔记<十七>中,我们简单地谈到了霍夫变换检测直线的原理,就是判断相邻像素点的值(x, y)对应的r-theta曲线是否能够相交,如果有足够多的相邻的像素点的曲线相交,我们就认为这些相邻的像素点构成一条直线. 圆圈亦然,只是把直线的方程替换成了圆的方程.除了极坐标的r,多了两个变量:Xcenter和Ycen

OpenCV基本架构[OpenCV 笔记0]

最近正在系统学习OpenCV,将不定期发布笔记,主要按照毛星云的<OpenCV3编程入门>的顺序学习,会参考官方教程和文档.学习工具是Xcode+CMake,会对书中一部分内容更正,并加入cmakelist的内容. 书中大部分内容来自OpenCV文档,其实比较推荐官方文档和教程 OpenCV2.4.13: http://docs.opencv.org/2.4/index.html OpenCV安装路径下的include文件夹包含opencv和opencv2两个文件夹.opencv文件夹包含Op

OpenCV笔记(十五)——使用Laplace算子进行图像的边缘检测

在笔记十四中,我们使用了Sobel算子对图像进行边缘检测,理论依据是像素变化最快的地方最有可能是边缘处,所以使用sobel算子对图像做微分,得到的结果图像当中灰度较大的区域,即为边缘处. 在这里,我们使用Laplace算子来做边缘检测,也是类似的道理,只不过换成了二阶微分,在一阶微分的极大值的地方,二阶微分为零.我们以二阶微分为零的区域作为边缘.当然了一阶微分极小值的地方,即图像变化很慢很慢的地方,二阶微分也可能为零.所以我们还需要进行额外的滤波. 在理论上是这样,但是在实现上,OpenCV使用

查找并绘制轮廓[OpenCV 笔记XX]

好久没有更新了,原谅自己放了个假最近又在赶进度,所以...更新的内容是很靠后的第八章,因为最近工作要用就先跳了,后面会更新笔记编号...加油加油! 在二值图像中寻找轮廓 void cv::findContours ( InputOutputArray image, OutputArrayOfArrays contours, OutputArray hierarchy, int mode, int method, Point offset = Point() ) image: 输入图像,需为8位单

输出图像到文件 imwrite()[OpenCV 笔记7]

bool imwrite(const string& filename, InputArray img, const vector<int>& params=vector<int>()); filename 待写入的文件名.保存图像的格式由扩展名决定. img 一般为一个Mat类型的图像 params 特定格式保存的参数编码: JPEG:params表示0到100的图片质量(CV_IMWRITE_JPEG_QUALITY),默认值为95: PNG:params表示压

Opencv 笔记 opencv tutorial 2.1节 mat

前言:opencv中,mat类型非常基础和重要.以下是opencv tutorial 2.1章节的中英文整理. Mat 简介 IplImage c 结构 需要管理内存 mat是c++中的类class 自动内存分配 Mat  包括: header A pointer to the matrix containing the pixel values  (can take dimentionlity 根据存储方法) 头大小不变  矩阵大小变 复制数据的速度由矩阵大小决定 将图像传给函数是常见做法 图