人工智能
文章平均质量分 78
godadream
这个作者很懒,什么都没留下…
展开
-
OpenCV初体验
OpenCV提供了一些实用工具来读取从视频流到摄像机画面的各种各样的图像格式,这些工具都是HighGUI的一部分。下面几个小例子可以让初学者提前体验一下OpenCV的功能。1. 打开一张图像并且将其显示在屏幕上#include "stdafx.h"#include <opencv2/opencv.hpp>int main( int argc, char** argv ...原创 2018-08-10 17:40:02 · 602 阅读 · 0 评论 -
OpenCV的滤波与卷积
目录预备知识滤波、核和卷积边界外推和边界处理阈值化操作Otsu算法自适应阈值平滑简单模糊和方框型滤波器中值滤波器高斯滤波器双边滤波器导数和梯度索贝尔导数Scharr滤波器拉普拉斯变换图像形态学膨胀和腐蚀通用形态学函数开操作和闭操作形态学梯度顶帽和黑帽自定义核用任意线性滤波器做卷积用cv::filter2...原创 2018-08-23 10:47:20 · 4790 阅读 · 0 评论 -
OpenCV鼠标事件和滑动条事件
鼠标事件① 鼠标事件是通过传统的回调函数机制来完成。void your_mouse_callback(int event, int x, int y, int flags, void* param)其中,第一个参数要指明事件,第二个和第三个参数是鼠标事件的位置,第四个参数是标志位,第五个参数是一个void类型的指针,可用于传递额外的信息。鼠标事件类型 事件 数值 含义...原创 2018-08-21 11:15:16 · 1845 阅读 · 0 评论 -
OpenCV常见的图像变换
拉伸、收缩、扭曲和旋转最简单的图像变换是调整图像大小,使其变大或变小。但实际操作时要比想象的复杂一些,因为调整大小带来了像素如何插值(放大)或合并(减少)的问题。均匀调整cv::resize()void cv::resize(InputArray src, OutputArray dst, Size dsize, double fx=0, double fy=0, int inte...原创 2018-08-24 19:47:41 · 6782 阅读 · 0 评论 -
OpenCV可移植图形工具HighGUI实现图像和视频操作
OpenCV把用于操作系统、文件系统以及摄像机等硬件设备交换的函数纳入了HighGUI(High-level Graphical User Interface)模块中。有了HighGUI模块,我们可以方便地打开窗口、显示图像、读出或写入图像相关的文件、鼠标事件和键盘事件。下面将对三部分分别进行介绍。HighGUI三部分的作用 部分 作用 硬件部分 最主要是对摄像机的操作 ...原创 2018-08-20 20:56:22 · 709 阅读 · 0 评论 -
OpenCV中的函数子
随着OpenCV的发展,封装了越来越多的功能,而往往这些功能不是一个函数就能完成的,实现为一组函数又会导致整个库的函数变得杂乱无章,因此常常使用一个新的对象类型来实现这个新功能。通过重载operator()来生成对象或函数子。下面主要讲述了三个新类型cv::PCA、cv::SVD和cv::RNG。cv::PCA主成分分析是一种降维的方法,主要是通过分析多维分布从中提取出带有最多信息量的维度...原创 2018-08-20 11:08:06 · 1934 阅读 · 0 评论 -
OpenCV绘图和注释
OpenCV的绘图函数可以在任意深度的图像上工作,但在大多数情况下,它们只对图像的前三个通道有影响BGR,如果是单通道图像,则默认只影响第一个通道。大多数绘图函数都支持操作对象的颜色、宽度、线型和亚像素对齐等参数。艺术线条画直线或者其他图形的函数通常可以接受宽度(thickness)和线型(lineType)的参数。这两个参数都是整型的,lineType参数只能是4、8或cv::LINE_...原创 2018-08-19 20:00:37 · 1014 阅读 · 0 评论 -
OpenCV矩阵操作
矩阵类的成员函数可以进行很多基本的矩阵操作,在之前已经介绍过。除此之外,也有很多操作被表示为“友元”函数,它们的输入为矩阵类型,或者输出为矩阵类型,或者输入输出同为矩阵类型。下面将对这些函数及其参数进行详细介绍。目录cv::abs()和cv::absdiffcv::add()cv::addWeighted()cv::bitwise_and()cv::bitwise_not(...原创 2018-08-18 18:00:46 · 7506 阅读 · 0 评论 -
OpenCV的数据结构——大型数组类型
OpenCV中的数据类型可分为三类,而前两类(基础数据类型和辅助对象)在前面已进行详细讲述,下面将对最后一种——大型数组类型进行讲解。大型数据类型中最重要的当属cv::Mat,这可谓是OpenCV的核心,所有主要函数几乎都和其相关。cv::Mat类用于表示任意维度的稠密数组。所谓“稠密”表示该数组的所有部分都有一个值存储,即使这个值为0。而和其相对的就是稀疏数组cv::SparseMat,稀疏...原创 2018-08-16 14:54:50 · 1086 阅读 · 0 评论 -
OpenCV的工具函数
OpenCV3也提供了一些经常用于计算机视觉的实用功能,列举如下:功能 描述 cv::alignPtr() Align pointer to given number of bytes 对齐指针到指定字节数 cv::alignSize() Align buffer size to given number of bytes 将缓...原创 2018-08-15 11:31:54 · 1422 阅读 · 0 评论 -
OpenCV的数据类型——辅助对象
在上一篇文章中,主要介绍了OpenCV的基础数据类型。接下来在本篇文章中将主要对OpenCV的辅助对象进行介绍。cv::TermCriteria类在很多算法中都存在着循环嵌套,只有满足终止条件时才会退出。通常情况下,终止条件的形式要么是达到允许的有限迭代次数(COUNT或MAX_ITER),要么是某种形式的误差参数(如果接近如此程度,就退出循环,称为EPS,即epsilon的简称)。cv:...原创 2018-08-15 11:06:33 · 260 阅读 · 0 评论 -
OpenCV图像金字塔
图像金字塔是图像多尺度表达的一种,是一种以多分辨率来解释图像的有效但概念简单的结构。一幅图像的金字塔是一系列以金字塔形状排列的分辨率逐步降低,且来源于同一张原始图的图像集合。其通过梯次向下采样获得,直到达到某个终止条件才停止采样。我们将一层一层的图像比喻成金字塔,层级越高,则图像越小,分辨率越低。如下图所示。常用的图像金字塔有高斯金字塔(Gaussian pyramid)和拉普拉斯金字塔(...原创 2018-08-12 19:34:46 · 2200 阅读 · 0 评论 -
OpenCV的数据类型——基础数据类型
OpenCV有很多数据类型,从组织结构的角度来看,OpenCV的基础类型类型主要分为三类。第一类是直接从C++原语中继承的基础数据类型;第二类是辅助对象;第三类是大型数据类型。本文主要介绍OpenCV的基础数据类型。目录Point类Scalar类Size类Rect类RotatedRect类固定矩阵类固定向量类复数类Point类cv::Point类是两到三...原创 2018-08-14 21:35:57 · 5718 阅读 · 0 评论 -
OpenCV高斯滤波GaussianBlur
图像处理中,常用的滤波算法有均值滤波、中值滤波以及高斯滤波等。三种滤波器的对比 滤波器种类 基本原理 特点 均值滤波 使用模板内所有像素的平均值代替模板中心像素灰度值 易收到噪声的干扰,不能完全消除噪声,只能相对减弱噪声 中值滤波 计算模板内所有像素中的中值,并用所计算出来的中值体改模板中心像素的灰度值 对噪声不是那么敏感,能够较好的消除椒盐噪声,...原创 2018-08-10 20:57:10 · 104227 阅读 · 11 评论