opencv_python
文章平均质量分 87
专注于图像处理
Flying Bulldog
致力于研究计算机视觉、图像处理的一位帅气学者!
展开
-
图解 cv2.HoughLines & cv2.line 参数原理
利用cv.HoughLines寻找图像中霍夫直线,并用cv2.line绘制红色直线。拓展:计算整幅图像的平均灰度值,以及经过筛选的霍夫直线所有像素的平均灰度值。lines = cv2.HoughLines(image_edge, 1, np.pi/180, 180)image_edge:经过图像边缘处理后的图像1:像素之间的距离为1np.pi/180:直线角度范围,2pi/(pi/180) = 360°180:一条预选直线上的最少像素点个数原创 2022-09-02 15:28:07 · 7261 阅读 · 9 评论 -
关于视频流读取失败的时间问题解决 & 利用修饰符进行限时操作
项目中涉及读取视频流部分,但是读取视频流有时不是很顺利,总会导致软件的卡顿,现把解决此问题的心得分享给大家~@func_set_timeout() 装饰器的作用:如果修饰的函数在规定时间内没有运行成功,便会直接报错,如下面的代码的报错截图所示。融入到项目中,需要加入容错步骤(try),即如果 try 中的代码报错,Pycharm会直接跳过这部分代码,继续执行剩余部分的代码。...原创 2022-08-18 21:10:34 · 1693 阅读 · 4 评论 -
Opencv && 把视频裁剪成指定帧率的图像集
目的:视频FPS=30,需要把视频裁剪成 FPS=3 的图像集,即两分钟的视频裁剪出360张图像。FPS:每秒传输帧数(Frames Per Second)FPS 也可以理解为我们常说的“刷新率(单位为Hz)”,例如我们常在游戏里说的“FPS值”。FPS 是图像领域中的定义,是指画面每秒传输帧数,通俗来讲就是指动画或视频的画面数。FPS 是测量用于保存、显示动态视频的信息数量。每秒钟帧数越多,所显示的动作就会越流畅。通常,要避免动作不流畅的最低是30。某些计算机视频格式,每秒只能提供15原创 2022-05-20 20:44:04 · 1024 阅读 · 0 评论 -
imdecode、imencode、.tofile、fromfile 读取并保存 & 中文路径的中文名称的文件 & 一步一步解析并对比函数的结果
cv2.imdecode#从内存中的缓冲区读取图像。cv2.imencode# 将图像编码到内存缓冲区中。.tofile # 将数组中的数据以二进制格式写进文件np.fromfile # 从文本或二进制文件中的数据构造数组。imdecode(buf, flags) -> retvalimencode(ext, img[, params]) -> retval, buf原创 2022-05-14 10:40:55 · 5677 阅读 · 0 评论 -
查找和绘制轮廓(findContours and drawContours)&& 图像轮廓 (一) && cv2.boundingRect and cv2.rectangle
在使用函数 cv2.findContours() 查找图像轮廓时,需要注意以下问题:待处理的源图像必须是灰度二值图。因此,在通常情况下,都要预先对图像进行阈值分 割或者边缘检测处理,得到满意的二值图像后再将其作为参数使用。 在 OpenCV 中,都是从黑色背景中查找白色对象。因此,对象必须是白色的,背景必须 是黑色的。 在 OpenCV 4.x 版本中,函数 cv2.findContours() 仅有两个返回值。 本文用的 OpenCV 3.x版本,函数 cv2.findContours() ..原创 2022-05-06 22:33:31 · 1958 阅读 · 0 评论 -
支持向量机SVM原理解读,以及PyQt5融合SVM的代码实现,没有公式推导(已经很成熟,很难改公式,数学专业的可以推导学习)
用于划分不同类别的直线,就是分类器。在构造分类器时,非常重要的一项 工作就是找到最优分类器。离分类器最近的点到分类器的距离称为间隔(margin)。我们希望间隔尽可能地大, 这样分类器在处理数据时,就会更准确。离分类器最近的那些点叫作支持向量(support vector)。正是这些支持向量,决定了分类器 所在的位置。常见的核函数有:高斯核函数、多项式核函数、线性核函数。在更高维的空间,支持向量机会尝试寻找一个能够划分当前数据的超平面(hyperplane)。原创 2022-04-29 22:45:57 · 2662 阅读 · 3 评论 -
你真正了解图像金字塔吗?详细介绍拉普拉斯金字塔和高斯金字塔(pyrDown() and pyrUp()),参考《OpenCV轻松入门:面向Python》
向上采样指:调用函数pyrUp(),放大图像调用函数;向下采样指:调用函数pyrDown(),缩放图像。图像金字塔是由一幅图像的多个不同分辨率的子图所构成的图像集合(如下图所示)。该组图像是由单个图像通过不断地降采样所产生的,最小的图像可能仅仅有一个像素点。拉普拉斯金字塔中的第 i 层,等于“高斯金字塔中的第 i 层”与“高斯金字塔中的第 i+1 层的向上采样结果”之差。如下图所示,展示了高斯金字塔和拉普拉斯金字塔的对应关系。原创 2022-04-22 18:33:27 · 7026 阅读 · 0 评论 -
Opencv阈值处理(threshold、adaptiveThreshold and OTSU),大津法:OTSU(おおつ | ōtsu)
adaptiveMethod 来确定自适应阈值的计算方法,函数包含两种不同的方法。这两种方法都是逐个像素地计算自适应阈值,自适应阈值等于每个像素由参数 blockSize 所指定邻域的加权平均值减去常量 C。两种不同的方法在计算邻域的加权平均值时所采用的方式不同:1. cv2.ADAPTIVE_THRESH_MEAN_C:邻域所有像素点的权重值是一致的。2. cv2.ADAPTIVE_THRESH_GAUSSIAN_C:与邻域各个像素点到中心点的距离有关,通 过高斯方程得到各个点的权重值。原创 2022-04-22 00:06:39 · 6197 阅读 · 0 评论 -
Opencv色彩空间(GRAY、XYZ、HSV、YCrCb、HLS)展示,以及利用HSV标记指定的颜色
本文简单介绍了几个常见的色彩空间转换; 因为HSV应用非常广泛,所以单独介绍其强大的功能;本文用到的两个原始图像,如下图所示:目录一、Opencv色彩空间(GRAY、XYZ、HSV、YCrCb、HLS)(1)GRAY色彩空间(2)XYZ色彩空间(3)HSV色彩空间(4)YCrCb色彩空间(5)HLS色彩空间(6)代码实现:二、利用HSV标记指定的颜色(1)通过inRange函数锁定特定(2)通过基于掩码的按位与显示ROI(3)显示特定颜色...原创 2022-04-20 23:03:38 · 3964 阅读 · 3 评论 -
从传统算法过渡到深度学习(从经典GMM-BackgroundSubtractorMOG2到BackgroundMatting),运动目标检测实战
首先收集非常多的人物肖像数据集,然后搭建两个神经网络,即引入了一个base网络,它可以在较低的分辨率下预测alpha matte和前景层,以及一个预测误差图,它指定了可能需要高分辨率精细化的区域。然后,使用一个refinement网络将低分辨率的结果和原始图像结合在一起,只在选定区域生成高分辨率的输出。最后达到了惊人的效果原创 2022-04-19 16:05:30 · 1010 阅读 · 3 评论 -
常见的图像平滑处理算法的比较(均值滤波、高斯滤波、双边滤波),并解析语法格式
粗略的概念:图像平滑处理==图像模糊处理==图像滤波==图像质量增强;称呼是次要的,主要的是:使用算法处理问题 均值滤波只考虑空间信息,并且权重全为1 高斯滤波只考虑空间信息,但是权重比例有所改变 双边滤波既考虑空间信息,又考虑色彩信息(权重比例根据色彩信息确定)目录(1)均值滤波(2)高斯滤波(3)双边滤波(1)均值滤波概念:均值滤波是指用当前像素点周围 N*N 个像素值的均值来代替当前像素值。使用该方法遍历处理图像内的每一个像素点,即可完成整幅图像的均值滤波。如下图.原创 2022-04-17 13:48:27 · 6642 阅读 · 0 评论