OpenCV
文章平均质量分 88
学习OpenCV时的一些笔记
CoderForge
昨日之深渊,今日之浅谈。路虽远,行则将至;事虽难,难则可成。
展开
-
如何旋转YUV图片数据且使用Qt显示
旋转YUV420 各种格式的数据图片总结。原创 2023-02-04 11:09:53 · 2784 阅读 · 0 评论 -
如何在VS2019上配置OpenCV
由于自己工作也经常需要配置OpenCV的环境,所以,就转载一下别人的文章,做一个保存,自己亲测可行,除了其中那个属性管理器原文说的不太对,我这里进行了修改,其他都是对的。转载 2022-12-01 09:31:23 · 4079 阅读 · 2 评论 -
OpenCV经典100题
熟读OpenCV100题,了解OpenCV的底层原理原创 2022-07-02 09:38:27 · 2575 阅读 · 1 评论 -
最新FFmpeg RTSP流抓取
FFmpeg抓取RTSP图像,进行图像分析。原创 2022-07-01 19:58:33 · 5611 阅读 · 11 评论 -
OpenCV4_0 API笔记
目录前言正文API1. cv.imread(const String & filename,int flags = IMREAD_COLOR)2. matplotlib.pyplot.imshow(X, cmap=None)3. np.shape4. cv.copyMakeBorder5.cv2.addWeighted( )函数说明6. cv2.resize( )函数说明参考前言正文API1. cv.imread(const String & filename,int fla原创 2021-09-01 20:17:18 · 369 阅读 · 0 评论 -
OpenCV4_0集锦笔记
这里做一个OpenCV学习笔记的合集。毕竟自己是搞视觉的,我觉得这些还是得懂得。不然,很麻烦。原创 2021-08-28 09:58:50 · 278 阅读 · 0 评论 -
雾看OpenCV(16)——分水岭算法
目录前言正文原理参考前言本节我们将要学习• 使用分水岭算法基于掩模的图像分割• 函数:cv2.watershed()正文原理任何一副灰度图像都可以被看成拓扑平面,灰度值高的区域可以被看成是 山峰,灰度值低的区域可以被看成是山谷。我们向每一个山谷中灌不同颜色的 水。随着水的位的升高,不同山谷的水就会相遇汇合,为了防止不同山谷的水 汇合,我们需要在水汇合的地方构建起堤坝。不停的灌水,不停的构建堤坝知 道所有的山峰都被水淹没。我们构建好的堤坝就是对图像的分割。这就是分水 岭算法的背后哲理。参考原创 2021-04-10 11:28:17 · 34 阅读 · 0 评论 -
雾看OpenCV(15)——Hough变换
目录前言正文参考前言目标• 理解霍夫变换的概念• 学习如何在一张图片中检测直线• 学习函数:cv2.HoughLines(),cv2.HoughLinesP()正文参考OpenCV-Python-Tutorial-中文版20160814.pdf原创 2021-04-06 21:33:49 · 54 阅读 · 0 评论 -
雾看OpenCV(13)——图像变换之傅里叶变换
目录前言正文参考前言正文参考OpenCV-Python-Tutorial-中文版20160814.pdf原创 2021-03-25 20:18:30 · 160 阅读 · 0 评论 -
雾看OpenCV(12-3)——2D直方图
目录前言正文使用cv.calcHist绘制2D直方图参考前言目标如何绘制 2D 直方图。对于彩色图像的直方图通常情况下我们需要考虑每个的颜色 (Hue)和饱和度(Saturation)。根据这两个特征绘制 2D 直方图。正文使用cv.calcHist绘制2D直方图步骤绘制图像的2D直方图,首先要将图像从BGR转为HSV.channels=[0,1] 因为我们需要同时处理 H 和 S 两个通道。bins=[180,256]H 通道为 180,S 通道为 256。range=[0,1原创 2021-03-17 20:49:12 · 489 阅读 · 0 评论 -
雾看OpenCV(12-2)——直方图的均衡化
目录前言正文参考前言正文参考OpenCV-Python-Tutorial-中文版20160814.pdf原创 2021-03-15 20:52:22 · 639 阅读 · 0 评论 -
雾看OpenCV(12-1)——直方图的计算,绘制与分析
目录前言正文基本概念函数cv.calcHist()参考前言目标• 使用 OpenCV 或 Numpy 函数计算直方图• 使用 Opencv 或者 Matplotlib 函数绘制直方图• 将要学习的函数有:cv2.calcHist(),np.histogram()作用:通过直方图你可以对整幅图像的灰度分布有一个整体的 了解。直方图的 x 轴是灰度值(0 到 255),y 轴是图片中具有同一个灰度值的 点的数目。正文基本概念BINS:把原来的 256 个值等分成 16 小组,取每组的 总和。原创 2021-03-12 20:41:04 · 269 阅读 · 0 评论 -
雾看OpenCV(11)——OpenCV中的轮廓
目录前言正文参考前言正文参考OpenCV-Python-Tutorial-中文版20160814.pdf原创 2021-03-03 20:16:57 · 694 阅读 · 1 评论 -
雾看Open(10)——图像金字塔与拉普拉斯金字塔
目录前言正文图像金字塔拉普拉斯金字塔code参考前言• 学习图像金字塔• 使用图像创建一个新水果:“橘子苹果”• 将要学习的函数有:cv2.pyrUp(),cv2.pyrDown()。正文图像金字塔所谓图像金字塔(简单来说就是同一图像的不同分辨率的子图集合)效果图拉普拉斯金字塔效果图相当于是把膨胀后的图减去原始图所得到的图。codeimport cv2 as cvimport numpy as npfrom matplotlib import pyplot as plt原创 2021-03-02 20:16:31 · 132 阅读 · 0 评论 -
雾看OpenCV(8)——形态学操作
目录前言正文腐蚀膨胀开运算闭运算形态学梯度礼帽闭帽code参考前言学习不同的形态学操作,例如腐蚀,膨胀,开运算,闭运算等我们要学习的函数有:cv2.erode(),cv2.dilate(),cv2.morphologyEx() 等正文腐蚀就像土壤侵蚀一样,这个操作会把前景物体的边界腐蚀掉(但是前景仍然 是白色)。这是怎么做到的呢?卷积核沿着图像滑动,如果与卷积核对应的原图 像的所有像素值都是 1,那么中心元素就保持原来的像素值,否则就变为零。效果图膨胀与腐蚀相反,与卷积核对应的原图像的.原创 2021-02-28 11:06:53 · 249 阅读 · 0 评论 -
雾看OpenCV(6)——椒盐噪声与高斯噪声
目录前言正文介绍代码参考前言这篇文章是为了后面那篇模糊处理做准备的,我们自己弄一些噪声加在图片上,然后用模糊来观测去除的效果。正文介绍(1) 椒盐噪声椒盐噪声也称脉冲噪声,它是一种随机出现的白点或者黑点,可能是亮的区域有黑色像素或是在暗的区域有白色像素(或是两者皆有)。图像模拟添加椒盐噪声是通过:随机获取像素点,并设置为高亮度点和低亮度点来实现的。(2) 高斯噪声高斯噪声是指概率密度函数服从高斯分布的一类噪声。特别的,如果一个噪声,它的幅度分布服从高斯分布,而它的功率谱密度服从均匀分布,原创 2021-02-27 20:57:24 · 925 阅读 · 1 评论 -
雾看OpenCV(7)——图像平滑
目录前言正文参考前言正文p78参考原创 2021-02-23 21:42:04 · 341 阅读 · 0 评论 -
雾看OpenCV(5)——图像阈值
目录前言正文简单阈值cv2.threshhold()参考前言本节你将学到简单阈值,自适应阈值,Otsu’s 二值化等 • 将要学习的函数有 cv2.threshold,cv2.adaptiveThreshold 等。正文简单阈值与名字一样,这种方法非常简单。但像素值高于阈值时,我们给这个像素 赋予一个新值(可能是白色),否则我们给它赋予另外一种颜色(也许是黑色)。 这个函数就是 cv2.threshhold()。效果图codeimport cv2import numpy as npfr原创 2021-02-22 21:45:33 · 277 阅读 · 1 评论 -
雾看OpenCV(4)——几何变换
目录前言正文扩展缩放函数字典cv.resize参考前言学习对图像进行各种几个变换,例如移动,旋转,仿射变换等。正文扩展缩放函数字典cv.resizeresize(InputArray src, OutputArray dst, Size dsize, double fx=0, double fy=0, int interpolation=INTER_LINEAR )InputArray src :输入,原图像,即待改变大小的图像;OutputArray dst:原创 2021-02-18 21:45:40 · 107 阅读 · 0 评论 -
雾看OpenCV(3)——颜色空间转换
目录前言正文颜色空间转换实时图像物体追踪HSV的具体含义图片图像物体追踪处理参考前言这部分的内容是OpenCV 中的图像处理.这里做一些笔记进行记录。正文颜色空间转换实时图像物体追踪codeimport cv2 as cvimport numpy as npcap = cv.VideoCapture(0)ret = cap.set(3,640)ret = cap.set(4,480)# 定蓝色的阈值# lower = np.array([110, 50, 50])# upp原创 2021-02-18 21:11:59 · 253 阅读 · 0 评论 -
雾看OpenCV(2)——Image Operator
目录前言正文读取图片,修改像素值为图像扩边参考前言这部分主要涉及的是图像的一些核心操作,这里进行一定的记录和总结。主要都是读取像素,修改像素的一些操作。正文读取图片,修改像素值效果图codeimport cv2 as cvimport numpy as npsrc = cv.imread("../images/lena.jpg")src[:,:,2] = 0cv.namedWindow("input image",cv.WINDOW_AUTOSIZE)cv.imshow('inpu原创 2021-02-18 21:11:19 · 241 阅读 · 0 评论 -
雾看OpenCV(1)——Gui特性
目录前言正文Gui操作图像的读取,写入matplotlib读取图片鼠標双击绘制圆用鼠标绘制曲线或图形滑动条做调色板参考前言经过一段时间的视频学习,现在开始正式转入书本知识的学习。使用的书本是这个:OpenCV-Python-Tutorial-中文版20160814正文Gui操作图像的读取,写入这部分简单,就直接都放在代码里面了。import cv2 as cvimport numpy as npfrom matplotlib import pyplot as plt#cv.IMREAD原创 2021-02-18 21:09:36 · 134 阅读 · 1 评论 -
OpenCV——分水岭算法
目录前言正文原理流程代码函数cv.pyrMeanShiftFilteringcv2.connectedComponents(image, connectivity, ltype)参考前言图像分割是按照一定的原则,将一幅图像分为若干个互不相交的小局域的过程,它是图像处理中最为基础的研究领域之一。目前有很多图像分割方法,其中分水岭算法是一种基于区域的图像分割算法,分水岭算法因实现方便,已经在医疗图像,模式识别等领域得到了广泛的应用。正文原理分水岭算法的原理网上讲的也都差不多。基本就是,你把图片想象成一原创 2021-02-07 20:08:24 · 2047 阅读 · 0 评论 -
OpenCV——开闭操作
目录前言正文开操作闭操作其他形态学操作顶帽闭帽梯度基本梯度内外梯度参考前言开操作和闭操作都是基于膨胀和腐蚀操作组合形成的。先腐蚀再膨胀就是开操作,先膨胀再腐蚀就是闭操作了。用开操作可以去除噪声,也可以提取水平或者垂直的直线。闭操作将错误分开成小片的物体从新连接成一个整体。而开操作则是去除一小块的噪点。开操作:开操作 = 腐蚀+膨胀 ,输入图像 + 结构元素作用:主要是应用在二值图像分析中,灰度图像亦可;用来消除小物体、在纤细点处分离物体、平滑较大物体的边界的同时并不明显改变其面积.提取水平或竖直的原创 2021-02-07 20:07:42 · 2412 阅读 · 0 评论 -
OpenCV——膨胀与腐蚀
目录前言正文腐蚀 erode函数erodegetStructuringElement膨胀 dilate函数dilate代码参考前言在OpenCV中,膨胀和腐蚀是基本的形态学操作,膨胀是使用像素邻域内的局部极大运算来膨胀一张图片,腐蚀是使用像素邻域内的局部极小运算来腐蚀一张图片,二者是一对相反的操作,但是都是对图像中的白色部分(高亮部分)而言的,膨胀用dilate()函数,腐蚀用erode()函数。正文腐蚀 erode效果图可以很明显的看到被腐蚀了。函数erodeerode( InputA原创 2021-02-02 21:34:46 · 4251 阅读 · 3 评论 -
OpenCV——轮廓发现
目录前言正文代码函数cv.GaussianBlurcv.thresholdfindContoursdrawContours参考前言从标题就可以看出我们写这篇文章的意义了,我们的目的就是为了通过对图像进行处理,绘制出图像中物体的轮廓。从而为后面,我们计算一些特殊图形的周长,面积打下基础。轮廓可以简单认为成将连续的点(连着边界)连在一起的曲线,具有相同 的颜色或者灰度。轮廓在形状分析和物体的检测和识别中很有用。为了更加准确,要使用二值化图像。在寻找轮廓之前,要进行阈值化处理或者 Canny 边界检测查找轮廓原创 2021-02-02 21:34:16 · 1177 阅读 · 0 评论 -
OpenCV——hough变换直线检测
目录前言正文原理函数CannyHoughLinescv.linecv.houghLineP结果参考文献前言霍夫变换(Hough Transform)是图像处理中的一种特征提取技术,可以识别图像中的几何形状。它将图像空间中的特征点映射到参数空间进行投票,通过检测累计结果的局部极值点得到一个符合某特定形状的点的集合。经典霍夫变换用来检测图像中的直线,后来霍夫变换扩展到任意形状物体的识别,多为圆和椭圆。它的抗噪声、抗形变能力较强。另一种直线提取的方法是对图像边缘点进行链码追踪,在得到的链码串中提取直线。霍夫原创 2021-02-02 21:33:45 · 2138 阅读 · 0 评论 -
OpenCV——Canny直线检测
目录前言正文原理高斯滤波过滤计算像素点的梯度方向(Sobel算子)非极大值抑制用双阈值算法检测和连接边缘通过抑制孤立的弱边缘最终完成边缘检测代码参考文献前言Canny边缘检测是从不同视觉对象中提取有用的结构信息并大大减少要处理的数据量的一种技术。我们这里主要用其来进行直线边缘检测。正文原理Canny边缘检测算法主要分为以下五个步骤(参考自:Canny边缘检测算法)使用高斯滤波器,以平滑图像,滤除噪声。计算图像中每个像素点的梯度强度和方向。应用非极大值抑制,以消除边缘检测带来的杂散响应。原创 2021-02-02 21:33:13 · 1437 阅读 · 0 评论 -
OpenCV——图像梯度
目录前言原理Sobel算子与Scharr算子Laplace算子自定义内核对图像进行卷积参考问下前言梯度简单来说就是求导,OpenCV 提供了三种不同的梯度滤波器,或者说高通滤波器: Sobel,Scharr 和 Laplacian。Sobel, Scharr 其实就是求一阶或二阶导数。 Scharr 是对 Sobel(使用小的卷积核求解求解梯度角度时)的优化。 Laplacian 是求二阶导数。图像上表现出来的就是提取图像的边缘(不管是横向的、纵向的、斜方向的等等)。原理Sobel算子与Scharr原创 2021-01-20 21:29:18 · 777 阅读 · 0 评论 -
OpenCV——图像金字塔与拉普拉斯金字塔
目录前言原理高斯金字塔拉普拉斯金字塔正文PyrDown降采样pyrUp函数升采样参考文献前言这篇文章主要讲的是图像金字塔,拉普拉斯金字塔。在说明什么是图像金字塔的过程之前,我们需要需要了解一个概念:尺度尺度,顾名思义就是说图像的尺寸和分辨率。在我们进行图像处理的时候,会经常对源图像的尺寸进行放大或者缩小的变换,进而转换为我们指定尺寸的目标图像。在对图像进行放大和缩小的变换的这个过程,我们称为尺度调整。而图像金字塔则是图像多尺度调整表达的一种重要的方式,图像金字塔方法的原理是:将参加融合的的每幅图像分原创 2021-01-20 21:28:47 · 348 阅读 · 1 评论 -
OpenCV——图像二值化
目录前言正文原理获取阈值的原理重要函数:cv.thresholdthreshold中type的参数全局阈值效果图函数如下局部阈值效果图图片全部像素的平均值作为阈值效果图方法代码超大图像二值化效果图方法函数代码参考博客前言二值图像就是将灰度图转化成黑白图,没有灰,在一个值之前为黑,之后为白有全局和局部两种在使用全局阈值时,我们就是随便给了一个数来做阈值,那我们怎么知道我们选取的这个数的好坏呢?答案就是不停的尝试。如果是一副双峰图像(简 单来说双峰图像是指图像直方图中存在两个峰)呢?我们岂不是应该在两个峰之原创 2021-01-20 21:28:16 · 3205 阅读 · 0 评论 -
OpenCV——模板匹配
目录前言正文代码理论参考文档前言模板匹配是一种在较大的图像中搜索和查找模板图像位置的方法。OpenCV带有一个函数cv.matchTemplate()用于此目的。它只是简单地将模板图像放在输入图像上(就像在2D卷积中那样),并在模板图像下对输入图像的模板和补丁进行比较。在OpenCV中实现了几种比较方法。它返回一个灰度图像,每个像素表示该像素区域与模板的匹配程度。如果输入图像大小是(W x H)、模板图像大小是(w x h),输出的图像会有大小(W-w+1,H-h+1)。一旦得到了结果,就可以使用cv原创 2021-01-20 21:27:20 · 405 阅读 · 0 评论 -
OpenCV——模糊操作
目录前言模糊操作模糊操作的基本原理三种模糊方式(参考:[搞懂三种模糊操作](https://www.pythonheidong.com/blog/article/134327/28172079273cc0f07581/))均值模糊中值模糊高斯模糊高斯噪声通过高斯模糊处理图片代码参考文章前言这部分是关于模糊操作的,因为自己也是新手,所以会对很多基础知识进行讲解。大佬勿喷~模糊操作模糊操作的基本原理1、1.基于离散卷积2.定义好每个卷积核3.不同卷积核得到不同的卷积效果4.模糊是卷积的一种表原创 2021-01-20 21:26:45 · 946 阅读 · 1 评论 -
OpenCV——直方图
目录前言直方图图像色深(bit depth)和位深度的区别图像直方图图像直方图中bin的概念直方图的应用直方图均匀化全局局部直方图比较直方图反向投影前言直方图完成下面的操作先,记得先pip install matplotlib图像色深(bit depth)和位深度的区别位深是指存储每个像素所用的位数,例如一副32位100100像素的图片,其大小为:100100*32/8=40000 个字节, 原来一直以为图像色深就是位深度,后来网上搜了下才知道这2个是完全不同的概念。图像深度是指存储每个象素原创 2021-01-20 21:25:43 · 1041 阅读 · 0 评论 -
OpenCV——边缘保留滤波(EPF)
目录前言正文高斯双边模糊均值迁移模糊前言高斯模糊只考虑了权重,只考虑了像素空间的分布,没有考虑像素值和另一个像素值之间差异的问题,如果像素间差异较大的情况下(比如图像的边缘),高斯模糊会进行处理,但是我们不需要处理边缘,要进行的操作就叫做边缘保留滤波(EPF)正文高斯双边模糊效果图这是第一种EPF处理方式,处理函数为:def bi_demo(image): dst = cv.bilateralFilter(image,0,100,15) cv.imshow("bi_demo"原创 2021-01-20 21:22:27 · 495 阅读 · 2 评论 -
关于CUDA10.1和CUDNN的下载与安装。
目录前言安装测试是否成功前言因为要引入tensorflow这个库,那么久不可避免的要使用CUDA和CUDNN。本来应该是没必要写一篇博客的,但实在是,CUDNN的下载太麻烦了。我是弄了好几个晚上才直到今天完成。之前它要求要填信息,填了,但也进不去。所以,这里把参考的那个博客放过来。给你们进行参考,应该可以基本完成这个的下载安装。安装Win10安装CUDA10和cuDNN.Windows 10 下安装CUDA10.1 + CUDNNWindows下 TensorFlow 的安装(包含:CUP版、原创 2020-11-02 21:45:39 · 567 阅读 · 0 评论