当前位置:实例文章 » 其他实例» [文章]OpenCV for Python 入坑第二天 :图片处理(1)

OpenCV for Python 入坑第二天 :图片处理(1)

发布人:shili8 发布时间:2024-12-24 21:32 阅读次数:0

**OpenCV for Python 入坑第二天:图片处理(1)**

前言----

在上一篇文章中,我们已经简单地了解了 OpenCV 的基本概念和使用方法。今天,我们将继续深入探索 OpenCV 的图片处理功能。

###1. 图片读取首先,我们需要从文件系统中读取图片。OpenCV 提供了 `imread()` 函数来实现这一点。

import cv2#读取图片img = cv2.imread('image.jpg')

# 打印图片的尺寸和类型print(img.shape) # (高度, 宽度, 通道数)
print(img.dtype) # uint8

在上面的代码中,我们使用 `imread()` 函数从文件系统中读取一个名为 "image.jpg" 的图片。读取成功后,OpenCV 会将图片的像素值存储在一个 NumPy 数组中。

###2. 图片显示有了图片的 NumPy 数组,我们就可以使用 OpenCV 提供的 `imshow()` 函数来显示图片。
# 显示图片cv2.imshow('Image', img)
cv2.waitKey(0) # 等待用户按键cv2.destroyAllWindows() # 关闭所有窗口

在上面的代码中,我们使用 `imshow()` 函数创建一个名为 "Image" 的窗口,并将图片的 NumPy 数组传递给该函数。等待用户按键后,OpenCV 会关闭所有窗口。

###3. 图片转换有时,我们需要将图片从一种格式转换成另一种格式。OpenCV 提供了 `cvtColor()` 函数来实现这一点。
# 将图片从 BGR 转换为 RGBimg_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)

# 显示转换后的图片cv2.imshow('Image (RGB)', img_rgb)
cv2.waitKey(0) # 等待用户按键cv2.destroyAllWindows() # 关闭所有窗口

在上面的代码中,我们使用 `cvtColor()` 函数将图片从 BGR 格式转换为 RGB 格式。转换后,OpenCV 会创建一个名为 "Image (RGB)" 的窗口,并显示转换后的图片。

###4. 图片裁剪有时,我们需要从原来的图片中裁剪出一部分区域。OpenCV 提供了 `roi()` 函数来实现这一点。
# 裁剪图片的左上角和右下角坐标x1, y1 =100,100x2, y2 =300,300# 裁剪图片img_roi = img[y1:y2, x1:x2]

# 显示裁剪后的图片cv2.imshow('Image (ROI)', img_roi)
cv2.waitKey(0) # 等待用户按键cv2.destroyAllWindows() # 关闭所有窗口

在上面的代码中,我们使用 `roi()` 函数从原来的图片中裁剪出一部分区域。裁剪后,OpenCV 会创建一个名为 "Image (ROI)" 的窗口,并显示裁剪后的图片。

###5. 图片滤波有时,我们需要对图片进行滤波处理,以去除噪声或其他干扰。OpenCV 提供了 `blur()` 函数来实现这一点。
# 对图片进行均值滤波img_blur = cv2.blur(img, (5,5))

# 显示滤波后的图片cv2.imshow('Image (Blur)', img_blur)
cv2.waitKey(0) # 等待用户按键cv2.destroyAllWindows() # 关闭所有窗口

在上面的代码中,我们使用 `blur()` 函数对原来的图片进行均值滤波。滤波后,OpenCV 会创建一个名为 "Image (Blur)" 的窗口,并显示滤波后的图片。

###6. 图片阈值分割有时,我们需要对图片进行阈值分割,以将图片分成不同的区域。OpenCV 提供了 `threshold()` 函数来实现这一点。
# 对图片进行二值化阈值分割img_threshold = cv2.threshold(img,127,255, cv2.THRESH_BINARY)[1]

# 显示阈值分割后的图片cv2.imshow('Image (Threshold)', img_threshold)
cv2.waitKey(0) # 等待用户按键cv2.destroyAllWindows() # 关闭所有窗口

在上面的代码中,我们使用 `threshold()` 函数对原来的图片进行二值化阈值分割。分割后,OpenCV 会创建一个名为 "Image (Threshold)" 的窗口,并显示分割后的图片。

总结----

本文介绍了 OpenCV 的图片处理功能,包括图片读取、显示、转换、裁剪、滤波和阈值分割。这些功能可以帮助我们对图片进行各种操作,从简单的读取和显示到复杂的滤波和阈值分割。通过使用 OpenCV 的这些功能,我们可以实现各种图像处理任务,例如图像增强、目标检测和图像分类等。

参考资料----

* OpenCV 文档: />* OpenCV Python API 文档:

其他信息

其他资源

Top