openCV
田土豆
Learn or die
展开
-
OpenCV4.1.2新增的cv2.dnn_DetectionModel 类的用法
最新版本OpenCV4.1.2,针对深度神经网络模块,提供了三个类,通过它们,自动实现输入图像预处理与后处理,直接输出检测结果,支持图像分类、对象检测、图像分割三种常见的视觉常见任务分别如下:cv2.dnn_ClassificationModelcv2.dnn_DetectionModelcv2.dnn_SegmentationModel安装网址:https://www.l...原创 2019-11-11 20:20:16 · 8395 阅读 · 2 评论 -
cv2.dnn.blobFromImage()函数用法
函数cv2.dnn.blobFromImage(image[, scalefactor[, size[, mean[, swapRB[, crop[, ddepth]]]]]])作用:对图像进行预处理,包括减均值,比例缩放,裁剪,交换通道等,返回一个4通道的blob(blob可以简单理解为一个N维的数组,用于神经网络的输入)参数:image:输入图像(1、3或者4通道) 可...原创 2019-11-11 16:11:26 · 37863 阅读 · 6 评论 -
python常用库的安装及调用
1 通过下载whl文件安装网址:https://www.lfd.uci.edu/~gohlke/pythonlibs这是一个适用于Python扩展程序包的非官方Windows二进制文件,可以选择所需版本的库文件(.whl)通常下载所需对应版本的库到 \Lib\site-packages文件夹下,然后在命令行先cd到该文件夹,然后通过pip install +文件名 进行安装2 直接...原创 2019-11-09 10:49:58 · 463 阅读 · 0 评论 -
利用openCV+python进行HSV颜色识别,并结合滑动条动态改变目标颜色
HSV颜色空间更容易表示一个特定颜色,通过opencv读取的图片为BGR颜色空间,我们利用cv2.cvtColor()可以轻松实现颜色空间的转变。在函数之前,我们先大致了解一下HSV基本颜色分量范围(通过实验得到的模糊范围,实际操作中我们可以据此做出适当调整)。图片来自:https://blog.csdn.net/taily_duan/article/details/515067...原创 2019-04-25 17:27:02 · 17072 阅读 · 7 评论 -
python+openCV鼠标事件
鼠标事件即包括:左键按下,左键松开,左键双击,鼠标移动等,主要需掌握函数cv2.setMouseCallback(windowName, onMouse [, param])及其对应的回调函数。下面一一进行介绍。cv2.setMouseCallback(windowName, onMouse [, param])windowName:鼠标事件执行的窗口 onMouse: 回调...原创 2019-04-25 17:18:17 · 3491 阅读 · 0 评论 -
python+openCV滑动条的使用
滑动条可以动态调节参数控制图像,达到所需的效果。主要应用函数cv2.creatTrackbar()与函数cv2.getTrackbarPos(),下面详细介绍各函数参数。1. cv2.creatTrackbar(trackbarName,windowName,value,count,onChange)参数:trackbarName:滑动条的名称 windowName:所在窗口的名称...原创 2019-04-25 17:09:28 · 6965 阅读 · 0 评论 -
有关函数cv2.imshow()处理不同图像深度时的数据转化问题
结论:当cv2.imshow()处理图像深度为CV_8U(默认范围为[0,255])时,按原数据显示;当处理图像深度为CV_16U(默认范围为[0,65535])时,除以256,映射到[0,255];当图像深度为CV_32F和CV_64F时(默认范围为[0,1]),乘以255映射到[0,255];当碰到负数时,首先取其绝对值,然后按照上述图像深度将超出数据范围的部分采取截断操作,最后映射到[0...原创 2019-04-30 14:08:58 · 6856 阅读 · 5 评论 -
利用opencv+python进行图片的读取、显示和存储
1. 图片读取使用函数cv2.imread(filename[, flags])从文件中载入图片,第一个参数是图片的路径(可以是相对路径也可以是绝对路径),第二个参数是图片读取的方式(可选,默认为cv2.IMREAD_COLOR,忽略透明度),主要包括:cv2.IMREAD_COLOR:读入彩色图像(BGR三通道),忽略透明度(alpha)通道;cv2.IMREAD_GRAYSCALE...原创 2019-04-25 17:00:43 · 2731 阅读 · 2 评论 -
利用cv2.Sobel()计算图像梯度的细节讲解
函数cv2.Sobel(src, ddepth, dx, dy[, ksize[, scale[, delta[, borderType]]]])概述:利用Sobel算子进行图像梯度计算参数:src:输入图像 ddepth: 输出图像的深度(可以理解为数据类型),-1表示与原图像相同的深度 dx,dy:当组合为dx=1,dy=0时求x方向的一阶导数,当组合为dx=0,dy=1时求y...原创 2019-04-29 16:40:57 · 38309 阅读 · 8 评论 -
python+openCV利用函数cv2.findContours()和cv2.drawContours查找并绘制轮廓
函数cv2.findContours(image, mode, method[, offset])概述:寻找一个二值图像的轮廓。注意黑色表示背景,白色表示物体,即在黑色背景里寻找白色物体的轮廓参数:image:8位单通道图像。非零像素值视为1,所以图像视作二值图像mode:轮廓检索的方式cv2.RETR_EXTERNAL:只检索外部轮廓cv2.RETR_LIST: ...原创 2019-05-05 10:48:03 · 31666 阅读 · 5 评论 -
openCV python低通滤波方法汇总
低通滤波(Low-Pass Filter,简称LPF)可以对图像进行模糊处理,以便去除噪声。究其本质,均为对图像的卷积操作。下面对几种常见的低通滤波函数进行一一讲解,包括:均值滤波cv2.blur()、cv2.boxFilter(),高斯滤波cv2.GaussianBlur(),中值滤波cv2.medianBlur(),双边滤波cv2.bilateralFilter(),2D滤波(自定义卷积核)c...原创 2019-04-28 14:40:48 · 14423 阅读 · 0 评论 -
python+openCV使用滑动条调节阈值进行Canny边缘检测
@TOC函数cv2.Canny(image, threshold1, threshold2[, apertureSize[, L2gradient]])参数:image:深度为8位的图像threshold1:滞后阈值中的低阈值threshold2:滞后阈值中的高阈值apertureSize:Sobel边缘检测中的卷积框大小L2gradient:精度设置,默认为False返回值...原创 2019-05-02 21:11:00 · 5774 阅读 · 3 评论 -
python+openCV 自适应阈值分割
当图像各局部亮度不同时,全局阈值就很难将背景和目标分割。因此提出了自适应阈值,即在图像的不同区域采用不同的阈值进行分割。利用函数cv2.adaptiveThreshold()进行分割。cv2.adaptiveThreshold(src, maxValue, adaptiveMethod, thresholdType, blockSize, C)参数:1. src:原图像2. ...原创 2019-04-26 17:03:16 · 16789 阅读 · 3 评论 -
openCV+python 采用滑动条实现动态全局阈值分割
全局阈值(又称简单阈值)顾名思义,整幅图像采用一个阈值,当某一点像素值大于阈值时,赋予该点一个新值,否则就赋予另外一种值。采用函数cv2.threshold()实现。cv2.threshold(src, thresh, maxval, type)参数:src:输入的图像 thresh:图像分割所用的阈值(threshold value) maxval:当阈值类型(t...原创 2019-04-26 14:57:52 · 4414 阅读 · 4 评论