zoukankan      html  css  js  c++  java
  • opencv随笔1


    图像处理技术一般包括图像压缩,增强和复原,匹配 描述和l识别 3 个部分。 图像处理一般指数字图像处理 ( Digitallmage Processing)。 其中,数字图像是指用工业相机、摄像机、扫描仪等设备经过拍摄得到的一个 大的二维数组。 该数组的元素称为像素,其值称为灰度值。而数字图像处理是 通过计算机对图像进行去除l噪声、增强、复原、分割、提取特征等处理的方法 和技术。
    计算机视觉 (Computer Vision) 是一门研究如何使机器"看"的科学,具体 地说,就是是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视 觉,并进一步做图形处理,用电脑处理使之成为更适合人眼观察或传送给仪器检 测的图像的-门学科。
    图像处理和计算机视觉的区别在于: 图像处理侧重于"处理"图像-一如增 强,还原,去噪,分割,等等;而计算机视觉重点在于使用计算机(也许是可移 动式的)来模拟人的视觉,因此模拟才是计算机视觉领域的最终目标。
    OpenCV (Open Source Computer Vision Library),是一个基于开源发行的 跨平台计算机视觉库,它实现了图像处理和 计算机视觉方面的很多通用算法,已 经成为了计算机视觉领域最有力的研究工具之一。
    opencv_modules.hpp存放的是 OpenCV2 中与新模块构造相关的说明代码

    OpenCV 的所有模块

    ( 1 ) 【calib3d】 -一-Ca1ibration (校准)和 3D 这两个词的组合缩写。这个模块主要是相机校准和三维重建相关的内容,包括基本的多视角几何算法、单个立 体摄像头标定、物体姿态估计、立体相似性算法、 3D 信息的重建等。
    (2) 【 contrib】 一一Contributed/Experimental Stuf的缩写。该模块包含了一些 最近添加的不太稳定的可选功能, 不用去多管。 新增了新型人脸识别、立体匹配、 人工视网膜模型等技术 。
    (3) 【core】 一一核心功能模块,包含如下内容:
    • OpenCV 基本数据结构
    · 动态数据结构
    · 绘图函数
    · 数组操作相关函数
    · 辅助功能与系统函数和宏
    . 与 OpenGL 的互操作
    (4) 【imgproc】 一 lmage 和 Process 这两个单词的缩写组合,图像处理模块。 包含如下内容:
    · 线性和l非线性的图像滤波
    . 图像的几何变换
    · 其他(Miscellaneolls) 图像转换
    . 直方图相关
    · 结构分析和形状描述
    . 运动分析和对象跟踪
    . 特征检测
    · 目标检测等内容
    ( 5) 【features2d】 一一也就是 Features2D,即 2D 功能框架,包含如下内容:
    . 特征检测和描述
    . 特征检测器 (Feature Detectors) 通用接口
    · 描述符提取器 (Descriptor Extractors) 通用接口
    . 描述符匹配器 (Descriptor Matchers )通用接口
    · 通用描述符 (Generic Descriptor) 匹配器通用接口
    . 关键点绘制函数和匹配功能绘制函数
    (6) 【flann】 一 Fast Library for Approximate Nearest Neighbors, 高维的近似, 近邻快速搜索算法库,包含以下两个部分:
    . 快速近似最近邻搜索
    . 聚类
    ( 7 ) 【gpu】 一一运用 GPU 加速的计算机视觉模块。
    ( 8) 【highgui】 一-高层 GUI 图形用户界面,包含媒体的输入输出、视频捕捉、图像和视频的编码解码、图形交互界面的接口等内容。
    (9) 【legacy】 一一 一些己经废弃的代码库, 保留下来作为向下兼容,包含如 下内容:
    · 运动分析
    · 期望最大化
    . 直方图
    · 平面细分 (CAPI)
    · 特征检测和描述 (Feature Detection and Description)
    . 描述符提取器 ( Descriptor Extactors) 的通用接口
    . 通用描述符(Generic Descriptor Matchers)的常用接口
    . 匹配器

    (10) 【 mJ】 一 Machine Learning,机器学习模块,基本上是统计模型和分类 算法,包含如下内容:
    · 统计模型 ( Statistical Models)
    · 一般贝叶斯分类器 (Normal Bayes Classifier)
    • K-近邻 (K-Nearest Neighbors)
    · 支持向量机( Support Vector Machines)
    . 决策树 (Decision Trees)
    · 提升 (Boosting)
    · 梯度提高树 (Gradient Boosted Trees)
    . 随机树 (Random Trees)
    · 超随机树( Extremely randomized trees)
    · 期望最大化 (Expectation Maximization)
    · 神经网络 (Neural Networks)
    • MLData
    (11) 【nonfree】 一一 一些具有专利的算法模块,包含特征检测和 GPU 相关的 内容。最好不要商用 。
    ( 12) 【objdetect】 一一 目标检测模块, 包含 Cascade Classification (级联分类) 和 Latent SVM 这两个部分。
    (13 ) 【ocl】 一 OpenCL-accelerated Computer Vision, 运用 OpenCL 加速的计算机视觉组件模块。
    ( 14) 【photo】 一 Computational Photography, 包含图像修复和图像去噪两部分
    ( 15 ) 【stitching】 一 images stitching,图像拼接模块,包含如下部分:
    · 拼接流水线
    · 特点寻找和匹配图像
    . 估计旋转
    · 自动校准
    . 图片歪斜·
    · 接缝估测
    . 曝光补偿
    · 图片混合
    ( 16 ) 【superres】 一 SuperResolution,超分辨率技术的相关功能模块。
    (17) 【ts】 一 OpenCV 测试相关代码,不用去管。
    ( 18) 【 video】 一一视频分析组件,该模块包括运动估计、背景分离、对象跟踪等视频处理相关内容。
    ( 19 ) 【Videostab】 一 Video stabilization,视频稳定相关的组件,官方文档中没有多做介绍,不用管它。

    视频

    读入视频有两种方法

    先实例化再初始化

    VideoCapture capture;
     capture. open("l .avi");
    

    在实例化的同时进行初始化

    VideoCapture capture("1.avi");
    

    视频读入到VideoCaptme类对象之后,紧接着可以用一个循环将每一帧显示出来,相关代码如下:
    //循环显示每一帧

    while (1) 
    {
        Mat frame; / /定义一个Mat交量,用于存储每一帧的图像
        capture>>frame; //读取当前帧
        imshow{"读取视频", frame); / /显示当前帧
        waitKey(30); //延时30ms
    }
    

    调用摄像头进行视频采集的话, 将代码VideoCapturecapture (" l.avi ");中的"l.avi"换为0就可以了,表示调用摄像头而不是从文件中读取视频






    main三种写法

    总结

  • 相关阅读:
    切换路由时中止未返回数据的请求
    elementui 走马灯图片自适应
    覆盖elementui样式
    vue+elementui搭建后台管理界面(5递归生成侧栏路由)
    vue+elementui搭建后台管理界面(4使用font-awesome)
    vue+elementui搭建后台管理界面(3侧边栏菜单)
    vue+elementui搭建后台管理界面(2首页)
    vue+elementui搭建后台管理界面(1登录)
    C排序算法
    各种语言中获取时间戳的方法
  • 原文地址:https://www.cnblogs.com/xingkongcanghai/p/11149955.html
Copyright © 2011-2022 走看看