OpenCV
文章平均质量分 61
GarfieldEr007
这个作者很懒,什么都没留下…
展开
-
OpenCV学习笔记(二十一)——绘图函数core OpenCV学习笔记(二十二)——粒子滤波跟踪方法 OpenCV学习笔记(二十三)——OpenCV的GUI之凤凰涅槃Qt OpenCV学习笔记(二十
OpenCV学习笔记(二十一)——绘图函数core 在图像中,我们经常想要在图像中做一些标识记号,这就需要绘图函数。OpenCV虽然没有太优秀的GUI,但在绘图方面还是做得很完整的。这里就介绍一下相关的函数。在绘图函数中都会用到颜色,这里用Scalar结构表示颜色参数。作图相关的函数有circle、clipLine、ellipse、ellipse2Poly、line、r转载 2016-04-14 13:48:16 · 1833 阅读 · 0 评论 -
使用OpenCV进行图像创建、保存和复制
来自于仕琪的讲稿《使用OpenCV进行图像处理》中的例程/************************************************** * cvLoadImage, cvSaveImage, cvCreateImage, cvCopy以及图像显示的例子 **************************************************/ /**转载 2016-05-04 13:10:50 · 2759 阅读 · 0 评论 -
Python-OpenCV 杂项(一):图像绘制
0x00. 绘制直线import numpy as npimport cv2img = np.zeros((512,512,3), np.uint8)cv2.line(img,(0,0),(511,511),(255,0,0),5)cv2.imshow('image',img)cv2.waitKey(0)cv2.destroyAllWindows()0x01. 绘制矩形转载 2016-05-04 18:40:25 · 1502 阅读 · 0 评论 -
Python-OpenCV 杂项(二)(三): 鼠标事件、 程序性能的检测和优化
0x00. 查看鼠标事件下面的方法可以查看OpenCV支持的所有鼠标事件:import cv2events=[i for i in dir(cv2) if 'EVENT'in i]print events输出结果:['EVENT_FLAG_ALTKEY', 'EVENT_FLAG_CTRLKEY', 'EVENT_FLAG_LBUTTON', 'EVENT_FLAG转载 2016-05-04 18:43:21 · 3619 阅读 · 0 评论 -
Python-OpenCV 图像与视频处理
一直断断续续的用过几次 OpenCV,感觉熟练掌握它的使用方法已经变的非常必要了,正好找到一个很不错的英文教程,就以此为起点,详细记录一下对 OpenCV 的学习过程吧。Update:这段时间通过使用了OpenCV之后,发现了很多实际操作过程中的问题,所以再次更新一下这些文章。首先就是关于文章中示例代码,一直使用的是cv2.cv,但其实这个是老版本的cv,新版本的应该用cv转载 2016-05-04 18:45:13 · 12823 阅读 · 3 评论 -
Mac 下安装 Python-OpenCV Python-OpenCV 处理图像(一):基本操作
首先确保已经安装了PythonMac 下可以直接使用 brew 来安装OpenCV,具体步骤如下:# add opencvbrew tap homebrew/science# install opencvbrew install opencv安装必要的python库pip install numpypip install matplotlib测试是否安装成转载 2016-05-04 18:49:14 · 14444 阅读 · 1 评论 -
Python-OpenCV 处理图像(二)(三):滤镜和图像运算 图像像素点操作
0x01. 滤镜喜欢自拍的人肯定都知道滤镜了,下面代码尝试使用一些简单的滤镜,包括图片的平滑处理、灰度化、二值化等:import cv2.cv as cvimage=cv.LoadImage('img/lena.jpg', cv.CV_LOAD_IMAGE_COLOR) #Load the imagecv.ShowImage("Original", image)grey =转载 2016-05-04 18:53:21 · 4177 阅读 · 0 评论 -
Python-OpenCV 处理图像(四)(五):图像直方图和反向投影 图像中边界和轮廓检测
当我们想比较两张图片相似度的时候,可以使用这一节提到的技术直方图对比反向投影关于这两种技术的原理可以参考我上面贴的链接,下面是示例的代码:0x01. 绘制直方图import cv2.cv as cvdef drawGraph(ar,im, size): #Draw the histogram on the image minV, maxV,转载 2016-05-04 18:56:28 · 3099 阅读 · 0 评论 -
Python-OpenCV 处理图像(六)(七)(八):对象识别 图像灰度化处理 图像二值化处理
为了加快处理速度,在图像处理算法中,往往需要把彩色图像转换为灰度图像。0x00. 灰度图灰度数字图像是每个像素只有一个采样颜色的图像,这类图像通常显示为从最暗黑色到最亮的白色的灰度。灰度图像与黑白图像不同,在计算机图像领域中黑白图像只有黑白两种颜色,灰度图像在黑色与白色之间还有许多级的颜色深度。在RGB模型中,如果R=G=B时,则彩色表示一种灰度颜色,其中R=G=B转载 2016-05-04 18:59:17 · 12639 阅读 · 2 评论 -
Python-OpenCV 处理视频(一)(二): 输入输出 视频处理
视频的处理和图片的处理类似,只不过视频处理需要连续处理一系列图片。一般有两种视频源,一种是直接从硬盘加载视频,另一种是获取摄像头视频。0x00. 本地读取视频核心函数:cv.CaptureFromFile()代码示例:import cv2.cv as cvcapture = cv.CaptureFromFile('myvideo.avi')nbF转载 2016-05-04 19:01:30 · 19979 阅读 · 0 评论 -
OpenCV中SUFR、SIFT无法使用的原因及解决办法
在写OpenCV程序时中SUFR、SIFT无法使用,会报错,类似的报错如下:无法解析的外部符号"public:__thiscall cv::SURF::SURF(void)" (??0SURF@cv@@QAE@XZ),该符号在函数main 中被引用无法解析的外部符号"public:__thiscall cv::SURF::SURF(double,int,int,bool,b原创 2016-04-18 11:50:45 · 11426 阅读 · 0 评论 -
用Python和OpenCV提取颜色直方图特征
用OpenCV中自带的cv2.calHist()函数求图像的颜色直方图特征import cv2 import numpy image = cv2.imread("D:/lena.jpg", 0) hist = cv2.calcHist([image], [0], None, [256], [0.0,255.0])上面程序是以灰度图的方式计算颜色直方图特征,cv2.c原创 2016-05-12 13:04:09 · 14885 阅读 · 2 评论 -
OpenCV中Mat类的图像如何设置ROI
Mat类表示的图像进行ROI操作有两种方法(1)使用拷贝构造函数Mat(constMat& m, const Rect& roi ),矩形roi指定了兴趣区例如:[cpp] view plain copy Mat src = imread(“xx.jpg”); Mat srcROI( src, Rect(0,0,src.转载 2016-04-17 12:47:35 · 2539 阅读 · 2 评论 -
OpenCV学习笔记(二十六)——小试SVM算法ml OpenCV学习笔记(二十七)——基于级联分类器的目标检测objdect OpenCV学习笔记(二十八)——光流法对运动目标跟踪Video Ope
OpenCV学习笔记(二十六)——小试SVM算法ml 总感觉自己停留在码农的初级阶段,要想更上一层,就得静下心来,好好研究一下算法的东西。OpenCV作为一个计算机视觉的开源库,肯定不会只停留在数字图像处理的初级阶段,我也得加油,深入研究它的算法库。就从ml入手吧,最近做东西遇到随机森林,被搞的头大,深深感觉自己肚子里货太少,关键时刻调不出东西来。切勿浮躁,一点点研究吧。这次就转载 2016-04-14 14:08:06 · 3710 阅读 · 0 评论 -
OpenCV3如何使用SIFT和SURF Where did SIFT and SURF go in OpenCV 3?
If you’ve had a chance to play around with OpenCV 3 (and do a lot of work with keypoint If you’ve had a chance to play around with OpenCV 3 (and do a lot of work with keypoint detectors and featur转载 2016-04-27 12:24:58 · 7218 阅读 · 0 评论 -
OpenCV学习笔记(三十一)——让demo在他人电脑跑起来 OpenCV学习笔记(三十二)——制作静态库的demo,没有dll也能hold住 OpenCV学习笔记(三十三)——用haar特征训练自己
OpenCV学习笔记(三十一)——让demo在他人电脑跑起来 这一节的内容感觉比较土鳖。这从来就是一个老生常谈的问题。学MFC的时候就知道这个事情了,那时候记得老师强调多次,如果写的demo想在人家那里演示一下,一定要选择静态库使用mfc,而不是选择动态链接库,否则在人家电脑里没有对应的dll文件,是无法运行起来的。可见老师在这方面吃过亏啊。昨天用OpenCV写了个东西,发过去让人家测试,转载 2016-04-14 21:24:04 · 1683 阅读 · 0 评论 -
OpenCV学习笔记(三十六)——Kalman滤波做运动目标跟踪 OpenCV学习笔记(三十七)——实用函数、系统函数、宏core OpenCV学习笔记(三十八)——显示当前FPS OpenC
OpenCV学习笔记(三十六)——Kalman滤波做运动目标跟踪 kalman滤波大家都很熟悉,其基本思想就是先不考虑输入信号和观测噪声的影响,得到状态变量和输出信号的估计值,再用输出信号的估计误差加权后校正状态变量的估计值,使状态变量估计误差的均方差最小。具体它的原理和实现,我想也不用我在这里费口舌,但这个理论基础必须的有,必须得知道想用kalman滤波做跟踪,必须得先建立运动模转载 2016-04-14 21:28:58 · 2271 阅读 · 0 评论 -
OpenCV学习笔记(四十一)——再看基础数据结构core OpenCV学习笔记(四十二)——Mat数据操作之普通青年、文艺青年、暴力青年 OpenCV学习笔记(四十三)——存取像素值操作汇总co
OpenCV学习笔记(四十一)——再看基础数据结构core 记得我在OpenCV学习笔记(四)——新版本的数据结构core里面讲过新版本的数据结构了,可是我再看这部分的时候,我发现我当时实在是看得太马虎了。对于新版本的数据结构,我再说说。Point_类不用多言,里面两个成员变量x,y。Point_就是Point2i,也是Point,Point_就是Point2f,Point_转载 2016-04-14 21:31:53 · 1865 阅读 · 0 评论 -
OpenCV学习笔记(四十六)——FAST特征点检测features2D OpenCV学习笔记(四十七)——VideoWriter生成视频流highgui OpenCV学习笔记(四十八)——PCA算
OpenCV学习笔记(四十六)——FAST特征点检测features2D 特征点检测和匹配是计算机视觉中一个很有用的技术。在物体检测,视觉跟踪,三维常年关键等领域都有很广泛的应用。这一次先介绍特征点检测的一种方法——FAST(features from accelerated segment test)。很多传统的算法都很耗时,而且特征点检测算法只是很多复杂图像处理里中的第一步,得不偿转载 2016-04-14 21:35:37 · 2240 阅读 · 0 评论 -
OpenCV学习笔记(五十一)——imge stitching图像拼接stitching OpenCV学习笔记(五十二)——号外:OpenCV 2.4.1 又出来了。。。。。 OpenCV学习笔记(五
OpenCV学习笔记(五十一)——imge stitching图像拼接stitching stitching是OpenCV2.4.0一个新模块,功能是实现图像拼接,所有的相关函数都被封装在Stitcher类当中。这个类当中我们可能用到的成员函数有createDefault、estimateTransform、composePanorama、stitch。其内部实现的过程是非常繁琐的转载 2016-04-14 21:38:07 · 4989 阅读 · 0 评论 -
OpenCV学习笔记(五十六)——InputArray和OutputArray的那些事core OpenCV学习笔记(五十七)——在同一窗口显示多幅图片 OpenCV学习笔记(五十八)——读《Mast
OpenCV学习笔记(五十六)——InputArray和OutputArray的那些事core看过OpenCV源代码的朋友,肯定都知道很多函数的接口都是InputArray或者OutputArray型的,这个接口类还是很强大的,今个就来说说它们的那些事。InputArray这个接口类可以是Mat、Mat_、Mat_、vector、vector>、vector。也就意味着当你看ref转载 2016-04-14 21:41:02 · 2798 阅读 · 0 评论 -
OpenCV系列(三):Mat详解
Mat类是OpenCV最基本的一个数据类型,它可以表示一个多维的多通道的数组。Mat常用来存储图像,包括单通道二维数组——灰度图,多通道二维数组——彩色图。当然也可以用来存储点云,直方图等等,对于高维的数组可以考虑存储在SparseMat中。对于一个Mat对象M,其数据布局是由M.step[]决定的,数据存放在M.data里面,假设M有d维,则数据的寻址方式为:addr(Mi0,.转载 2016-04-29 13:00:11 · 11615 阅读 · 1 评论 -
Python-OpenCV 处理视频(三)(四)(五): 标记运动轨迹 运动检测 运动方向判断
0x00. 光流光流是进行视频中运动对象轨迹标记的一种很常用的方法,在OpenCV中实现光流也很容易。CalcOpticalFlowPyrLK 函数计算一个稀疏特征集的光流,使用金字塔中的迭代 Lucas-Kanade 方法。简单的实现流程:加载一段视频。调用GoodFeaturesToTrack函数寻找兴趣点。调用CalcOpticalFlow转载 2016-05-04 19:04:46 · 14079 阅读 · 4 评论 -
Python OpenCV Tutorial Introduction图像处理教程
OpenCV Tutorial IntroductionIntroductionWelcome to this tutorial about OpenCV in python !The reasons why I have written this article is to fulfil the lack of tutorial about OpenCV in转载 2016-05-05 12:32:48 · 1842 阅读 · 0 评论 -
OpenCV之imgproc 模块. 图像处理(4)直方图均衡化 直方图计算 直方图对比 反向投影 模板匹配
直方图均衡化目标在这个教程中你将学到:什么是图像的直方图和为什么图像的直方图很有用用OpenCV函数 equalizeHist 对图像进行直方图均衡化原理图像的直方图是什么?直方图是图像中像素强度分布的图形表达方式.它统计了每一个强度值所具有的像素个数.直方图均衡化是什么?直方图均衡化是通过拉伸转载 2016-04-22 13:07:01 · 2674 阅读 · 0 评论 -
OpenCV之imgproc 模块. 图像处理(5)在图像中寻找轮廓 计算物体的凸包 创建包围轮廓的矩形和圆形边界框 为轮廓创建可倾斜的边界框和椭圆 轮廓矩 多边形测试
在图像中寻找轮廓目标在这个教程中你将学到如何:使用OpenCV函数 findContours使用OpenCV函数 drawContours原理例程教程的代码在下面给出. 你也可以从 这里 下载#include "opencv2/highgui/highgui.hpp"#include "opencv2/imgproc转载 2016-04-22 13:09:34 · 3871 阅读 · 0 评论 -
OpenCV之highgui 模块. 高层GUI和媒体I/O: 为程序界面添加滑动条 OpenCV的视频输入和相似度测量 用OpenCV创建视频
为程序界面添加滑动条在以前的教程中 (例如 linear blending 和 brightness and contrast adjustments)你有可能注意到需要 input 一些数值到我们的程序中, 例如 和 。我们会在代码中输入这些数据来配合程序的运行。好, 下面来介绍所要用到的一个 GUI 中的工具. OpenCV 提供的 GUI 库在(highgui.h)里转载 2016-04-22 13:12:00 · 2069 阅读 · 0 评论 -
OpenCV之calib3d 模块. 相机定标和三维重建
使用棋盘格来进行摄像机标定这节教程的目标是学习怎样通过一系列棋盘照片进行摄像机标定.测试数据: 使用在你 data 或者 chess 文件夹下的照片.编译带有例子的OpenCV,在cmake的配置中把 BUILD_EXAMPLES 项设置为 ON .打开 bin 文件夹并使用 imagelist_creator 来创建一个包含你的照片列表的 XML/YAML 文件.然后,转载 2016-04-22 13:55:23 · 11618 阅读 · 0 评论 -
OpenCV之feature2d 模块. 2D特征框架(1)Harris 角点检测子 Shi-Tomasi角点检测子 定制化创建角点检测子 亚像素级的角点检测 特征点检测
Harris 角点检测子目标本教程中我们将涉及:有哪些特征?它们有什么用?使用函数 cornerHarris 通过 Harris-Stephens方法检测角点.理论有哪些特征?在计算机视觉中,我们通常需要寻找两张图上的匹配关键点。为什么?因为一旦我们知道了两张图是相关联的,我们就可以使用 *both 图像来提取它们中的信息。是转载 2016-04-22 13:58:22 · 1948 阅读 · 0 评论 -
OpenCV之feature2d 模块. 2D特征框架(2)特征描述 使用FLANN进行特征点匹配 使用二维特征点(Features2D)和单映射(Homography)寻找已知物体 平面物体检测
特征描述目标在本教程中,我们将涉及:使用 DescriptorExtractor 接口来寻找关键点对应的特征向量. 特别地:使用 SurfDescriptorExtractor 以及它的函数 compute 来完成特定的计算.使用 BruteForceMatcher 来匹配特征向量。使用函数 drawMatches 来绘制检测到的匹配点.转载 2016-04-22 14:00:34 · 2855 阅读 · 1 评论 -
OpenCV之objdetect 模块. 物体检测:级联分类器
级联分类器目标在这节教程中您将学到:使用 CascadeClassifier 类来检测视频流中的物体. 特别地, 我们将使用函数:load 来加载一个 .xml 分类器文件. 它既可以是Haar特征也可以是LBP特征的分类器.detectMultiScale 来进行图像的多尺度检测.原理代码本教程的代码如下所示转载 2016-04-22 14:02:12 · 6057 阅读 · 0 评论 -
OpenCV之ml 模块. 机器学习:支持向量机(SVM)介绍 支持向量机对线性不可分数据的处理
支持向量机(SVM)介绍目标本文档尝试解答如下问题:如何使用OpenCV函数 CvSVM::train 训练一个SVM分类器, 以及用 CvSVM::predict 测试训练结果。什么是支持向量机(SVM)?支持向量机 (SVM) 是一个类分类器,正式的定义是一个能够将不同类样本在样本空间分隔的超平面。 换句话说,给定一些标记(label)好转载 2016-04-22 14:04:00 · 2721 阅读 · 0 评论 -
OpenCV之gpu 模块. 使用GPU加速的计算机视觉:GPU上的相似度检测(PNSR 和 SSIM)
GPU上的相似度检测(PNSR 和 SSIM)学习目标在 OpenCV的视频输入和相似度测量 教程中我们已经学习了检测两幅图像相似度的两种方法:PSNR和SSIM。正如我们所看到的,执行这些算法需要相当长的计算时间,其中SSIM(结构相似度)的算法代价相当高昂。然而,OpenCV现在支持Nvidia的CUDA加速,如果你有一块支持CUDA的的Nvidia显卡。您可以将算法改为使用G转载 2016-04-22 14:05:29 · 5159 阅读 · 0 评论 -
OpenCV之imgproc 模块. 图像处理(3)霍夫线变换 霍夫圆变换 Remapping 重映射 仿射变换
霍夫线变换目标在这个部分您将学习到:使用OpenCV的以下函数 HoughLines 和 HoughLinesP 来检测图像中的直线.原理Note 以下原理的说明来自书籍 学习OpenCV 作者Bradski和Kaehler.霍夫线变换霍夫线变换是一种用来寻找直线的方法.是用霍夫线变换之前, 首先要对图像进行边缘检转载 2016-04-22 13:04:42 · 1798 阅读 · 0 评论 -
OpenCV之imgproc 模块. 图像处理(2)实现自己的线性滤波器 给图像添加边界 Sobel 导数 Laplace 算子 Canny 边缘检测
实现自己的线性滤波器目的本篇教程中,我们将学到:用OpenCV函数 filter2D 创建自己的线性滤波器。原理Note 以下解释节选自Bradski and Kaehler所著 Learning OpenCV 。卷积高度概括地说,卷积是在每一个图像块与某个算子(核)之间进行的运算。核是什么?转载 2016-04-22 13:02:25 · 2335 阅读 · 0 评论 -
OpenCV之imgproc 模块. 图像处理(1)图像平滑处理 腐蚀与膨胀(Eroding and Dilating) 更多形态学变换 图像金字塔 基本的阈值操作
图像平滑处理目标本教程教您怎样使用各种线性滤波器对图像进行平滑处理,相关OpenCV函数如下:blurGaussianBlurmedianBlurbilateralFilter原理Note 以下原理来源于Richard Szeliski 的著作 Computer Vision: Algorithms and Applicati转载 2016-04-22 13:00:17 · 4025 阅读 · 1 评论 -
Python OpenCV中色彩空间的转换类型
OpenCV中具有的色彩空间转换类型有很多,编写一个简单的Python程序,OpenCV下所支持的色彩空间转换类型Python程序:# -*- coding: utf-8 -*-import cv2import numpyflags = [i for i in dir(cv2) if i.startswith('COLOR_')]print flags输出结果如下原创 2016-05-05 13:07:12 · 3872 阅读 · 0 评论 -
OpenCV之Python学习笔记(1)(2): 图像的载入、显示和保存 图像元素的访问、通道分离与合并
OpenCV之Python学习笔记一直都在用Python+OpenCV做一些算法的原型。本来想留下发布一些文章的,可是整理一下就有点无奈了,都是写零散不成系统的小片段。现在看到一本国外的新书《OpenCV Computer Vision with Python》,于是就看一遍,顺便把自己掌握的东西整合一下,写成学习笔记了。更需要的朋友参考。阅读须知:转载 2016-05-05 20:45:19 · 5927 阅读 · 0 评论 -
OpenCV Python教程(3)(4)(5): 直方图的计算与显示 形态学处理 初级滤波内
OpenCV Python教程(3、直方图的计算与显示)本篇文章介绍如何用OpenCV Python来计算直方图,并简略介绍用NumPy和Matplotlib计算和绘制直方图直方图的背景知识、用途什么的就直接略过去了。这里直接介绍方法。计算并显示直方图与C++中一样,在Python中调用的OpenCV直方图计算函数为cv2.calcHist。cv2.ca转载 2016-05-05 20:52:19 · 3275 阅读 · 0 评论 -
OpenCV-Python教程(6)(7)(8): Sobel算子 Laplacian算子 Canny边缘检测
OpenCV-Python教程(6、Sobel算子)本篇文章介绍如何用OpenCV-Python来使用Sobel算子。提示:转载请详细注明原作者及出处,谢谢!本文介绍使用OpenCV-Python实现基本的滤波处理本文不介详细的理论知识,读者可从其他资料中获取相应的背景知识。笔者推荐清华大学出版社的《图像处理与计算机视觉算法及应用(第2版) 》。转载 2016-05-05 20:58:30 · 8295 阅读 · 0 评论