
OpenCV
王小鹏鹏
计算机视觉的应用,让远程办公成为可行,写字楼将大量消失。--2016年春
展开
-
Opencv将一张图片切成NxN个小块
《OpenCV系列教程》《深度学习-如何提高数据集质量》项目位置:OpenCV-Sample代码位置:45-spiltPictureToNxN.py效果:原图:裁剪后的效果:import cv2 as cvrow = 15column = 15org_img = cv.imread('D:\code\pic.jpg')height, width = org_img.shape[:2]print('height %d widht %d' % (height, width))原创 2021-03-01 20:16:13 · 3420 阅读 · 1 评论 -
OpenCV boxFilter滤波器
《OpenCV系列教程》项目位置:OpenCV-Sample代码位置:16-02-boxFilter.py效果:import cv2img = cv2.imread('./res/mini.jpeg')cv2.imshow('org', img)kernelsizes = [(3,3), (9,9), (15, 15)]for kernel in kernelsizes: ...原创 2019-10-17 15:42:17 · 1126 阅读 · 0 评论 -
OpenCV medianBlur中值滤波
《OpenCV系列教程》项目位置:OpenCV-Sample代码位置:16-ImageBlur.pyimport cv2img = cv2.imread('./res/mini.jpeg')cv2.imshow('org', img)kernelsizes = [(3,3), (9,9), (15, 15)]for kernel in (3, 9, 15): median ...原创 2019-10-14 14:51:30 · 564 阅读 · 0 评论 -
OpenCV GaussianBlur高斯滤波
《OpenCV系列教程》项目位置:OpenCV-Sample代码位置:16-ImageBlur.pyimport cv2img = cv2.imread('./res/mini.jpeg')cv2.imshow('org', img)kernelsizes = [(3,3), (9,9), (15, 15)]for kernel in kernelsizes: gauss...原创 2019-10-14 14:49:51 · 1346 阅读 · 0 评论 -
OpenCV blur归一化滤波
《OpenCV系列教程》项目位置:OpenCV-Sample代码位置:16-ImageBlur.pyimport cv2img = cv2.imread('./res/mini.jpeg')cv2.imshow('org', img)kernelsizes = [(3,3), (9,9), (15, 15)]for kernel in kernelsizes: blur ...原创 2019-10-14 14:47:03 · 253 阅读 · 0 评论 -
OpenCV Image Filtering图像滤镜系列(多篇)
bilateralFilter(src, d, sigmaColor, sigmaSpace, dst=None, borderType=None)Applies the bilateral filter to an image.blur(src, ksize, dst=None, anchor=None, borderType=None)Blurs an image using the n...原创 2019-10-14 14:31:26 · 553 阅读 · 0 评论 -
OpenCV双边滤波bilateralFilter去除脸部雀斑
《OpenCV系列教程》《深度学习-如何提高数据集质量》源码下载45-BilateralFilter.py先展示一下效果:通过多次调大,sigmaColor和sigmaSpace数值展示的效果。bilateralFilter()官方接口位置。源码:import cv2 as cvimg = cv.imread('./res/freckle.jpeg')cv.imshow('o...原创 2019-10-14 13:18:16 · 1256 阅读 · 0 评论 -
OpenCV查找图片中的圆形
代码位置:27-FindCircles.pyimport cv2 as cvimport numpy as npsrc = cv.imread('./res/board.jpg', cv.IMREAD_COLOR)img = cv.cvtColor(src, cv.COLOR_BGR2GRAY)img = cv.medianBlur(img, 5)cimg = src.copy()...原创 2019-01-09 17:55:20 · 14498 阅读 · 8 评论 -
OpenCV查找图片中的圆形2
代码位置:28-FindCircles2.py在一些特定的环境下,需要找到特定的圆形。如下的情况是我最理想的查找方式了。找最大的那个圆,还得是完整的。import cv2 as cvimport numpy as npsrc = cv.imread('./res/IMG00868.jpg', cv.IMREAD_COLOR)height, width = src.shape[:2...原创 2019-01-09 18:04:19 · 3192 阅读 · 3 评论 -
OpenCV使用直方图对比查找相同图片
《深度学习-如何提高数据集质量》经过上面的多篇博客对图片资源的整理,终于可以运行到这一部分了,这个是对像素分布进行对比,Demo运行成果后会把查找结果以网页的形式展现出来。file 0fab5c6288a6c43560c8b0a71fc632cb.jpeg d2aa75db5503af7bd7eb522919a26161.jpeg 0fab5c6288a6c43560c8b0a71fc632...原创 2019-05-23 16:04:38 · 2119 阅读 · 2 评论 -
OpenCV剪切图片圆形区域
代码位置:30-CutCircularArea.py效果如下:代码:import cv2import numpy as np#加载图片img = cv2.imread('./res/icon.png', cv2.IMREAD_UNCHANGED)#获取图片尺寸height, width = img.shape[:2]height = int(height)width = ...原创 2019-01-15 16:04:45 · 10701 阅读 · 5 评论 -
OpenCV人脸检测使用Caffe的训练模型
项目位置:OpenCV-Sample代码位置:105-FindFacebyCaffeModel.py代码:import cv2 as cvfrom cv2 import dnncap = cv.VideoCapture('./res/test.mp4')net = dnn.readNetFromCaffe('./res/deploy.prototxt', './res/res10_...原创 2019-01-16 16:55:47 · 2153 阅读 · 3 评论 -
OpenCV将JPEG中的progressive类型转换成baseline类型
项目位置:OpenCV-Sample代码位置:31-CovertJPEGProgressiveToBaseline.pyBaseline:Baseline JPEG 是图片创建使用的加压算法,用于逐行显示。Progressive:Progressive JPEG以这样的方式显示图像:它整体显示模糊/低质量的照片,然后随着图像的下载变得更清晰。代码如下:import cv2imp...原创 2019-01-28 18:32:18 · 2177 阅读 · 6 评论 -
OpenCV分割视频文件的4个区域,1个视频变成4个视频
代码位置:104-SplitTheFourAreasOfTheVideo.py上一篇写的是《OpenCV将4个视频文件并列合成为1个,在窗口的4个区域播放》这一篇是将一个拆成四个,道理很简单,就是将视频一份四份,左上、左下、右上、右下,分别编辑成视频。代码:import cv2import numpy as npcameraCapture = cv2.VideoCapture('./r...原创 2019-01-14 18:22:22 · 3920 阅读 · 10 评论 -
OpenCV将4个视频文件并列合成为1个,在窗口的4个区域播放
代码位置:103-4VidoesArePlayedSideBySideAsOneVideo.py代码功能是将4个独立的视频文件并列合并成了一个视频文件,并在屏幕的4个区域进行播放。同理可以将更多文件合并成为一个文件。和成效果如下:代码如下:import cv2import numpy as npvideoLeftUp = cv2.VideoCapture('./res/2_003_...原创 2019-01-11 17:31:15 · 8290 阅读 · 32 评论 -
OpenCV检测图片中的直线
代码位置:29-FindLines.pyimport cv2 as cvimport numpy as npimg = cv.imread('./res/pic1.png', cv.IMREAD_COLOR)img2 = img.copy()gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)edges = cv.Canny(gray, 50, 200...原创 2019-01-10 16:20:57 · 3771 阅读 · 0 评论 -
[译]基于深度学习的文字识别(OCR)通过Tesseract+OpenCV实现
今天的博文我们将学习使用开源工具Tesseract+OpenCV,对图片上的文字进行识别。从图片提取文字的方法叫作“光学字符识别”(Optical Character Recognition )简称OCR,也可以简单的叫做文字识别。Tesseract最初由惠普实验室开发,在2005年惠普与内华达拉斯维加斯大学进行合作的时候对其进行了开源。从2006年起,它被google和众多开源爱好者进行积极的...翻译 2018-12-24 16:42:14 · 12234 阅读 · 11 评论 -
OpenCV显示MNIST中的手写图片
代码位置:26-ShowMnist.py在学习手写图片识别的时候,总想看看那些训练图片什么样子,这个demo就是显示里面的部分图片的内容的。如果整体下载下面是可以带有MNIST数据包的。from tensorflow.examples.tutorials.mnist import input_dataimport numpy as npimport cv2mnist = input_...原创 2018-12-28 17:40:00 · 1918 阅读 · 2 评论 -
更强大的二维码识别工具zBar
代码位置:102-ScannerQRCodeWithZbar.pyOpenCV自带的二维码识别工具,能力较差,尤其是在如下的情况下经常识别不出来。 现在我们使用zBar这个开源二维码工具,它自身是C语言编写。支持多个操作系统,在Android和iPhone上支持的也很好。我们只介绍python版本,这个版本是Open...原创 2018-12-28 15:18:53 · 4435 阅读 · 0 评论 -
OpenCV在视频文件中找出你需要的面孔
代码位置:23-LearnEigenFace.py同时所需要的资源也都在项目里面import cv2import oscameraCapture = cv2.VideoCapture('./res/test.mp4')detector = cv2.CascadeClassifier(os.getcwd() + '/XML/haarcascade_frontalface_alt_tre...原创 2018-12-10 15:15:27 · 405 阅读 · 0 评论 -
通过OpenCV识别QR二维码
二维码有很多种,我们今天介绍的就是QR这种二维码,全名是 Quick Response Code,下面我们就称作QR码。博客分为两部分,第一部分是QR码的基础知识,第二部分是通过OpenCV识别QR码一 、QR码的基础知识什么是QR码? QR码能保存的数据量有多少? 如何扫描QR码?让我们了解一下QR码的基础知识。了解创建、读取二维码的技术。什么是QR码QR码就是二维版本的条形码,从我...原创 2018-12-26 19:03:32 · 26912 阅读 · 1 评论 -
OpenCV图片中找出你想要找的面孔
在《OpenCV训练人脸模型并生成XML文件》里面讲解了如何训练人脸模型,这次就用一用训练出来的人脸模型。代码位置:24-FindActorFromPicture.pyimport cv2import osimg = cv2.imread('./res/zrfGrouphoto.jpeg')path = os.getcwd() + '/XML/haarcascade_frontalf...原创 2018-12-10 14:00:03 · 1087 阅读 · 0 评论 -
Python检测数据不完整的JPG图片
项目位置:OpenCV-Sample代码位置:32-FindIncompleteJPG.py有时候图片下载后就是这样的:因为图片没有下载结束,仅仅显示了下载那一部分。网上方法很多,经过实践,我找到了一个较好的方法就是判断jpg文件结尾的标识。代码如下:import ostrain_dir = './res/'def progress(percent, width=50): ...原创 2019-01-29 16:47:43 · 6769 阅读 · 19 评论 -
OpenCV显示文字
项目位置:OpenCV-Sample代码位置:33-ShowText.py代码部分:import cv2img = cv2.imread('./res/aero3.jpg')# 照片 /添加的文字 /左下角坐标 /字体 /字体大小 /颜色 /字体粗细cv2.putText(...原创 2019-04-24 08:49:05 · 7068 阅读 · 1 评论 -
Python imagehash中的均值哈希、感知哈希、梯度哈希、小波哈希对比图片相似度
源码下载WaveletImageHash.pyimagehashimagehash是使用Python语言编写的hash计算库,包括如下集中计算方式:名称简称简介average hashing (均值散列)aHash对图片的每个像素值进行比较,如果大于等于均值则输出1否则输出0.perception hashing (感知散列)pHash它和均值散列有些相似...原创 2019-10-11 17:39:58 · 4354 阅读 · 0 评论 -
OpenCV自动给黑白图片上颜色
《OpenCV系列教程》《深度学习-如何提高数据集质量》项目位置:OpenCV-Sample代码位置:44-applyColorMap.py待上颜色的原图:上图后的效果EnumeratorCOLORMAP_AUTUMN Python: cv.COLORMAP_AUTUMNCOLORMAP_BONE Python: cv.COLORMAP_BONE...原创 2019-09-24 18:27:40 · 2930 阅读 · 0 评论 -
OpenCV图片之间的四则运算add multiply subtract divide
《OpenCV系列教程》《深度学习-如何提高数据集质量》项目位置:OpenCV-Sample代码位置:43-OperationFixels.py对像素进行四则运算最直接的就是对像素的放大和缩小。加法乘法操作add(src1, src2, dst=None, mask=None, dtype=None)multiply(src1, src2, dst=None, scale=None,...原创 2019-09-23 16:32:23 · 7784 阅读 · 0 评论 -
OpenCV查找相似图片-Hash均值对比 -Hash差值对比(不靠谱)
《OpenCV系列教程》《深度学习-如何提高数据集质量》项目位置:OpenCV-Sample代码位置:42-Hashcompare.py免责声明这是两个不靠谱的对比方式,不靠谱为啥还写出来呢?我看有人用这个方式我就来调查一下,发现不靠谱所以展示给大家,避免一起浪费时间。先看测完图片吧,效果很差,类似卷积操作或者pool操作。Hash均值对比:...原创 2019-09-19 16:17:31 · 1182 阅读 · 0 评论 -
OpenCV通过边缘检测判断图片是否模糊
《OpenCV系列教程》《深度学习-如何提高数据集质量》项目位置:OpenCV-Sample代码位置:41-Laplacian.py原理:对于图片是否清晰的判断,就是看他边缘是否分明,如果边缘不清楚,我们会认为这个图片是模糊的。最简单的方式就是对图片求二阶导数,获取边缘后,然后对边缘求方差,获取方差数值,通过方差的数值判断图片是否模糊。最难确定的是闸值,但闸值可以通过图片对比获取到。我整...原创 2019-09-17 15:43:14 · 11416 阅读 · 10 评论 -
OpenCV获取图片中单一颜色构成的图形
《OpenCV系列教程》《深度学习-如何提高数据集质量》项目位置:OpenCV-Sample代码位置:40-WantOneColor.py通过图片的展示:第一张是原图我的目的是提取图片中黄色的部分。第二张是提取黄颜色后的图片,里面噪点很多。第三张是通过模糊处理后除噪的效果。代码部分:import cv2 as cvimport numpy as npdef func2(i...原创 2019-09-17 11:21:42 · 1313 阅读 · 0 评论 -
OpenCV对矩阵进行padding操作
《OpenCV系列教程》《深度学习-如何提高数据集质量》项目位置:OpenCV-Sample代码位置:38-copyMakeBorder.pyOpenCV的矩阵的Padding操作,当然了也可以作用于图片,我这里为了容易理解,使用了很简单的矩阵。代码如下:copyMakeBorder(src, top, bottom, left, right, borderType, dst=None...原创 2019-07-17 16:46:12 · 5125 阅读 · 2 评论 -
OpenCV使用直方图均衡,修正曝光过度和曝光不足的图片
《OpenCV系列教程》《深度学习-如何提高数据集质量》项目位置:OpenCV-Sample代码位置:39-equalizeHist.py图像直方图讲解如果用一句话来表示的话,那就统计每个像素点数值出现的次数,如下图:这里是一张图片,里面表示的是灰度数值,灰度值为1的有4个点,灰度值为2的有7个数值,灰度值为3的有5个。如果表示为直方图的形式就是下面的状态了。这里用直方图的形式对...原创 2019-07-29 14:27:31 · 17286 阅读 · 8 评论 -
手写中值滤波与OpenCV的中值滤波对比效果
先看一下效果吧,如图显示:原图 + 自己手写的中值滤波 + OpenCV的中值滤波.肉眼参看非常的接近.但效率上仍然无法与OpenCV匹敌.一个天上一个地下.以学习的目的进行手写.原理比较简单,对消除椒盐噪点效果是非常的好.上面的图就是一个充满了椒盐噪点的图片.传入原始图像如果图片是一个4x4的矩阵,kernel是一个3x3的矩阵,kernel会在图片上进行滑动.假设这个就是原始...原创 2019-07-16 19:42:07 · 2369 阅读 · 2 评论 -
如何查看cmake项目的编译选项,并使OpenCV4支持CUDA. How to building OpenCV 4 with CUDA10
Automake如何查看编译选项最初我们使用automake的时候,里面会有一个configure文件,我们通过 ./configure --help这个命令,就可以查看这个项目的编译选项,最常见的就是--enable-xxx或者--disable-xxx就像点餐那样,任意的添加或减少,最终编译出你最需要的版本来.Cmake如何查看编译选项通过GUI配置现在来个最简单的吧,cmake-gu...原创 2019-07-13 14:24:59 · 3637 阅读 · 1 评论 -
OpenCV读取视频文件帧数据的同时获取该帧的时间戳
《OpenCV系列教程》《深度学习-如何提高数据集质量》项目位置:OpenCV-Sample代码位置:36-GetFrameTimestamp.py我们在对视频文件做分析的时候,往往对某一帧数据进行标注,所以当Opencv读取帧数据的时候,要带有这帧数据的时间戳,OpenCV获取的时间戳与ffmpeg里面的时间戳相比还是简单很多,让用户知道这帧数据处在视频文件的那个位置。代码如下:im...原创 2019-06-12 14:14:30 · 20205 阅读 · 0 评论 -
OpenCV使用直方图对比查找相同图片-多线程版本
《OpenCV系列教程》《深度学习-如何提高数据集质量》这版本并不完美因为在,不知道为什么,多线程compareHist计算没有单线程的高,代码如下:import cv2import osfrom concurrent.futures import ThreadPoolExecutorimport threadingimport psutilimport datetimeDi...原创 2019-05-24 19:33:46 · 810 阅读 · 1 评论 -
高通滤波器 python实现
# -- coding: utf-8 --import cv2import cv2import numpy as npfrom scipy import ndimage#这个是滤波器使用的模板矩阵kernel_3x3 = np.array([[-1, -1, -1], [-1, 8, -1], [-原创 2017-07-28 17:34:39 · 14551 阅读 · 1 评论 -
OpenCV绘制点线
《OpenCV系列教程》项目位置:OpenCV-Sample代码位置:34-DrawPointLine.pyfrom PIL import Imagefrom pylab import *# 读取图片信息到数组中im = array(Image.open('./res/aero3.jpg'))# 绘制图像imshow(im)# 随意给的一些点x = [100, 100,...原创 2019-04-28 16:56:35 · 6392 阅读 · 2 评论 -
OpenCV训练人脸模型并生成XML文件
代码位置:23-LearnEigenFace.py同时所需要的资源也都在项目里面import cv2import osimport numpy as npimgs = []cl = []imgPath = './Actor/zxc/'model = cv2.face.EigenFaceRecognizer_create()dirs = os.listdir(imgPath)...原创 2018-12-10 13:51:29 · 7611 阅读 · 15 评论 -
OpenCV找出视频文件中的人脸
代码位置:22-GetFaceFromMoive.pyimport cv2import oscameraCapture = cv2.VideoCapture('./res/test.mp4')path = os.getcwd() + '/XML/haarcascade_frontalface_alt_tree.xml'detector = cv2.CascadeClassifier(...原创 2018-12-05 17:38:12 · 1445 阅读 · 1 评论