6K+ 阅读量
我们使用 cv2.matchShapes() 函数来匹配两个图像形状。此函数返回一个度量值,表示图像形状之间的相似度。此函数使用 Hu 不变量来计算度量值。度量值越低,图像形状之间的相似度越高。在以下示例中,我们将匹配来自不同图像的形状以及来自单个图像的形状。语法我们使用以下语法来匹配两个图像形状:ret = cv2.matchShapes(cnt1, cnt1, 1, 0.0) 其中,cnt1 - 第一个图像形状的轮廓点。cnt2 - 第二个图像形状的轮廓点。... 阅读更多
1K+ 阅读量
我们可以从高斯金字塔中形成拉普拉斯金字塔。OpenCV 没有提供任何特定的函数来构建拉普拉斯金字塔。在拉普拉斯金字塔中,图像看起来只像是边缘图像。拉普拉斯金字塔用于图像压缩以及图像增强。拉普拉斯金字塔中的一层是由高斯金字塔中该层与其上一层在高斯金字塔中扩展版本之间的差值形成的。要创建高斯金字塔中的一层,我们应用 cv2.pyrDown() 或 cv2.pyrUp() 函数。步骤要构建三层拉普拉斯金字塔,请按照以下步骤操作:... 阅读更多
在许多情况下,我们需要使用同一图像的不同分辨率和大小。在图像金字塔的概念中,我们找到原始图像的不同分辨率和大小的图像。高斯金字塔是一种图像金字塔。要查找高斯金字塔,OpenCV 为我们提供了两个函数 cv2.pyrDown() 和 cv2.pyrUp()。函数 cv2.pyrDown() 通过删除输入图像中连续的行和列来降低分辨率。输出图像的宽度和高度变为输入图像的一半,面积减小到四分之一。函数 cv2.pyrUp() 通过添加... 阅读更多
746 阅读量
使用 Scharr 算子,我们可以使用一阶导数计算水平和垂直方向的图像梯度。梯度是针对灰度图像计算的。您可以使用 cv2.scharr() 方法对图像应用 Scharr 运算。语法以下语法用于使用 Scharr 导数计算图像梯度:cv2.Scharr(img, ddepth, xorder, yorder) 参数 img - 原始输入图像 ddepth - 输出图像的所需深度。它包含有关输出图像中存储的数据类型的信息。我们使用 cv2.CV_64F 作为 ddepth。它是一个 64 位... 阅读更多
5K+ 阅读量
要在图像上绘制折线,我们使用 cv2.polylines() 方法。我们可以在图像上绘制开放或封闭的折线。在绘制开放折线时,第一点和最后一点不会连接。语法cv2.polylines() 的语法如下:cv2.polylines(src, [pts], isClosed, color, thickness) 参数 src - 要在其上绘制折线的输入图像。pts - 点的数组列表。isClosed - 设置 isClosed=True 以绘制封闭折线,对于开放折线,设置 isClosed=False。color - 线的颜色。thickness - 线的厚度... 阅读更多
2K+ 阅读量
使用 Sobel 算子,我们可以计算水平和垂直方向的图像梯度。梯度是针对灰度图像计算的。Laplacian 算子使用二阶导数计算梯度。语法以下语法用于使用 Sobel 和 Laplacian 导数计算图像梯度:cv2.Sobel(img, ddepth, xorder, yorder, ksize) cv2.Laplacian(img, ddepth) 参数 img - 原始输入图像。ddepth - 输出图像的所需深度。它包含有关输出图像中存储的数据类型的信息。我们使用 cv2.CV_64F 作为 ddepth。它是一个 64 位浮点数... 阅读更多
770 阅读量
形态梯度计算为图像膨胀和腐蚀之间的差异。我们使用 cv2.morphologyEx() 方法计算形态梯度。形态梯度用于分割、边缘检测以及查找物体的轮廓。语法以下是此方法使用的语法:cv2.morphologyEx(img, op, kernel) 其中,img - 原始输入图像。op - 形态运算的类型。我们使用 cv2.MORPH_GRADIENT。kernel - 内核。我们可以将内核定义为 dtype 为 uint8 的全为 1 的 numpy 矩阵。步骤您可以使用以下步骤来... 阅读更多
在本教程中,我们将了解如何对图像应用两种不同的低通滤波器以平滑(去除图像噪声)。这两个滤波器是 filter2D 和 boxFilter。这些滤波器是空间中的二维滤波器。对图像应用二维滤波器也称为“二维卷积运算”。这些滤波器通常称为平均滤波器。这些滤波器的主要缺点是它们也会平滑图像中的边缘。如果您不想平滑边缘,则可以应用“双边滤波器”。双边滤波器操作保留边缘。语法以下是 Filter2D 和... 阅读更多
在透视变换中,即使在变换后,直线仍然保持直线。要应用透视变换,我们需要一个 3×3 透视变换矩阵。我们需要输入图像上的四个点和输出图像上相应的四个点。我们应用 cv2.getPerspectiveTransform() 方法来查找变换矩阵。其语法如下:M = cv2.getPerspectiveTransform(pts1, pts2) 其中,pts1 - 输入图像上四个点的数组,pts2 - 输出图像上相应四个点的数组。透视变换矩阵 M 是一个 numpy 数组。我们传递 M... 阅读更多
3K+ 阅读量
彩色(RGB)图像具有三个通道:红色、蓝色和绿色。OpenCV 中的彩色图像形状为 [H, W, C] 格式,其中 H、W 和 C 分别表示图像的高度、宽度和通道数。所有三个通道的值范围都在 0 到 255 之间。HLS 图像也具有三个通道:色相、亮度和饱和度通道。在 OpenCV 中,色相通道的值范围为 0 到 179,而亮度和饱和度通道的值范围为 0 到 255。在 OpenCV 中,使用 cv2.imread() 函数加载的彩色图像始终为 BGR 格式。要... 阅读更多