opencv
文章平均质量分 83
OpenCV(Open Source Computer Vision Library)是一个广泛使用的开源计算机视觉库,提供了丰富的函数和工具用于图像处理、计算机视觉和机器学习等任务
小海聊智造
专注于设计和构建可扩展、高性能和可靠的软件系统。我拥有十年以上的行业经验,涵盖多个领域,包括企业级应用、云计算,AI智能 和大数据处理。
热衷于解决复杂的技术挑战,并通过创新的架构设计提供可持续的解决方案。我具备深厚的技术功底,熟悉多种编程语言和技术栈,如Java、Python、go等, 熟悉微服务架构和分布式系统设计。我善于分析业务需求和技术要求,提供可行的技术方案,并在团队中推动其实施和落地。
展开
-
基于 PyQt5 和 OpenCV 进行图像处理操作的GUI工具初版
为了实现一个基于 PyQt5 和 OpenCV 的图形用户界面(GUI),要求如下:左边显示加载的图片。中间提供各种对图片进行处理的操作方法(如灰度化、模糊处理等)。右边显示处理后的效果图。接下来我将详细讲解如何实现这个界面。原创 2024-09-17 11:01:05 · 1662 阅读 · 0 评论 -
opencv进阶09-视频处理cv2.VideoCapture示例(打开本机电脑摄像头)
cv2.VideoCapture 类的常用函数包括初始化、打开、帧捕获、释放、属性设置等,下面对这些函数进行简单的介绍。1. 初始化OpenCV 为 cv2.VideoCapture 类提供了构造函数,用于打开摄像头并完成摄像头的初始化工作。该函数的语法格式为:捕获对象=cv2.VideoCapture(“摄像头 ID 号”)式中:“摄像头 ID 号”就是摄像头的 ID 号码。需要注意的是,这个参数是摄像设备(摄像头)的 ID 编号,而不是文件名。其默认值为-1,表示随机选取一个摄像头;原创 2023-08-17 14:49:15 · 6801 阅读 · 0 评论 -
opencv-27 阈值处理 cv2.threshold()
它基于设定一个阈值来将像素值进行分类,将像素值大于或小于阈值的部分分为两个不同的类别,从而得到二值化的图像或进行二分类预测。图像二值化:将灰度图像转换为二值图像,其中像素值大于或等于阈值的部分设为一个值(通常为255),而小于阈值的部分设为另一个值(通常为0)。对于分类模型的输出概率:将模型输出的概率值与阈值进行比较,大于阈值的样本被划分为一个类别,小于阈值的样本被划分为另一个类别。对于回归模型的输出:将模型输出的连续值与阈值进行比较,大于阈值的样本被划分为一个类别,小于阈值的样本被划分为另一个类别。原创 2023-07-27 18:18:09 · 4672 阅读 · 0 评论 -
opencv案例03 -基于OpenCV实现二维码生成,发现,定位,识别
特别要关注的是图中三个黑色正方形区域,它们就是用来定位一个二维码的最重要的三个区域,我们二维码扫描与检测首先要做的就是要发现这三个区域,如果找到这个三个区域,我们就成功的发现一个二维码了,就可以对它定位与识别了。第三个code是二维码的原始排列,也就是每个点是0还是255的一个矩阵.白色是255,黑色是0.调用起来十分方便,而且如果不需要解码,只是想定位的话可以调用detect函数,返回结果就只有四个角点了.除了上面的qrcode 包可以识别二维码外,还有pyzbar 包 也可以进行二维码的识别。原创 2023-08-25 15:51:24 · 3021 阅读 · 0 评论 -
数据集收集列表(opencv,机器学习,深度学习)持续更新
opencv,机器学习,深度学习 数据集收集页原创 2023-08-24 17:06:59 · 1540 阅读 · 0 评论 -
opencv基础60-用分水岭算法cv2.distanceTransform()实现图像分割与提取原理及示例
在 OpenCV 中,可以使用函数 cv2.watershed()实现分水岭算法。在具体的实现过程中,还需要借助于形态学函数、距离变换函数 cv2.distanceTransform()、cv2.connectedComponents()来完成图像分割。下面对分水岭算法中用到的函数进行简单的说明。1. 形态学函数回顾在使用分水岭算法对图像进行分割前,需要对图像进行简单的形态学处理。先回顾一下形态学里的基本操作。(1)开运算开运算是先腐蚀、后膨胀的操作,开运算能够去除图像内的噪声。原创 2023-08-11 16:11:47 · 2909 阅读 · 0 评论 -
opencv基础59-霍夫变换原理讲解及示例-cv2.HoughLines()->(直线,圆形检测)
霍夫变换是一种在图像中寻找直线、圆形以及其他简单形状的方法。霍夫变换采用类似于投票的方式来获取当前图像内的形状集合,该变换由 Paul Hough(霍夫)于 1962 年首次提出。最初的霍夫变换只能用于检测直线,经过发展后,霍夫变换不仅能够识别直线,还能识别其他简单的图形结构,常见的有圆、椭圆等。原创 2023-08-11 11:33:02 · 5973 阅读 · 0 评论 -
opencv基础58 傅里叶变换cv2.dft()->(图像增强、图像去噪、边缘检测、特征提取、图像压缩和加密)
观察傅里叶变换前后图像的差异。原创 2023-08-10 18:20:20 · 2207 阅读 · 3 评论 -
opencv基础57-模板匹配cv2.matchTemplate()->(目标检测、图像识别、特征提取)
OpenCV 提供了模板匹配(Template Matching)的功能,它允许你在图像中寻找特定模板(小图像)在目标图像中的匹配位置。模板匹配在计算机视觉中用于目标检测、图像识别、特征提取等领域。: 首先,加载目标图像和要匹配的模板图像。: 选择适当的匹配方法,例如 cv2.TM_CCOEFF、cv2.TM_CCOEFF_NORMED、cv2.TM_CCORR、cv2.TM_CCORR_NORMED、cv2.TM_SQDIFF 或 cv2.TM_SQDIFF_NORMED。每种方法对应不同的匹配计算方式。原创 2023-08-10 15:46:05 · 7319 阅读 · 0 评论 -
opencv基础55-获取轮廓的特征值及示例
轮廓自身的一些属性特征及轮廓所包围对象的特征对于描述图像具有重要意义。本节介绍几个轮廓自身的属性特征及轮廓所包围对象的特征。原创 2023-08-10 13:32:36 · 1699 阅读 · 0 评论 -
opencv 基础54-利用形状场景算法比较轮廓-cv2.createShapeContextDistanceExtractor()
形状场景算法是一种用于比较轮廓或形状的方法。这种算法通常用于计算两个形状之间的相似性或差异性,以及找到最佳的匹配方式。: 首先,你需要准备两个形状的轮廓数据。轮廓可以表示为一系列的点坐标,或者更高级的表示方法,比如参数化的曲线等。: 对于每个形状,你可以使用形状描述符或特征提取算法,将轮廓数据转化为一组能够表征形状的数值特征。这些特征可以是形状的曲率、长度、角度等等。: 选择一个相似性度量方法来比较两个形状的特征。常见的方法包括欧氏距离、曼哈顿距离、余弦相似度等。原创 2023-08-10 10:31:13 · 1865 阅读 · 0 评论 -
opencv基础53-图像轮廓06-判断像素点与轮廓的关系(轮廓内,轮廓上,轮廓外)cv2.pointPolygonTest()
在实际使用中,如果想获取位于轮廓上的点,可以通过打印轮廓点集的方式获取。例如,本例中可以通过语句“print(hull)”获取轮廓上的点。在获取轮廓上的点以后,可以将其用作函数 cv2.pointPolygonTest()的参数,以测试函数返回值是否为零。在实际应用中,我们可以拿这个方法去判断模板检测的像素点是否在一个指定的ROI区域内,具体应用示例我们后续在实战篇中讲解并代码示例。在 OpenCV 中,函数 cv2.pointPolygonTest()被用来计算点到多边形(轮廓)的最短距离(也。原创 2023-08-10 09:59:36 · 3268 阅读 · 0 评论 -
opencv基础52-图像轮廓学习05-凸包获取-cv2.convexHull()
逼近多边形是轮廓的高度近似,但是有时候,我们希望使用一个多边形的凸包来简化它。凸包跟逼近多边形很像,只不过它是物体最外层的“凸”多边形。凸包指的是完全包含原有轮 廓,并且仅由轮廓上的点所构成的多边形。凸包的每一处都是凸的,即在凸包内连接任意两点 的直线都在凸包的内部。在凸包内,任意连续三个点的内角小于 180°。例如,在图 12-25 中,最外层的多边形为机械手的凸包,在机械手边缘与凸包之间的部分被称为凸缺陷(Convexity Defect),凸缺陷能够用来处理手势识别等问题。原创 2023-08-10 09:15:24 · 2272 阅读 · 0 评论 -
opencv基础51-图像轮廓04-轮廓多种图形拟合讲解及示例
轮廓拟合(Contour Fitting)是指在图像处理中,通过一些数学模型或曲线拟合方法来近似描述图像中的轮廓。图像中的轮廓是指物体的边界,轮廓拟合可以用于提取、描述和分析物体的形状。常用的轮廓拟合方法包括多项式拟合、贝塞尔曲线拟合、B样条曲线拟合等。这些方法可以用来找到一个与实际轮廓相符合的数学模型,从而更好地描述物体的形状。拟合后的曲线可以用于进一步的分析、测量、识别等任务。:通过对轮廓进行拟合,可以提取物体的形状特征,如圆形、椭圆形等。:通过拟合物体的轮廓,可以检测出物体的存在并确定其位置。原创 2023-08-09 16:21:28 · 2576 阅读 · 1 评论 -
opencv 基础50-图像轮廓学习03-Hu矩函数介绍及示例-cv2.HuMoments()
Hu 矩(Hu Moments)是由计算机视觉领域的科学家Ming-Kuei Hu于1962年提出的一种图像特征描述方法。这些矩是用于描述图像形状和几何特征的不变特征,具有平移、旋转和尺度不变性,适用于图像识别、匹配和形状分析等任务。Ming-Kuei Hu在其论文中提出了七个用于形状描述的独特特征,称之为Hu矩。这些特征通过一系列组合和归一化操作,能够捕获图像的不同几何属性,如大小、形状、旋转等,同时保持了对这些变换的不变性。这使得Hu矩在图像处理领域中成为了一种重要的特征表示方法。原创 2023-08-09 13:24:52 · 3738 阅读 · 2 评论 -
opencv基础49-图像轮廓02-矩特征cv2.moments()->(形状分析、物体检测、图像识别、匹配)
图像的质心(Centroid)是一个表示图像几何中心的概念。在二维平面上,图像的质心是指图像中所有像素的平均位置,即图像的重心或几何中心。对于二值图像(黑白图像),质心可以通过以下方式计算:将图像中的每个像素视为一个点,其坐标为 (x, y)。对于每个像素点,计算其 x 坐标的总和和 y 坐标的总和。用总和除以图像中像素的总数,得到 x 和 y 坐标的平均值,即为质心的坐标。质心的坐标表示图像在水平和垂直方向上的平均位置。原创 2023-08-09 10:49:53 · 6798 阅读 · 0 评论 -
opencv基础48-绘制图像轮廓并切割示例-cv2.drawContours()
也就是说,在函数执行完以后,image 不再是原始图像,而是包含了轮廓的图像。将函数 cv2.drawContours()的参数 thickness 的值设置为“-1”,可以绘制前景对象的实心轮廓。函数 cv2.drawContours()的参数 image 和返回值 image,在函数运算后的值是相同的。如果要绘制图像内的所有轮廓,需要将函数 cv2.drawContours()的参数 contourIdx 的值设置为“-1”。其中,函数的返回值为 image,表示目标图像,即绘制了边缘的原始图像。原创 2023-08-08 16:44:11 · 7383 阅读 · 0 评论 -
opencv基础47 图像轮廓查找cv2.findContours()介绍及示例
图像轮廓是指图像中物体边缘的连续性曲线。在计算机视觉和图像处理中,轮廓通常被用于检测物体、分割图像以及提取物体特征。图像轮廓是由一系列连续的像素点组成,这些像素点位于物体边界上。轮廓的特点是在物体和背景之间的边界位置,因此可以用来表示物体的形状和结构。轮廓可以是闭合的,也可以是开放的,具体取决于物体的形状。原创 2023-08-08 15:13:42 · 25962 阅读 · 4 评论 -
opencv基础46-图像金字塔02-拉普拉斯金字塔
前面我们介绍了高斯金字塔,高斯金字塔是通过对一幅图像一系列的向下采样所产生的。有时,我们希望通过对金字塔中的小图像进行向上采样以获取完整的大尺寸高分辨率图像,这时就需要用到拉普拉斯金字塔前面我们已经介绍过,一幅图像在经过向下采样后,再对其进行向上采样,是无法恢复为原始状态的。对此,我们也用程序进行了验证。向上采样并不是向下采样的逆运算。这是很明显的,因为向下采样时在使用高斯滤波器处理后还要抛弃偶数行和偶数列,不可避免地要丢失一些信息。原创 2023-08-08 13:24:19 · 1047 阅读 · 0 评论 -
opencv基础45-图像金字塔01-高斯金字塔cv2.pyrDown()
图像金字塔(Image> Pyramid)是一种用于多尺度图像处理和分析的技术,它通过构建一系列不同分辨率的图像,从而使得图像可以在不同尺度下进行处理和分析。图像金字塔在计算机视觉、图像处理和计算机图形学等领域中广泛应用,可以用于目标检测、特征提取、图像匹配、尺度不变特征变换(SIFT)等任务。图像金字塔通常分为两种类型:高斯金字塔和拉普拉斯金字塔。高斯金字塔(Gaussian Pyramid):高斯金字塔通过不断降采样(缩小)原始图像来构建,每一层图像都是前一层图像的一半大小。原创 2023-08-08 10:36:59 · 2603 阅读 · 0 评论 -
opencv基础44- Canny边缘检测详解-cv.Canny()
Canny边缘检测是一种经典的边缘检测算法,由John F.Canny在1986年提出。它被广泛应用于计算机视觉和图像处理领域,是一种多阶段的边缘检测算法,能够有效地检测图像中的边缘并抑制噪声。Canny边缘检测的主要步骤如下:噪声抑制:首先,通过使用高斯滤波器对图像进行平滑处理,以去除图像中的噪声。高斯滤波器可以有效地平滑图像,同时保持边缘的细节。计算梯度幅值和方向:使用Sobel算子计算图像中每个像素点的水平和垂直方向的梯度值。然后,根据梯度值计算每个像素点的梯度幅值和方向。原创 2023-08-07 13:42:07 · 12628 阅读 · 6 评论 -
opencv基础43- 图像梯度-Laplacian 算子( cv2.Laplacian)边缘检测基础
Sobel 算子、Scharr 算子、Laplacian 算子都可以用作边缘检测,它们的核如图 9-29 所示。Sobel 算子和 Scharr 算子计算的都是一阶近似导数的值。Sobel 算子= |左-右| / |下-上|Scharr 算子= |左-右| / |下-上|式中“|左-右|”表示左侧像素值减右侧像素值的结果的绝对值,“|下-上|”表示下方像素值减上方像素值的结果的绝对值。像素值的结果的绝对值。Laplacian 算子= |左-右| + |左-右| + |下-上| + |下-上|原创 2023-08-07 11:44:51 · 3286 阅读 · 0 评论 -
opencv基础 42- Scharr算子-cv2.Scharr()(边缘检测基础)
Scharr算子是用于计算图像梯度的一种常用算子,特别是在边缘检测任务中。它是Sobel算子的改进版本,旨在提供更加准确和敏感的边缘检测。在离散的空间上,有很多方法可以用来计算近似导数,在使用 3×3 的 Sobel 算子时,可能计算结果并不太精准。OpenCV 提供了 Scharr 算子,该算子具有和 Sobel 算子同样的速度,且精度更高。原创 2023-08-07 11:22:58 · 502 阅读 · 0 评论 -
opencv基础41-图像梯度-sobel算子详解cv2.Sobel()(边缘检测基础)
图像梯度是用于描述图像变化率的概念。在图像处理中,梯度指的是图像中每个像素的灰度值变化速率或方向。它常用于边缘检测和图像特征提取。一维图像的梯度表示为函数 f(x) 的导数,而在二维图像中,梯度是一个向量,包含两个分量:水平方向和垂直方向的灰度变化率。这两个分量的大小和方向可以用来确定图像中的边缘和纹理信息。在图像处理中,常用的算子如Sobel、Prewitt和Scharr等可以用于计算图像的梯度。梯度计算对于计算机视觉任务和图像处理中的特征提取非常有用。原创 2023-08-07 10:26:18 · 6594 阅读 · 0 评论 -
opencv基础40-礼帽运算(原始图像减去其开运算)cv2.MORPH_TOPHAT
将函数 cv2.morphologyEx()中操作类型参数 op 设置为“cv2.MORPH_TOPHAT”,可以实现礼帽运算。礼帽运算是用原始图像减去其开运算图像的操作。礼帽运算能够获取图像的噪声信息,或者得到比原始图像的边缘更亮的边缘信息。原创 2023-08-04 15:18:24 · 1416 阅读 · 0 评论 -
opencv基础 39 -形态学梯度运算(膨胀图像减腐蚀图像) cv2.morphologyEx(img, cv2.MORPH_GRADIENT, kernel)
形态学梯度运算是用图像的膨胀图像减腐蚀图像的操作,该操作可以获取原始图像中前景图像的边缘。原创 2023-08-04 09:03:24 · 461 阅读 · 0 评论 -
opencv基础-38 形态学操作-闭运算(先膨胀,后腐蚀)cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel)
闭运算是先膨胀、后腐蚀的运算,它有助于关闭前景物体内部的小孔,或去除物体上的小黑点,还可以将不同的前景图像进行连接。从图 8-17 可以看到,原始图像在经过膨胀、腐蚀后,实现了闭合内部小孔的目的。除此以外,闭运算还可以实现前景图像的连接。通过将中操作类型参数 op 设置为“cv2.MORPH_CLOSE”,可以实现闭运算。原创 2023-08-03 17:19:24 · 1522 阅读 · 0 评论 -
opencv37-形态学操作-开运算(先腐蚀后膨胀)cv2.morphologyEx()-参数 op 设置为“cv2.MORPH_OPEN”
腐蚀操作和膨胀操作是形态学运算的基础,将腐蚀和膨胀操作进行组合,就可以实现开运算、闭运算(关运算)、形态学梯度(MorphologicalGradient)运算、礼帽运算(顶帽运算)、黑帽运算、击中击不中等多种不同形式的运算。原创 2023-08-03 17:07:54 · 1248 阅读 · 0 评论 -
opencv36-形态学操作-膨胀 cv2.dilate()
膨胀操作是形态学中另外一种基本的操作。膨胀操作和腐蚀操作的作用是相反的,膨胀操作能对图像的边界进行扩张。膨胀操作将与当前对象(前景)接触到的背景点合并到当前对象内,从而实现将图像的边界点向外扩张。如果图像内两个对象的距离较近,那么在膨胀的过程中,两个对象可能会连通在一起。膨胀操作对填补图像分割后图像内所存在的空白相当有帮助。原创 2023-08-03 16:38:16 · 4472 阅读 · 0 评论 -
opencv35-形态学操作-腐蚀cv2.erode()
形态学,即数学形态学(Mathematical Morphology),是图像处理过程中一个非常重要的研 究方向。形态学主要从图像内提取分量信息,该分量信息通常对于表达和描绘图像的形状具有 重要意义,通常是图像理解时所使用的最本质的形状特征。例如,在识别手写数字时,能够通过形态学运算得到其骨架信息,在具体识别时,仅针对其骨架进行运算即可。形态学处理在视觉检测、文字识别、医学图像处理、图像压缩编码等领域都有非常重要的应用。原创 2023-08-03 15:53:00 · 3641 阅读 · 0 评论 -
opencv基础-34 图像平滑处理-2D 卷积 cv2.filter2D()
但是,我们有时希望使用特定的卷积核实现卷积操作,例如使用如下卷积核进行卷积操作。当然,本例中使用的卷积核比较简单,该滤波操作与直接使用均值滤波语句“r=cv2.blur(o,(5,5))”的效果是一样的。卷积操作将卷积核在图像上滑动,对每个局部区域进行元素级别的乘法和累加操作,得到输出图像的对应位置的像素值。自定义一个卷积核,通过函数 cv2.filter2D()应用该卷积核对图像进行滤波操作,并显示滤波结果。在 OpenCV 中,允许用户自定义卷积核实现卷积操作,使用自定义卷积核实现卷积操作的。原创 2023-08-03 13:28:56 · 2779 阅读 · 0 评论 -
opencv基础-34 图像平滑处理-双边滤波cv2.bilateralFilter()
双边滤波(BilateralFiltering)是一种图像处理滤波技术,用于平滑图像并同时保留边缘信息。与其他传统的线性滤波方法不同,双边滤波在考虑像素之间的空间距离之外,还考虑了像素之间的灰度值相似性。这使得双边滤波能够有效地去除噪声,同时保持图像的细节和边缘。双边滤波的核心思想是使用一个滑动窗口(卷积核)在图像上移动,并计算窗口中像素的加权平均值来替代中心像素的值。这里的权重包括两个部分:一个是空间权重,根据像素之间的空间距离计算;另一个是灰度值权重,根据像素之间的灰度值相似性计算。原创 2023-08-03 13:14:30 · 3194 阅读 · 1 评论 -
opencv基础-33 图像平滑处理-中值滤波cv2.medianBlur()
中值滤波是一种常见的图像处理滤波技术,用于去除图像中的噪声。它的原理是用一个滑动窗口(也称为卷积核)在图像上移动,对窗口中的像素值进行排序,然后用窗口中像素值的中值来替换中心像素的值。这样,中值滤波可以有效地消除图像中的椒盐噪声、激光斑点等离群值。中值滤波与前面介绍的滤波方式不同,不再采用加权求均值的方式计算滤波结果。它用邻域内所有像素值的中间值来替代当前像素点的像素值。原创 2023-08-03 10:31:51 · 2559 阅读 · 0 评论 -
opencv-32 图像平滑处理-高斯滤波cv2.GaussianBlur()
在进行均值滤波和方框滤波时,其邻域内每个像素的权重是相等的。在高斯滤波中,会将中心点的权重值加大,远离中心点的权重值减小,在此基础上计算邻域内各个像素值不同权重 的和。原创 2023-08-03 10:14:32 · 2179 阅读 · 0 评论 -
opencv 31-图像平滑处理-方框滤波cv2.boxFilter()
方框滤波(Box Filtering)是一种简单的图像平滑处理方法,它主要用于去除图像中的噪声和减少细节,同时保持图像的整体亮度分布。方框滤波的原理很简单:对于图像中的每个像素,将其周围的一个固定大小的邻域内的像素值取平均,然后将这个平均值赋值给当前像素。这个邻域通常是一个正方形,称为方框或窗口。方框滤波相当于用一个均值滤波器对图像进行滤波。与均值滤波的不同在于,方框滤波不会计算像素均值。在均值滤波中,滤波结果的像素值是任意一个点的邻域平均值,等于各邻域像素值之和除以邻域面积。原创 2023-08-02 14:54:00 · 1985 阅读 · 0 评论 -
opencv 30 -图像平滑处理01-均值滤波 cv2.blur()
图像平滑处理(ImageSmoothing)是一种图像处理技术,旨在减少图像中的噪声、去除细节并平滑图像的过渡部分。这种处理常用于预处理图像,以便在后续图像处理任务中获得更好的结果。均值滤波(Mean Filtering):用图像中像素周围区域的平均值来代替每个像素的值,从而平滑图像。均值滤波对去除高斯噪声等简单噪声类型效果较好。高斯滤波(Gaussian Filtering):使用高斯核来对图像进行滤波,高斯滤波在平滑图像的同时能够较好地保留图像的边缘信息。原创 2023-08-02 13:49:41 · 2946 阅读 · 0 评论 -
opencv基础-29 Otsu 处理(图像分割)
在实际应用中,我们根据图像的特点选择合适的阈值处理方法,以获得最佳的图像分割结果。但是,有时图像灰度级的分布是不均衡的,如果此时还将阈值设置为 127,那么阈值处理的结果就是失败的。Otsu 处理在图像分割中广泛应用,特别是在二值化图像中,可以有效地将图像分成前景和背景两部分,并且对于具有明显双峰直方图的图像效果较好。需要说明的是,在使用 Otsu 方法时,要把阈值设为 0。自适应阈值的计算过程是基于图像中每个像素周围的局部邻域进行的,可以通过选择不同的算法(例如平均值、高斯加权平均值等)来计算局部阈值。原创 2023-08-02 10:45:21 · 1550 阅读 · 0 评论 -
opencv-28 自适应阈值处理-cv2.adaptiveThreshold()
对于色彩均衡的图像,直接使用一个阈值就能完成对图像的阈值化处理。但是,有时图像的色彩是不均衡的,此时如果只使用一个阈值,就无法得到清晰有效的阈值分割结果图像。有一种改进的阈值处理技术,其使用变化的阈值完成对图像的阈值处理,这种技术被称为自适应阈值处理。在进行阈值处理时,自适应阈值处理的方式通过计算每个像素点周围临近区域的加权平均值获得阈值,并使用该阈值对当前像素点进行处理。与普通的阈值处理方法相比**,自适应阈值处理能够更好地处理明暗差异较大的图像。原创 2023-07-28 09:20:44 · 1414 阅读 · 0 评论 -
opencv-26 图像几何变换04- 重映射-函数 cv2.remap()
重映射(Remapping)是图像处理中的一种操作,用于将图像中的像素从一个位置映射到另一个位置。重映射可以实现图像的平移、旋转、缩放和透视变换等效果。它是一种基于像素级的图像变换技术,可以通过定义映射关系来改变图像的几何形状和外观。在重映射中,我们需要定义一个映射表(Map),这个映射表指定了源图像中每个像素点在目标图像中的位置。对于每个像素点 (x, y),映射表告诉我们在目标图像中的新位置 (x’, y’)。通过对所有像素点进行映射,我们就可以得到经过重映射变换后的新图像。原创 2023-07-26 14:47:28 · 4174 阅读 · 0 评论 -
opencv-25 图像几何变换04- 透视 cv2.warpPerspective()
透视是一种几何学概念,用于描述在三维空间中观察物体时,由于视角的不同而产生的变形效果。在现实世界中,当我们从不同的角度或位置观察物体时,它们会呈现出不同的形状和大小。这种现象被称为透视效果。远近关系:在视野范围内,离我们更远的物体看起来较小,而离我们更近的物体看起来较大。这是因为我们在观察时,远处的物体在视平面上的投影较小。平行线收敛:在透视效果下,远离观察者的平行线在视觉上会似乎收敛到一个点,被称为消失点。这使得在远处的物体线条会看起来更加趋向于一点。视角变化。原创 2023-07-26 14:04:29 · 2947 阅读 · 0 评论