
opencv3编程入门
文章平均质量分 89
关关雎鸠儿
学而不思则罔,思而不学则die
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
pycharm中导入cv2后无智能提示解决方案
我的是这样,啥也不用改,重启pycharm就行了原创 2020-03-11 19:20:58 · 2016 阅读 · 2 评论 -
python 用pip正确安装cv2的方法
就一句话:pip install opencv-python原创 2019-11-29 21:28:00 · 7468 阅读 · 1 评论 -
opencv(22) 线性滤波核心API函数+线性滤波综合实例
本文为毛星云《OpenCV3编程入门》学习记录。方框滤波:boxFilter函数boxFilter的函数作用是使用方框滤波(boxfilter)来模糊一张图片,由src输入,dst输出。函数原型如下。C++:void boxFiLter(InputArray src,OutputArray dst,int ddepth,Size ksize,Point anchor=Point(-1...原创 2019-11-19 19:52:52 · 255 阅读 · 1 评论 -
opencv(21):线性滤波:方框滤波、均值滤波、高斯滤波
1. 平滑处理平滑处理(smoothing)也称模糊处理(bluring),是一种简单且使用频率很高的图像处理方法。平滑处理的用途有很多,最常见的是用来减少图像上的噪点或者失真。在涉及到降低图像分辨率时,平滑处理是非常好用的方法。2. 图像滤波与滤波器图像滤波,指在尽量保留图像细节特征的条件下对目标图像的噪声进行抑制,是图像预处理中不可缺少的操作,其处理效果的好坏将直接影响到后续图像处理和分...原创 2019-11-19 16:57:16 · 473 阅读 · 0 评论 -
opencv(20):输入输出XML和YAML文件
1. XML和YAML文件简介本节我们将一起认识XML和、YAML这两种文件类型。所谓XML,即eXtensibleMarkupLanguage,翻译成中文为“可扩展标识语言”。首先,XML是一种元标记语言。所谓“元标记”,就是开发者可以根据自身需要定义自己的标记,比如可以定义标记<book>、<name>。任何满足XML命名规则的名称都可以标记,这就向不同的应用程序打...原创 2019-11-18 21:36:20 · 304 阅读 · 0 评论 -
opencv(19) 离散傅里叶变换
离散傅里叶变换(Discrete Founer Transform,缩写为DFT),是指傅里叶变换在时域和频域上都呈现离散的形式,将时域信号的采样变换为在离散时间傅里叶变换(DTFT)频域的采样。在形式上,变换两端(时域和频域上)的序列是有限长的,而实际上这两组序列都应当被认为是离散周期信号的主值序列。即使对有限长的离散信号做DFT,也应当对其经过周期延拓成为周期信号再进行变换。在实际应用中,通常...原创 2019-11-18 19:22:42 · 322 阅读 · 0 评论 -
opencv(18) 图像对比度、亮度值调整
1. 理论依据首先了解一下算子的概念。一般的图像处理算子都是一个函数,它接受一个或多个输入图像,并产生输出图像生。下面是算子的一般形式。g(x)=h(f(x))或者g(x)=h(f0(x)......fn(x))g(x)=h(f(x))或者g(x)=h(f_{0}(x)......f_{n}(x))g(x)=h(f(x))或者g(x)=h(f0(x)......fn(x))本节所讲解的图...原创 2019-11-17 22:37:41 · 1005 阅读 · 0 评论 -
opencv(17) 分离颜色通道、多通道颜色混合
上节中我们讲解了如何使用addWeighted函数进行图像混合,以及如何将ROI和addWeighted函数结合起来,对指定区域进行图像混合操作。而为了更好地观察一些图像材料的特征,有时需要对RGB三个颜色通道的分量进行分别显示和调整。通过OpenCV的split和merge方法可以很方便地达到目的。这一节,我们会详细介绍这两个互为“冤家”的函数。首先来看看进行通道分离的split函数。1....原创 2019-11-17 22:03:21 · 435 阅读 · 0 评论 -
opencv(16) ROI区域图像叠加&图像混合
1. 感兴趣区域:ROI在图像处理领域,我们常常需要设置感兴趣区域(ROI,regionofmterest),来专注或者简化工作过程。也就是从图像中选择的一个图像区域,这个区域是图像分析所关注的重点。我们圈定这个区域,以便进行进一步处理。而且,使用ROI指定想读入的目标,可以减少处理时间,增加精度,给图像处理来带不小的便利。定义ROI区域有两种方法:第一种是使用表示矩形区域的Rect。它指定矩...原创 2019-11-17 21:08:16 · 493 阅读 · 0 评论 -
opencv(16) 访问图像中的像素
1. 图像在内存之中的存储方式我们己经了解到图像矩阵的大小取决于所用的颜色模型,确切地说,取决于所用通道数。如果是灰度图像,矩阵就会如图所示。而对多通道图像来说,矩阵中的列会包含多个子列,其子列个数与通道数相等。例如,如图所示RGB颜色模型的矩阵。可以看到,OpenCV中子列的通道顺序是反过来的BGR而不是RGB。很多情况下,因为内存足够大,可实现连续存储,因此,图像中的各行就能一行一...原创 2019-11-17 16:52:42 · 295 阅读 · 0 评论 -
opencv(15) 基本图形绘制
本节涉及到的绘图函数有:用于绘制直线的line函数;用于绘制椭圆的ellipse函数:用于绘制矩形的rectangle函数:用于绘制圆的circle函数:用于绘制填充的多边形的fillPoly函数。让我们通过一个程序实例的学习来掌握OpenCV中各种绘制函数的用法。此程序的原型为OpenCV官方的示例程序,主要的脉络是定义了几个自定义的绘制函数,然后调用这些自定义的函数绘制出了两幅...原创 2019-11-15 21:54:31 · 242 阅读 · 0 评论 -
opencv(14) 常用数据结构和函数
1. 点的表示:Point类用法:Point point;point.x = 10;point.y = 8;另外,在OpenCV中有如下定义:typedef Point_<int> Point2i;typedef Point2i Point;typedef Point_<float> Point2f;2. 颜色的表示:Scalar类Scalar()表...原创 2019-11-15 19:53:34 · 271 阅读 · 0 评论 -
opencv(13) 基础图像容器Mat
1. 数字图像存储概述我们可以通过各种各样的方法从现实世界获取到数字图像,如借助相机、扫描仪、计算机摄像头或磁共振成像等。通常由显示屏上看到的都是真实而漂亮的图像,但是这些图像在转化到我们的数字设备中时,记录的却是图像中的每个点的数值。比如在上图中你可以看到草坪的颜色是一个包含众多强度值的像素点矩阵。可以这样说,矩阵就是图像在数码设备中的表现形式。OpenCV作为一个计算机视觉库,其主要的工作...原创 2019-11-15 18:11:18 · 372 阅读 · 0 评论 -
opencv(12) 鼠标操作
指定鼠标操作消息的回调函数为SetMouseCallBack。void SetMouseCllBack(conststring& winname,MouseCallBack onMouse,void * userdata=0)第一个参数:const string&类型的winname,窗口的名字。第二个参数:MouseCallBack类型的onMouse,指定窗口里每次鼠...原创 2019-11-14 21:55:35 · 243 阅读 · 0 评论 -
opencv(11) 滑动条的创建和使用
滑动条的创建和使用int createTrackbar(conststring& trackbarname,conststring& winname,int* value,int count,TrackCallback onChange=0,void * userdata=0);第一个参数:const string&类型的trackbarname,轨迹条的名字;第...原创 2019-11-13 21:32:44 · 179 阅读 · 0 评论 -
opencv(10) HighGUI图形用户界面初步
opencv的命名空间#include<opencv2\core\core.hpp>#include<opencv2\highgui\highgui.hpp>using namespace cv;图像的载入:imread()函数Mat imread(const string& filename,int flag=1);(1) 第一个参数,const ...原创 2019-11-12 21:55:54 · 200 阅读 · 0 评论 -
opencv(9) 命名规范约定
命名规则约定描述实例类名混合使用大小写ClassName类型(包括枚举类)混合大小写TypeName局部变量,驼峰命名localName参数混合大小写RountinePara成员变量m_ClassVariable局部变量g_GlobalPara常量CONSTANT宏SCREEN_WIDTH...原创 2019-11-09 22:26:29 · 199 阅读 · 0 评论 -
opencv(8):编译OpenCV源代码
本节,我们将一起探讨如何通过己经安装的OpenCV,选择不同的编译器类型,生成高度还原的OpenCV开发时的解决方案工程文件,并欣赏OpenCV新版本中总计六十六多万行的精妙源代码。我们可以对源代码进行再次编译,得到二进制文件,或者修改原版官方的OpenCV代码,并编译后为自己所用,从而为深入理解OpenCV的开源魅力迈出坚实的一步。下载安装CMake想要在Windows平台下生成OpenC...原创 2019-11-09 16:55:05 · 241 阅读 · 0 评论 -
OPENCV基本架构分析
进入到…\opencv\build\include目录,可以看到有opencv和opencv这两个文件夹。显然,opencv这个文件夹里面包含这旧版的头文件,而opencv2这个文件夹里面包含着具有时代意义的新版OpenCV2系列的头文件。在opencv这个文件夹里面,也就是…\opencv\build\include\opencv目录下,可以看到如下各种头文件。这里面大概就是OpenCV1.0...原创 2019-08-16 19:09:29 · 298 阅读 · 0 评论 -
OPENCV3带来的改变
2009年10月1日,OpenCV2.0发布,这标志着革命性的OpenCV2时代的来临。OpenCV2带来了全新的C++接口,将OpenCV的能力无限放大。在2.0的时代,OpenCV增加了新的平台支持,包括iOS和Android,通过CUDA和OpenCL实现了GPU加速,为Python和Java用户提供了接口,基于Github和Buildbot构建了充满艺术感的持续集成系统,所以才有了被全世界...原创 2019-08-16 22:35:40 · 566 阅读 · 0 评论 -
OpenCV的下载、安装与配置
预准备:下载和安装集成开发环境推荐使用Visual Stdio 2010以上的版本。第一步:下载和安装OpenCV SDK在官网找到OpenCV Windows版下载下来,自定义位置进行安装。第二步:配置环境变量计算机》属性》高级系统设置》高级》环境变量》在PATH中增加相应路径。对于32位系统,就添加“…opencv\build\x86\vcIO\bin”,和之前的就...原创 2019-08-17 01:20:20 · 8720 阅读 · 0 评论 -
opencv(1):图像显示
程序代码:#include<opencv2\opencv.hpp>using namespace cv;int main(){ Mat srcImage = imread("1.jpg");//载入图片 imshow("【原始图】", srcImage);//显示图片 waitKey(0);//等待任意键}运行结果:其中,#include<opencv2\o...原创 2019-08-17 11:28:40 · 129 阅读 · 0 评论 -
opencv(2):图像腐蚀
腐蚀——用图像中暗色部分“腐蚀”掉图像中的高亮部分。程序代码:#include<opencv2\highgui\highgui.hpp>#include<opencv2\imgproc\imgproc.hpp>using namespace cv;int main(){ //载入原图 Mat srcImage = imread("1.jpg"); //显示原...原创 2019-08-17 11:40:39 · 170 阅读 · 0 评论 -
opencv(3):图像模糊
使用均值滤波操作的blur函数:函数代码:#include<opencv2\highgui\highgui.hpp>#include<opencv2\imgproc\imgproc.hpp>using namespace cv;int main(){ //载入图片 Mat srcImage = imread("1.jpg"); //显示原始图 imshow...原创 2019-08-17 12:04:31 · 161 阅读 · 0 评论 -
opencv(4):canny边缘检测
程序代码:#include<opencv2\imgproc\imgproc.hpp>using namespace cv;int main(){ //载入原始图 Mat srcImage = imread("1.jpg"); //显示原始图 imshow("【原始图】Canny边缘检测", srcImage); Mat dstImage, edge, grayImage...原创 2019-08-17 12:38:25 · 466 阅读 · 0 评论 -
opencv(6):视频操作基础
VideoCapture是OpenCV2.X中新增的一个类,对应于之前C语言版本的Capture结构体。它提供了从摄像机或视频文件捕获视频的C++接口,作用是从视频文件或从摄像头捕获视频并显示出来。读取并播放视频通过对VideoCapture类的分析,可以发现利用它读入视频的方法一般有如下两种。比如读入的视频为工程路径下名为"l.avi”的视频文件,那么这两种写法分别如下。(1)先实例化...原创 2019-08-17 15:52:11 · 239 阅读 · 0 评论 -
opencv(7):OpenCV官方例程引导和赏析
OpenCV作为一个在全球使用人数众多的计算机视觉库,其实官方己经准备了大量的示例程序,供广大初学者学习。在安装目录下,可以找到OpenCV官方提供的示例代码。具体位于…\opencv\sources\samples\cpp目录下。源码的存放目录为:通过观察文件名可以发现,OpenCV官方提供了Android、C、CPP、GPU、Java、MacOSx、OCL、Python、Py山0n2、...原创 2019-08-18 00:25:53 · 1363 阅读 · 0 评论 -
CMake2.8安装教程
笔者电脑、:win10 4位;CMake版本 :2.8.12.2下载登陆CMake官网下载所需版本的CMake;安装进入向导,点击“下一步”;点击“我接受”:选择“为所有用户添加环境变量”,并点击下一步:选择合适的安装路径进行安装,点击下一步:点击“安装”:启动:安装完毕!...原创 2019-08-18 00:53:13 · 2192 阅读 · 1 评论 -
OPENCV周边概念认知
图像处理、计算机视觉、opencv图像处理是用计算机对图像进行分析,以达到所需的结果的技术,又称影像处理。图像处理技术一般包括图像压缩,增强和复原,匹配、描述和识别3个部分。图像处理一般指数字图形处理。其中,数字图像是指用工业相机、摄像机、扫描仪等设备经过拍摄得到的一个大的二维数组,该数组的元素称为像素,其值称为灰度值。而数字图像处理是通过计算机对图像进行去除噪声、增强、复原、分割、提取特征等...原创 2019-08-16 18:22:06 · 409 阅读 · 0 评论