
opencv
熊叫大雄
雁归时,佳期如梦。
展开
-
Python调用OpenCV读写视频
最近因为经常对视频进行操作,所以记录下Python用opencv来读写视频的方法。一、opencv读视频python调用opencv来读视频比较简单,可以直接调用cv2.VideoCapture来读取视频和摄像头,基本上,常见的avi和mp4都能够正常读取。cv2.VideoCapture是通过传入数字来读取对应的摄像头,或者通过传入一个路径字符串来读取对应的视频文件。最简单直接的读取...原创 2020-02-09 14:35:14 · 3791 阅读 · 2 评论 -
Python调用OpenCV几何变换
这一篇就记录三个:图像缩放、平移和镜像。1、图像缩放图像缩放用到的函数是cv2.resize()函数,函数原型如下:resize(src,dsize,dst=None,fx=None,fy=None,interpolation=None)OpenCV提供了几种缩放方式:cv2.INTER_AREA、cv2.INTER_CUBIC、cv2.INTER_LI...原创 2019-11-05 14:14:07 · 273 阅读 · 0 评论 -
Python调用OpenCV阈值化
这一篇主要有两点:普通阈值化和自适应阈值化。1、普通阈值化普通阈值化用到的函数是cv2.threshold,其函数原型为:threshold(src,thresh,maxval,type,dst=None)其中,type的取值有以下几种cv2.THRESH_BINARY、cv2.THRESH_BINARY_INV、cv2.THRESH_TRUNC、cv2.THRESH...原创 2019-10-30 13:24:54 · 605 阅读 · 1 评论 -
Python调用OpenCV算术操作
Python调用OpenCV的很多操作都是类似numpy的操作的,这篇内容包括加法操作、图像混合、按位运算。1、加法图像的加法可以用cv2.add()来实现,如果相加后的像素值超过255,则取255,也可以用numpy的+操作,但是+操作的话与add函数不同的地方在于numpy的加法是取模操作,也就是说如果相加之后大于255,那么就会对256取模:importnumpyasnp...原创 2019-11-02 13:55:06 · 185 阅读 · 0 评论 -
Python调用OpenCV测试程序运行时间
OpenCV有提供测代码运行时间的函数,类似C/C++的。估计是一样的吧,看结果importnumpyasnpimportcv2ascvsrc=cv.imread("D:/lena.bmp")src=cv.resize(src,(1024,1024))e1=cv.getTickCount()img1=cv.medianBl...原创 2019-11-10 09:40:06 · 564 阅读 · 0 评论 -
Python调用OpenCV滤波
这一篇记录几种OpenCV提供的滤波函数,包括2D卷积、平均滤波、高斯滤波、中值滤波和双边滤波。1、2D卷积2D卷积使用的是OpenCV提供的filter2D()函数,该函数需要传入一个卷积核,这个卷积核可以通过numpy来构造:importnumpyasnpimportcv2ascvsrc=cv.imread("D:/lena.bmp")kernel=n...原创 2019-11-11 08:25:52 · 496 阅读 · 0 评论 -
Python调用OpenCV代码优化
OpenCV提供的API的代码大部分是经过优化的,很多都是经过SSE或者AVX等技术优化了函数,并且是默认打开优化的。其实,我们也可以查询OpenCV是否进行了函数优化,查询的函数为:cv2.useOptimized()如果打开了优化的话是返回True,反之返回False。我们也设置关闭或者开启优化,设置的函数为:cv2.setUseOptimized(False)cv2...原创 2019-11-13 11:16:34 · 686 阅读 · 0 评论 -
Python调用OpenCV形态学
图像形态学处理包括腐蚀、膨胀、开运算、闭运算、形态学梯度、礼帽(顶帽)、黑帽等运算。1、腐蚀腐蚀可以理解为前景像素会被腐蚀为背景像素,以白色255为前景,得到的效果就是白色变小、变细,黑色变大变粗:importcv2importnumpyasnpimg=cv2.imread('lena.jpg',0)kernel=np.ones((5,5),np.uint...原创 2019-11-21 14:21:43 · 263 阅读 · 0 评论 -
Dlib笔记二:matrix或array2d与cv::Mat的互转
因为经常习惯的用OpenCV来做图像处理,所以难免希望将其他库的图像数据与OpenCV互转,所以今天就记录下这种互转的方法。1、dlib::matrix/dlib::array2d转cv::Mat前面说了,定义好一个matrix或者array2d的变量后,是可以通过nr()和nc()函数来获取图像的高度和宽度(行数和列数),然后我们可以通过image_data()来获取数据指针,这个时候要...原创 2019-09-07 11:28:52 · 1340 阅读 · 0 评论 -
OpenCV--基于直线检测的文本图像倾斜校正
图像倾斜矫正的方式有很多种,今天简单介绍一种基于直线检查的倾斜校正。这种方法暂时在如下图的文本文件上测试过,不一定能针对所有:首先,因为这种图像基本是比较常见的白底黑字,所以首先对这幅图做一个灰度化,灰度化之后做一个二值化,得到二值图像:二值化之后,将X轴方向的的像素点连起来,这里我采用的是形态学的膨胀,因为我做二值化的时候采用了取反的操作,这里可以考虑不取反,但是要用腐蚀来做...原创 2019-12-02 11:26:07 · 4789 阅读 · 2 评论 -
[OpenCV] 直方图均衡化
直方图是图像处理中最最最最基本的操作之一,这个基本操作是在太太太太常见了,同时也是很容易理解的操作,对于一些对比度稍微较低的图像,这是一个还挺不错的预处理操作。1、直方图先说直方图,直方图就是图像像素的统计表,这个表里记录着一幅图像中每个像素值在图像中出现的个数,一幅图只有一个灰度直方图,但是多幅图可能有相同的直方图,这是N对1的关系。所以在制作直方图的时候就很容易啦,创建一个包含所有像素...原创 2019-10-12 14:17:32 · 254 阅读 · 0 评论 -
Cmake构建OpenCV测试例子
适用Cmake的CMakeLists.txt来编译一个OpenCV的测试例子。CMakeLists.txt的写法为:project( main )#添加头文件路径include_directories(/usr/local/opencv347/include /usr/local/opencv347/include/opencv /usr/local/opencv347/inclu...原创 2019-11-03 21:43:53 · 686 阅读 · 0 评论 -
Python调用OpenCV颜色空间
Python调用OpenCV的颜色空间转换函数是cv2.cvtColor(),OpenCV提供了很多中颜色空间转换,这里可以借助一个函数来获取所有的转换标识:flags=[iforiindir(cv2)ifi.startswith('COLOR_')]这个可以得到如下的标识符:['COLOR_BAYER_BG2BGR','COLOR_BAYER_BG2BGRA','...原创 2019-10-29 08:02:28 · 708 阅读 · 0 评论 -
Python调用OpenCV像素操作
Python调用OpenCV进行操作的时候基本上感觉就是对numpy进行操作,跟numpy是挺相关的。1、像素操作OpenCV获取图像(x,y)处的像素值:px=img[x,y]当图像是三通道的时候返回的是BGR三通道的值,如果是灰度图的话就返回一个亮度值同样的如果要对图像(x,y)处赋值的话,也通过这种方式来实现:#三通道img[x,y]=[255,255,255]...原创 2019-11-10 09:36:00 · 1107 阅读 · 0 评论 -
OpenCV2基础操作----直线、矩形、圆、椭圆函数的使用
opencv2画图函数(直线、矩形、圆、椭圆)的调用原创 2016-04-02 16:30:56 · 481 阅读 · 0 评论 -
Qt creator中配置opencv win7 64bit
64bit win7环境,MSVC2013(64bit)版本Qt5.5.1的Qtcreator配置opencv2.4.9,自己出现的一些小问题和解决方法。原创 2016-10-27 22:31:50 · 655 阅读 · 0 评论 -
64bit win7+VS2013+opencv2.4.9配置
64位win7平台下,在VS2013中配置opencv2.4.9。原创 2015-12-29 16:09:15 · 3514 阅读 · 0 评论 -
Ubuntu16.04编译OpenCV3.4.7(with opencv_contrib、nonfree等 by using cmake-gui)
原文:https://www.bearoom.xyz/2019/08/20/ubuntu16-04-make-opencv3-4-7/一、前言因为之前作死乱搞系统,然后就把Ubuntu的系统搞垮了,对于我这样的菜鸟而言,问题又看不懂,解决不了,docker又不会,从来都是重装系统解决一起。系统一重装,开发环境就得重来...这次,编译的OpenCV版本是3.4.7,虽然4.0都出来了...原创 2019-08-20 22:35:47 · 3422 阅读 · 1 评论 -
Ubuntu上运行tensorflow C++的完整例子
个人博客原文:http://www.bearoom.xyz/2019/08/25/ubuntu-tensorflow-cc-example/之前记录的运行Tensorflow的C++接口的例子都是零散的,现在写一个完整的例子。一、模型文件转换首先是需要有训练好的模型文件,然后将其转化为tensorflow的C++接口能够读取的.pb文件,这个前面也有记录,现在贴下完整的代码:##...原创 2019-08-25 21:18:07 · 1835 阅读 · 2 评论 -
OpenCV和Qt的图像格式互转
做图像处理的时候经常使需要用到opencv的,这应该是免费的图像处理库中用得最广泛而且最好用的库了吧。然后有时候想用界面来展示点东西的时候,我们就需要编写个界面,编写界面的方法千千万,弱水三千我只取一瓢饮,所以我用Qt来写界面,这个时候,就会想,如果我用OpenCV处理后的图像不会还要用OpenCV的GUI来显示吧,虽然完全可以这么做,但是既然都有个界面了,为啥我们还要用两个窗口来显示呢,于是就有...原创 2019-09-12 01:07:12 · 1654 阅读 · 0 评论 -
SeetaFaceEngine系列1:Face Detection编译和使用
SeetaFace,根据GitHub上的介绍,就是一个开源的人脸检测、矫正和识别的开源库,是采用C++来编写的,并且是在CPU上执行的,没有用到GPU,但是可以用SSE或者OpenMP来加速。整个库分为三部分,SeetaFace Detection,SeetaFace Alignment和SeetaFace Identification,分别对应人脸检测,人脸矫正和人脸识别三个功能。好了...原创 2019-09-12 01:07:35 · 1270 阅读 · 4 评论 -
SeetaFaceEngine系列2:Face Alignment编译和使用
前面一篇写了编译人脸检测部分,现在就介绍下人脸配准部分,SeetaFace的Face Alignment通过人脸的五个关键点来配准人脸,也就是双眼、鼻尖、两个嘴角。这部分的编译也和上一篇一样,步骤如下:1、创建空的DLL工程:2、修改配置器:3、添加include:这里要注意,因为人脸配准需要先检测人脸,会用到前面配置好的人脸检测,所以要加上其头文...原创 2019-09-12 21:51:16 · 817 阅读 · 0 评论 -
SeetaFaceEngine系列3:Face Identification编译和使用
前面两篇介绍了怎样编译SeetaFace的前两部分,现在就来讲下第三部分Face Identification的编译和使用。其实,步骤基本上是一直的,如下:1、新建一个空的DLL工程;2、修改配置器;3、添加include4、添加lib文件路径和依赖项5、修改预处理器6、打开OpenMP7、添加源文件到工程中这里,将FaceIde...原创 2019-09-13 01:00:49 · 654 阅读 · 1 评论 -
It can be a face application using SeetaFace and Qt.
之前编译了一下SeetaFace的库,用于人脸检测、特征点定位和人脸识别的功能,然后昨天就用Qt写了一个软件用于实现。工程的文件还是比较简单的,一个界面类和一个SeetaFace的线程类而已。这里主要涉及到Qt的多线程,Qt的多线程还是比较好用的,界面就比较简单。就是写单调的条条框框的。现在就先展示下界面和效果吧。人脸检测特征点定位人脸识别:标签和相似...原创 2019-09-14 20:21:37 · 183 阅读 · 0 评论 -
Hough Transform直线检测
霍夫变换(Hough Transform)是Paul Hough于1962年提出来的,一开始是用于检测图像中的直线的,后来还扩展到检测圆、检测任意形状的物体等。关于霍夫变换的博客多得不胜枚举,而且很多都是很厉害,解释的非常详细而且通俗。现在我就写一下我自己的理解,个人笔记,不一定准确。一、原理理解部分首先,我们关于平面中的一条直线有如下表达在笛卡尔坐标中表示为这...原创 2019-09-17 11:02:48 · 406 阅读 · 0 评论 -
Python调用OpenCV读显写
OpenCV提供了python的接口,而且很重要的一点是python下的很多接口名与C++的接口名是一样的,这一篇先记录python调用OpenCV去读取图像、显示图像和保存图像。1、OpenCV读取图像cv2.imread与C++下的接口一样,Python下的读图的接口也还是imread():img=cv2.imread("D:\images\lena.jpg",flags=...原创 2019-10-22 15:06:13 · 213 阅读 · 0 评论