4K+ 次观看
在仿射变换中,原始图像中的所有平行线在输出图像中仍然是平行的。要对图像应用仿射变换,我们需要输入图像上的三个点以及输出图像上对应的点。因此,首先,我们定义这些点并传递给函数 cv2.getAffineTransform()。它将创建一个 2×3 矩阵,我们将其称为变换矩阵 M。我们可以使用以下语法找到变换矩阵 M: M = cv2.getAffineTransform(pts1, pts2) 其中 pts1 是输入图像上三个点的数组,pts2 是... 阅读更多
3K+ 次观看
按位与运算在计算机视觉或图像处理中的一个非常重要的应用是创建图像蒙版。我们还可以使用该运算符向图像添加水印。图像的像素值表示为 numpy ndarray。像素值使用 8 位无符号整数 (uint8) 存储,范围为 0 到 255。两个图像之间的按位与运算是在对应图像的这些像素值的二进制表示上执行的。以下是对两个图像执行按位与运算的语法: cv2.bitwise_and(img1, img2, mask=None) ... 阅读更多
1K+ 次观看
要计算 OpenCV 中的直方图,我们使用 cv2.calcHist() 函数。在本教程中,我们将展示如何计算输入图像不同颜色(蓝色、绿色和红色)的直方图。要计算和绘制图像不同颜色的直方图,可以按照以下步骤操作: 步骤 导入所需的库 OpenCV 和 matplotlib。确保您已安装它们。 import cv2 import matplotlib.pyplot as plt 使用 cv2.imread() 方法读取图像。图像的宽度和高度必须相同。 img1 = cv2.imread('birds.jpg') 计算不同... 阅读更多
2K+ 次观看
要按一定角度执行图像旋转,我们首先需要获取旋转矩阵。要找到旋转矩阵,我们应用 cv2.getRotationMatrix2D() 函数。此函数的语法如下: M = cv2.getRotationMatrix2D(cr, degree, scale) 其中 cr 是旋转中心,degree 是图像旋转的角度,scale 是用于放大或缩小图像的比例因子。旋转矩阵 M 是一个 2×2 矩阵(numpy 数组)。我们将旋转矩阵 M 作为参数传递给 cv2.warpAffine() 函数。请参阅以下语法: 语法 cv2.warpAffine(img, M, (width, height)) 在这里,... 阅读更多
在特定方向上移动图像位置称为图像平移。要执行图像平移,我们应该首先了解什么是平移矩阵以及如何使用 OpenCV 和 NumPy 定义它。如果我们想在 (x, y) 方向上进行平移,设为 (tx, ty)。tx 是水平方向上的偏移量,ty 是垂直方向上的偏移量。使用 (tx, ty),我们可以定义平移矩阵 M 如下: M = np.float32([[1, 0, tx], [0, 1, ty]]) 平移矩阵 M 是类型为 np.float32 的 numpy 数组。... 阅读更多
Otsu 阈值化是一种阈值化技术。还有其他类型的阈值化技术,例如简单阈值化和自适应阈值化。简单阈值化技术使用全局阈值,而自适应阈值化技术对图像的不同区域使用不同的阈值。Otsu 阈值化技术使用全局阈值,但它不是选定的。它是自动确定的。它对双峰图像非常有效。双峰图像是指直方图有两个峰值的图像。阈值是这两个峰值中间的近似值。如果图像不是双峰的,则此阈值化... 阅读更多
自适应阈值化是一种阈值化技术。还有其他类型的阈值化技术,例如使用全局阈值的简单阈值化。但是,对于在不同区域具有不同光照条件的图像,使用全局阈值并不是一个好主意。自适应阈值化计算图像中一小块区域的阈值。因此,我们对图像中的不同区域具有不同的阈值,与简单阈值化技术相比,这可以产生更好的结果。有三个特殊参数:adaptive_method、block_size 和 const。请参阅以下给出的语法。语法 cv2.adaptiveThreshold(img, max_val, adaptive_method, ... 阅读更多
763 次观看
在简单阈值化中,我们定义一个阈值,如果像素值大于阈值,则将其分配一个值(例如 255),否则将其分配另一个值(例如 0)。可以使用函数 cv2.threshold() 应用简单阈值化。它接受四个参数 - 源图像、阈值、maxVal 和阈值类型。OpenCV 提供以下不同类型的阈值化: cv2.THRESH_BINARY - 在此阈值化中,大于阈值的像素值分配为 255,否则分配为 0。 cv2.THRESH_BINARY_INV - 它是 cv2.THRESH_BINARY 的反例。 cv2.THRESH_TRUNC - ... 阅读更多
OpenCV 中的图像是一个 NumPy 数组。我们可以使用 numpy 数组的属性访问图像属性。我们访问输入图像 img 的以下图像属性: 图像类型 - 图像的数据结构。OpenCV 中的图像是 numpy.ndarray。我们可以将其访问为 type(img)。 图像形状 - 它采用 [H, W, C] 格式,其中 H、W 和 C 分别是图像的高度、宽度和通道数。我们可以将其访问为 img.shape。 图像大小 - 它是图像中像素的总数... 阅读更多
13K+ 次观看
要查找颜色的 HSV 值,我们可以使用从 BGR 到 HSV 的颜色空间转换。首先,我们将颜色值定义为 BGR 格式的 numpy.ndarray,然后将其转换为 HSV 空间。我们还可以将 HSV 值的下限和上限分别查找为 [H-10, 100, 100] 和 [H+10, 255, 255]。这些下限和上限可用于跟踪特定颜色的对象。要查找颜色的 HSV 值,请按照以下步骤操作: 步骤 导入所需的库。在所有以下 Python 示例中,所需的 Python... 阅读更多