OpenCV-Python实战(1)——OpenCV简介与图像处理基础

作者:rousong2024.02.17 06:11浏览量:5

简介:本文将介绍OpenCV库的基础知识,包括其功能、安装以及在Python中的使用。我们将通过简单的示例来了解如何读取、显示和保存图像,以及进行一些基本的图像处理操作。

OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和机器学习软件库,广泛应用于图像处理和计算机视觉领域。它提供了大量的图像处理和计算机视觉功能,如图像读取、显示、保存、图像变换、特征提取等。这些功能使得OpenCV成为研究和开发计算机视觉应用的强大工具。

首先,我们需要安装OpenCV-Python库。你可以使用pip命令在命令行中安装:

  1. pip install opencv-python

安装完成后,我们就可以在Python中导入OpenCV库并使用其中的函数了。

接下来,我们将通过一些示例来了解如何使用OpenCV进行图像处理。

读取和显示图像

首先,我们需要读取一张图像。OpenCV提供了imread()函数来读取图像:

  1. import cv2
  2. # 读取图像
  3. img = cv2.imread('image.jpg')

然后,我们可以使用imshow()函数来显示图像:

  1. # 显示图像
  2. cv2.imshow('image', img)

最后,我们需要等待用户按下任意键关闭窗口:

  1. cv2.waitKey(0)
  2. cv2.destroyAllWindows()

保存图像

如果你想将处理后的图像保存到文件中,可以使用imwrite()函数:

  1. # 保存图像
  2. cv2.imwrite('output.jpg', img)

图像处理基础

OpenCV提供了许多函数来对图像进行基本的处理,如缩放、旋转、剪裁、翻转等。以下是一些示例:

  • 缩放图像:resize()函数可以用来改变图像的大小。例如,将图像大小调整为原始大小的50%:
    1. # 缩放图像为原图的50%大小
    2. img_resized = cv2.resize(img, None, fx=0.5, fy=0.5)
  • 旋转图像:getRotationMatrix2D()warpAffine()函数可以用来旋转图像。例如,将图像逆时针旋转45度:
    1. # 获取旋转矩阵
    2. M = cv2.getRotationMatrix2D((img.shape[1]/2, img.shape[0]/2), -45, 1)
    3. # 应用旋转矩阵并保存结果
    4. img_rotated = cv2.warpAffine(img, M, (img.shape[1], img.shape[0]))
  • 剪裁图像:copyMakeBorder()函数可以用来在图像周围添加边框,从而实现剪裁效果。例如,剪裁出一个宽为100像素,高为100像素的区域:
    1. # 在图像周围添加边框以实现剪裁效果,最后得到的图像大小为100x100像素。注意这里的参数需要根据实际情况调整。
    2. img_cropped = cv2.copyMakeBorder(img, 50, 50, 50, 50, cv2.BORDER_CONSTANT)
  • 翻转图像:flip()函数可以用来翻转图像。例如,将图像水平翻转:
    1. # 水平翻转图像(水平翻转)或垂直翻转(flipCode=1)或同时水平和垂直翻转(flipCode=0)
    2. img_flipped = cv2.flip(img, 1) # 水平翻转(flipCode=1)或垂直翻转(flipCode=0)或同时水平和垂直翻转(flipCode=1)或同时水平和垂直翻转(flipCode=0))
    以上就是OpenCV的一些基本操作。当然,OpenCV还提供了许多更高级的图像处理和计算机视觉功能,如特征检测、目标跟踪等。在后续的文章中,我们将继续介绍这些高级功能的应用和实现。
article bottom image

相关文章推荐

发表评论