opencv-python
文章平均质量分 72
opencv 主要是opencv-python
熊猫Devin
懂从看开始,用从写开始,会从教开始!
展开
-
opencv-python基础篇目录(更新中2024-04-11)
【基础篇】opencv-python库 cv2.imread() 读取图片opencv-python库 cv2.imwrite() 保存图片opencv-python库 cv2显示图片opencv-python库 cv2 图形绘制 cv2.line()cv2.rectangle()cv2.circle()cv2.ellipse()cv2.polylines()cv2.putTextopencv-python库 cv2色彩空间转换 cv2.cvtColor()原创 2024-03-30 21:33:47 · 209 阅读 · 1 评论 -
opencv-python库 cv2.matchTemplate()模板匹配
cv2.matchTemplate() 是 OpenCV 库中的一个函数,用于在大图像中查找与小图像(或称为模板)匹配的区域。原创 2024-04-15 21:21:22 · 448 阅读 · 0 评论 -
opencv-python库 cv2.findContours()轮廓检测
在这个示例中,我们首先创建了一个简单的二值图像,然后使用 cv2.findContours() 查找轮廓,并使用 cv2.drawContours() 将轮廓绘制到原始图像上。最后,我们显示了包含轮廓的图像。cv2.findContours() 是 OpenCV 库中的一个函数,用于在二值图像中检测轮廓。这个函数会找到图像中所有连续的非零像素区域,并返回这些区域的轮廓。cv2.findContours() 函数返回三个值:修改后的图像(通常不关注这个返回值,因为输入图像会被修改)、轮廓列表和轮廓层次结构。原创 2024-04-10 22:35:27 · 567 阅读 · 0 评论 -
opencv-python库 cv2.Canny()边缘检测
Canny边缘检测是一种经典的边缘检测算法,由John F. Canny在1986年提出,被广泛应用于计算机视觉和图像处理领域2。噪声抑制。首先,通过使用高斯滤波器对图像进行平滑处理,以去除图像中的噪声。计算梯度幅值和方向。使用Sobel算子计算图像中每个像素点的水平和垂直方向的梯度值。然后,根据梯度值计算每个像素点的梯度幅值和方向。非极大值抑制。在计算得到的梯度幅值图像上进行非极大值抑制,将边缘宽度变窄,使边缘更加细化和明确。双阈值处理。原创 2024-04-10 22:31:22 · 474 阅读 · 0 评论 -
opencv-python库 cv2.Scharr()算子和cv2.Laplacian() 算子
由于 Scharr 算子的输出可能是负值,并且可能超出了标准的 0-255 显示范围,我们使用 cv2.convertScaleAbs 将输出转换为非负值,并将其缩放到可以显示的范围内。cv2.Scharr 是 OpenCV 中另一个用于边缘检测的算子,与 Sobel 算子类似,但是 Scharr 算子通常能得到更精确的结果,因为它使用了更小的核(通常是 3x3)并进行了更精确的计算。Scharr 算子也是基于图像强度的一阶导数,但它使用了不同的权重来近似导数的计算,从而提高了边缘检测的精度。原创 2024-04-07 20:25:25 · 937 阅读 · 0 评论 -
opencv-python库 cv2 Sobel算子
cv2.Sobel 的输出通常是一个与输入图像同样大小的图像,但是数据类型和范围可能会有所不同。通常,输出图像的数据类型会是 np.int16 或 np.float32,并且边缘检测的结果可能是负值。在这个例子中,cv2.CV_64F 被用作输出图像的深度,这是因为 Sobel 边缘检测的结果可能会包含负数,而 np.int16 类型无法表示负数。这个函数在处理需要显示的结果时特别有用,因为许多图像处理函数(如边缘检测)的输出可能是负数或大于255的值,而标准的图像显示需要数据在0到255的范围内。原创 2024-04-07 20:13:17 · 402 阅读 · 0 评论 -
opencv-python库 cv2开运算闭运算形态学梯度顶部帽底部帽
形态学梯度运算是用图像的膨胀图像减腐蚀图像的操作,该操作可以获取原始图像中前景图像的边缘。底帽运算是通过对图像执行闭运算(先膨胀后腐蚀)来平滑图像并移除较大尺度的特征,然后将闭运算结果与原始图像进行差分,以突出图像中的暗区域特征。底帽运算有助于突出原始图像中的暗区域特征,如阴影、均匀区域中的细微细节等,并可用于增强图像中的暗部细节,使其更加清晰。cv2形态学梯度是图像经过膨胀操作后的图像与经过腐蚀操作后的图像的差,可以用于抽出物体的边缘1。闭运算是图像形态学操作中的一种,是先膨胀后腐蚀的过程1。原创 2024-04-06 22:01:32 · 932 阅读 · 1 评论 -
opencv-python库 cv2腐蚀膨胀cv2.erode() cv2.dilate()
cv2.erode() 是 OpenCV (一个开源的计算机视觉和机器学习库) 中的一个函数,用于对图像进行腐蚀操作。腐蚀是一种形态学操作,通常用于减小图像中前景对象的尺寸或消除小的对象。在这个示例中,我们首先读取一个灰度图像,然后定义一个 5x5 的矩形核。接着,我们使用 cv2.dilate() 函数对图像进行两次膨胀操作,并将结果显示出来。在这个示例中,我们首先读取一个灰度图像,然后定义一个 5x5 的矩形核。接着,我们使用 cv2.erode() 函数对图像进行两次腐蚀操作,并将结果显示出来。原创 2024-04-06 21:47:24 · 692 阅读 · 0 评论 -
opencv-python库 cv2图像平滑处理 cv2.blur()&cv2.boxFilter()&cv2.GaussianBlur()&cv2.bilateralFilter()
cv2图像平滑处理是一种减少图像噪声、去除细节并平滑图像过渡部分的技术。均值滤波:均值滤波是最简单的平滑处理方法之一。它用图像中像素周围区域的平均值来代替每个像素的值。这种滤波方法对去除高斯噪声等简单噪声类型效果较好。在OpenCV中,可以使用cv2.blur()或cv2.boxFilter()函数来实现均值滤波。高斯滤波:高斯滤波是一种线性平滑滤波方法,它使用高斯函数对图像进行卷积。高斯滤波在平滑图像的同时能够较好地保留图像的边缘信息。原创 2024-04-04 22:29:12 · 1169 阅读 · 3 评论 -
opencv-python库 cv2图像二值化详解
在OpenCV中,cv2.threshold 函数用于对图像进行阈值处理。定阈二值化是用户把整幅图像上的每个像素点的灰度值设定为某一阈值,当灰度值大于该阈值时,其灰度值被视为"1",如果小于该阈值,其灰度值被视为"0",从而实现了图像二值化2。cv2.threshold 是 OpenCV(一个开源的计算机视觉库)中的一个函数,用于对图像进行阈值处理,也就是将图像转换为二值图像。图像二值化原理是通过设定一个阈值,将图像中的像素点的灰度值与阈值进行比较,大于阈值的像素点设置为白色,小于阈值的像素点设置为黑色。原创 2024-04-04 21:52:39 · 1893 阅读 · 0 评论 -
opencv-python库 cv2边界填充&resize图片
在OpenCV中,边界填充(Border Padding)是指在图像周围添加额外的像素,以扩展图像的尺寸或满足某些算法(如卷积)的要求。在这个例子中,cv2.resize() 函数将原始图像的尺寸调整为 800x600 像素,并使用双线性插值(cv2.INTER_LINEAR)来计算新的像素值。你可以根据需要调整输出图像的尺寸和插值方法。在OpenCV(cv2)中,cv2.resize() 函数用于调整图像的尺寸。这个函数可以增大或减小图像的宽度和高度,并且可以选择不同的插值方法来决定如何计算新的像素值。原创 2024-04-04 21:33:38 · 751 阅读 · 0 评论 -
opencv-python库 cv2ROI区域&颜色通道提取&合并颜色通道
selectROI 函数的第一个参数是窗口的名称,第二个参数是要从中选择ROI的图像,第三个参数是一个布尔值,如果为True,则允许用户调整选择框的大小。如果你有几个单通道图像(例如,从 cv2.split() 得到的),并且你想将它们合并成一个多通道图像(例如,一个彩色图像),那么你可以使用 cv2.merge()。然后,每个通道的图像数据都可以独立显示或处理。请注意,cv2.selectROI() 函数通常用于交互式选择ROI,但在实际应用中,你可能需要根据特定的条件或算法来自动计算ROI的坐标。原创 2024-04-04 21:11:49 · 863 阅读 · 0 评论 -
opencv-python库 cv2逐帧读取视频cv2.VideoCapture()
创建 VideoCapture 对象:使用 cv2.VideoCapture() 函数创建一个 VideoCapture 对象。cv2.VideoCapture 是 OpenCV(cv2)库中的一个类,用于捕获摄像头视频或读取视频文件。该方法返回两个值:一个布尔值(表示是否成功读取帧)和一个帧对象(如果成功读取)。释放 VideoCapture 对象:在完成视频捕获后,应使用 release() 方法释放 VideoCapture 对象,以释放资源。该方法接受一个参数,表示等待的毫秒数。原创 2024-04-04 20:57:10 · 998 阅读 · 1 评论 -
opencv-python库 cv2色彩空间转换 cv2.cvtColor()
然后,我们使用 cv2.cvtColor() 将这个图像转换为灰度图像,并使用 cv2.imshow() 显示转换后的图像。最后,我们使用 cv2.waitKey() 等待用户按键,并使用 cv2.destroyAllWindows() 关闭所有打开的窗口。在OpenCV中,cv2.cvtColor() 是一个非常重要的函数,用于在不同的颜色空间之间转换图像。由于不同的图像处理算法和颜色分析可能需要不同的颜色空间,因此 cv2.cvtColor() 提供了一个方便的方式来转换图像的颜色空间。原创 2024-03-30 08:28:56 · 327 阅读 · 0 评论 -
opencv-python库 cv2 图形绘制 cv2.line()cv2.rectangle()cv2.circle()cv2.ellipse()cv2.polylines()cv2.putText
最后,我们使用 cv2.imshow() 显示图像,并使用 cv2.waitKey() 和 cv2.destroyAllWindows() 来处理键盘输入和关闭窗口。在这个例子中,我们创建了一个黑色的空白图像,并使用 cv2.line() 在上面绘制了一条红色的直线,从左上角 (0, 0) 到右下角 (511, 511),直线的宽度设置为 5 像素。在这个例子中,我们创建了一个黑色的空白图像,并使用 cv2.polylines() 在上面绘制了一个绿色的多边形。线段的宽度设置为 3 像素,颜色为绿色。原创 2024-03-30 07:52:43 · 1487 阅读 · 0 评论 -
opencv-python库 cv2显示图片
在这个示例中,首先导入cv2模块,然后使用cv2.imread()函数读取图像文件,接着使用cv2.imshow()函数显示图像,cv2.waitKey(0)表示无限等待,直到有键被按下,最后使用cv2.destroyAllWindows()函数释放所有窗口。原创 2024-03-30 07:16:09 · 461 阅读 · 0 评论 -
opencv-python库 cv2.imwrite() 保存图片
如果 cv2.imwrite 函数调用失败,它不会返回错误信息。为了确保图像已成功保存,可以检查文件是否存在于指定路径,或者捕获可能发生的异常。cv2.imwrite 是 OpenCV 库中的一个函数,用于将图像数据保存为文件。使用 cv2.imwrite 时,请确保已正确安装 OpenCV 库,并且图像数据是有效的。原创 2024-03-30 07:05:10 · 1130 阅读 · 0 评论 -
opencv-python库 cv2.imread() 读取图片
请确保将’path_to_your_image.jpg’替换为你要读取的图像文件的实际路径。请确保将’path_to_your_image.jpg’替换为你要读取的图像文件的实际路径。需要注意的是,返回的NumPy数组并不包含图像的元数据(如EXIF信息),这些信息需要额外的函数或库来获取。cv2.imread函数返回的图片对象是一个NumPy数组,它包含图像的像素数据。该函数返回读取的图像,以NumPy数组的形式表示。flags:这是一个可选参数,表示读取图像的方式,默认为1。原创 2024-03-29 21:53:58 · 1096 阅读 · 0 评论