
OpenCV Python
视觉图像处理技术分享
小鹏AI
深度学习算法工程师,主攻深度学习模型优化部署,辅攻图形图像算法调优。
软件设计师、英伟达Jeston Nano专家认证。
展开
-
OpenCV Interpolation
interpolation - 插值方法。共有5种:INTER_NEAREST - 最近邻插值法INTER_LINEAR - 双线性插值法(默认)INTER_AREA - 基于局部像素的重采样(resampling using pixel area relation)INTER_CUBIC - 基于4x4像素邻域的3次插值法INTER_LANCZOS4 - 基于8x8像素邻域的Lanc...原创 2020-04-13 21:50:14 · 5722 阅读 · 1 评论 -
OpenCV 探究图片处理的简单操作
#encoding=utf-8import cv2 # 导入OpenCV模块img = cv2.imread("F:\\picture\\test.jpg") # 读取文件路径cv2.imshow("img", img) # 显示图像cv2.waitKey(0) # 等待按键cv2.destroyAllWindows() # 摧毁所有窗口...原创 2020-04-02 16:09:15 · 303 阅读 · 2 评论 -
OpenCV 图片处理----图片简单融合和图片高级融合
简单融合高级融合原创 2020-04-18 10:18:25 · 1326 阅读 · 2 评论 -
OpenCV概述和安装
OpenCV概述OpenCV 的理论支撑来源于《数字图像处理》,数字图像处理使用的都是一些比较传统的算法,而目前也添加了一些比较前沿的算法,虽然有深度学习算法,但是主流不是深度学习算法。【更新速度也没有深度学习更新的快】OpenCV模块的简介:模块名功能介绍core核心功能模块、包含OpenCV基本数据结构和绘图函数等imgprocimage/process,...原创 2020-04-02 14:01:48 · 472 阅读 · 1 评论 -
OpenCV 直方图概述以及统计直方图
学习目标:能够使用OpenCV或者Numpy函数计算直方图使用OpenCV或者Matplotlib函数绘制直方图学会cv2.calcHist(),np.histogram()函数的使用了解直方图直方图的x轴是灰度值(0~255)、y轴是图片中具有同一个灰度值的点的数目。直方图是根据灰度图像绘制的,而不是彩色图像直方图的左边区域图像是暗一点的像素数量、右侧则刚好相反直方图...原创 2020-04-21 12:02:22 · 502 阅读 · 0 评论 -
OpenCV Matplotlib绘制直方图
绘制直方图有两种方法:使用Matplotlib中的绘图函数使用OpenCV自带的绘图函数使用OpenCV自带函数绘制直方图比较麻烦,这个不做介绍Matplotlib中有直方图绘制函数:matplotlib.pyplot.hist()它可以直接统计并绘制直方图单通道–灰度图# -*-coding:utf8-*-#import cv2import numpy as npfrom...原创 2020-04-21 12:31:16 · 341 阅读 · 0 评论 -
OpenCV 在坐标中显示图片(matplotlib)
import numpy as npimport cv2from matplotlib import pyplot as pltimg = cv2.imread('messi5.jpg') # 读取图片plt.imshow(img)"""彩色图像使用 OpenCV 加载时是 BGR 模式。但是 Matplotlib是 RGB 模式。所以彩色图像如果已经被OpenCV 读取,它将不会...原创 2020-04-16 22:24:41 · 2042 阅读 · 0 评论 -
OpenCV 2D Histogram
2D HistogramOne dimensional histogram only needs to consider gray value, but 2D histogram needs to consider hue and saturation.2D histogram in OpenCVThe parameters of cv2.calcHist() method are dif...原创 2020-04-21 20:11:02 · 296 阅读 · 0 评论 -
OpenCV Histogram Equalization
Goal:Learning the concept of histogram equailze and how to use it to improve the contrast of picturesTheory:If most of the pixel values in an images are concentrated in one pixel range.For exampl...原创 2020-04-21 15:58:10 · 611 阅读 · 0 评论 -
OpenCV 绘制图像的局部区域直方图
如果要统计图像中某个局域的直方图构建一幅掩模图像将需要统计的部分设置为白色、其余部分设置为黑色将掩模图像传递给函数即可# -*-coding:utf8-*-#import cv2import numpy as npfrom matplotlib import pyplot as pltimg = cv2.imread('../data/home.jpg') # img.s...原创 2020-04-21 12:52:29 · 663 阅读 · 0 评论 -
OpenCV 边缘检测----索贝尔算子(Sobel)
索贝尔算子(Sobeloperator):Sobel算子是一个主要用于边缘检测的离散微分算子, 它结合了高斯平滑和微分求导, 用来计算图像灰度函数的近似梯度。Sobel算子的计算过程Sobel边缘检测函数—cv2.Sobel()def Sobel(src, ddepth, dx, dy, dst=None, ksize=None, scale=None, delta=None, b...原创 2020-04-29 20:59:46 · 1873 阅读 · 0 评论 -
OpenCV getStructuringElement
getStructuringElement(shape, ksize, anchor=None)# shape:定义卷积盒的形状# ksize:定义卷积盒的尺寸卷积盒的形状(shape)有三种:矩形核(Rectangular Kernel):cv2.MORPH_RECT椭圆核(Elliptical Kernel):cv2.MORPH_ELLIPSE十字形核(Cross-shape...原创 2020-04-24 11:49:42 · 1903 阅读 · 1 评论 -
OpenCV Fast角点检测算法的使用和原理
代码及解析import numpy as npimport cv2img = cv2.imread("fast_check3.jpg",0) # 读取图片# Initiate FAST object with default valuesfast = cv2.FastFeatureDetector_create() # 实例化fast# find and draw the keypointskp = fast.detect(img, None) # 找出图片中的关键点img2 ..原创 2020-05-15 20:42:02 · 1091 阅读 · 0 评论 -
OpenCV 分水岭算法--距离变换distanceTransform
距离变换原理距离变换的定义是:计算一个图像中非零像素点到最近的像素点的距离,也就是到零像素点的最短距离。距离变换的处理图像通常是二值图像什么是二值图像:就是把图像分为两个部分,即:背景和物体(前景目标)两部分通常情况下,我们把前景目标的灰度值设置为255,也就是白色背景的灰度值我们设置为0,也就是黑色所以回归到距离变换原理,非零像素点就是前景目标零像素点就是背景如上图所示,...原创 2020-04-26 22:17:50 · 3353 阅读 · 0 评论 -
OpenCV GrabCut图像分割算法的使用及其原理
图像分割:选取图像中的指定目标,并将背景色置为黑色。识别目标实例分割:在像素级识别对象轮廓的任务【最困难的视觉任务之一】。识别目标特征GrabCut图像分割算法GrabCut图像分割算法是一个比较重要的图像分割算法...原创 2020-05-07 00:37:17 · 3448 阅读 · 0 评论 -
OpenCV Histogram back projection
PrincipleThe purpose of histogram back projection is to segment and find the target image. It will output an image of the same size as the input image. Each pixel value of the output represents the p...原创 2020-04-22 00:55:32 · 315 阅读 · 0 评论 -
OpenCV cv2.findContours报错:ValueError
builtins.ValueError: not enough values to unpack (expected 3, got 2)旧版OpenCV:返回三个参数image, contours, hierarchy = cv2.findContours(mask, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)新版OpenCV:返回两个参数cont...原创 2020-04-28 12:18:09 · 693 阅读 · 0 评论 -
OpenCV 漫水填充算法的使用及原理
本文架构漫水填充算法的简单介绍漫水填充算法的实现原理漫水填充算法floodFill函数及其参数介绍漫水填充算法的使用案例漫水填充算法漫水填充算法(FloodFill)是在很多图形绘制软件中常用的填充算法。通常是自动选中与种子像素相连的区域,利用指定的颜色进行区域的颜色填充。漫水填充算法(FloodFill)常用于标记或者分离图像的一部分,以便做进一步分析和处理。Window...原创 2020-05-07 16:46:07 · 1757 阅读 · 0 评论 -
OpenCV 图像阈值化
阈值化简介图像阈值化是图像处理的重要基础部分,应用很广泛,可以根据灰度的差异来分割图像不同的部分阈值化处理的图像一般为单通道图像(灰度值)固定阈值:cv2.threshold()自适应阈值:cv2.adaptiveThreshold()固定阈值原理:给定阈值进行阈值操作得到二值图(0,1两类值),可以过滤灰度值过大或过小的点cv2.threshold(src,thresh, m...原创 2020-04-23 21:53:59 · 345 阅读 · 0 评论 -
OpenCV Watershed algorithm
PrincipleAny gray image can be regarded as a topological plane, the region with high gray value can be regarded as a mountain peak, and the region with low gray value can be regarded as a valley.Wh...原创 2020-04-23 13:46:04 · 323 阅读 · 0 评论 -
OpenCV 图片去水印(不需要自己做水印模板)
图片去水印的思路准备一张有水印的图片用绘画工具在有水印的图片上框出水印位置利用findContours函数查找水印所在的位置初始化一个与原图像大小相同的0矩阵将获取到的水印图片定位到初始化的矩阵中利用inpaint函数进行水印的去除详细步骤准备一张带有水印的图片,命名为watermark.png将水印部分用绘图工具框出来,并名为reference.png读取模板图片转...原创 2020-05-02 15:31:37 · 6915 阅读 · 1 评论 -
OpenCV 图像修补
OpenCV中图像修补技术由inpaint函数实现。基本步骤是:先修复区域边缘再逐步向内推进修复。可以用来清除照片灰尘、划痕或者从静态图像及视频中去除不需要的物体。图像修补函数—cv2.inpaint()def inpaint(src, inpaintMask, inpaintRadius, flags, dst=None):# inpaint(src, inpaintMask, in...原创 2020-05-02 09:34:25 · 1972 阅读 · 2 评论 -
OpenCV 特征匹配--嫌疑犯识别
嫌疑犯的头像:找出这个嫌疑犯~搞定~:解决思路:# -*-coding:utf8-*-#"""第一步:对图像进行灰度化,使用sift.detectAndCompute(image, None) 进行ksp关键点,dpSIFT特征向量的检测第二步:构建BMFmatch匹配器,获得符合条件的匹配值,matches获得的是ksp关键点的匹配值得索引,使用索引获得符合条件的kspA和kspB第三步:比值测试,首先获取与 A距离最近的点 B (最近)和 C (次近),只有当 B/C原创 2020-05-15 17:54:53 · 317 阅读 · 0 评论 -
OpenCV 探究Harris角点检测算法的使用及其原理
本文架构角点检测的相关概念Harris角点检测算法Harris角点检测函数及其参数介绍Harris角点检测实现角点检测的案例Harris角点检测实现的原理Harris角点检测实现的步骤Shi-Tomasi角点检测(Harris算法的改进)亚像素角点检测角点检测的相关概念(1)特征点(兴趣点/关键点)对于一幅图像,我们把目光从之前的观察整幅图像,转移到了图像中的某些特殊的点,对其进行分析。如果能检测到足够的这种点,同时他们的区分度很高(可以精确定位稳定的特征),那么这个方法具有实原创 2020-05-09 14:45:54 · 643 阅读 · 0 评论 -
OpenCV 图像的形态学操作----膨胀腐蚀
膨胀腐蚀概述膨胀、腐蚀属于形态学的操作, 简单来说就是基于形状的一系列图像处理操作膨胀腐蚀是基于高亮部分操作的, 膨胀是对高亮部分进行膨胀, 类似**“领域扩张”, 腐蚀是高亮部分被腐蚀, 类似“领域蚕食”**膨胀腐蚀的应用和功能:消除噪声分割独立元素或连接相邻元素寻找图像中的明显极大值、极小值区域求图像的梯度其他相关:开运算、闭运算顶帽、黒帽形态学梯度膨胀—cv...原创 2020-04-24 16:17:23 · 737 阅读 · 0 评论 -
OpenCV 图像顶帽运算
顶帽运算也叫礼帽运算操作原理:图像的闭运算与原图像做差功能:可以用来分离比邻近点亮一些的斑点简要的概括:什么是闭运算,有什么功能?闭运算是图像先膨胀后腐蚀膨胀后腐蚀的过程,它可以用来消除小型黑洞(黑色区域)import cv2import numpy as npimage = cv2.imread("other.png")image = cv2.cvtColor(image, ...原创 2020-04-29 11:54:19 · 857 阅读 · 0 评论 -
OpenCV findContours()函数
def findContours(image, mode, method, contours=None, hierarchy=None, offset=None)# findContours(image, mode, method[, contours[, hierarchy[, offset]]]) -> contours(等高线), hierarchy(层次结构)使用函数的时候需要...原创 2020-04-28 14:15:17 · 1402 阅读 · 0 评论 -
OpenCV 轮廓特征----边界矩形
边界矩形分为两类:直边界矩形旋转的边界矩形直边界矩形检测图像中是否含有矩形,但不会考虑图像中旋转的矩形。所以边界矩形的面积不是最小的。可以使用 **cv2.boundingRect()**进行查看img = cv2.imread('rectangle.png', 1)gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)# 二值化,取阈值为...原创 2020-04-29 08:17:24 · 1179 阅读 · 0 评论 -
OpenCV SIFT特征检测的原理及其实现步骤
本文架构SIFT综述SIFT算法的特点SIFT算法的实质SIFT算法的实现步骤SIFT算法可以解决那些问题SIFT综述SIFT(Scale-invariant feature transform)是一种电脑视觉的算法,用来侦测与描述影像中的局部性特征。SIFT在空间尺度中寻找极值点,并提取出其位置、尺度、旋转不变量。SIFT是基于物体上的一些局部外观的兴趣点进行检测而与影像的大小和旋转无关,对于光线、噪声、些微视角改变的容忍度也相当高,基于这些特性,它们是高度显著而且相对容易撷取,原创 2020-05-10 03:35:27 · 4686 阅读 · 2 评论 -
OpenCV和Image之间的转换(亲测有效)
Opencv转PIL.ImageImage.fromarray(cv2.cvtColor(cv_img,cv2.COLOR_BGR2RGB))PIL.Image转Opencvcv2.cvtColor(numpy.asarray(Img_img),cv2.COLOR_RGB2BGR)原创 2022-01-05 22:50:21 · 4061 阅读 · 0 评论