OpenCV for Python 学习第五天:图片属性的获取
发布人:shili8
发布时间:2025-01-23 02:52
阅读次数:0
**OpenCV for Python 学习第五天:图片属性的获取**
在前几天,我们已经学习了如何使用 OpenCV 库读取、显示和保存图像。今天,我们将继续讨论图片属性的获取。
###1. 图片尺寸我们可以使用 `cv2.imread()` 函数读取一张图片,然后使用 `img.shape` 属性获取图片的尺寸。
import cv2#读取一张图片img = cv2.imread('image.jpg') # 获取图片尺寸print(img.shape)
输出结果为 `(height, width, channels)`,其中 `height` 和 `width` 分别是图片高度和宽度,`channels` 是图片的通道数(RGB 或 RGBA)。
###2. 图片大小我们可以使用 `cv2.imread()` 函数读取一张图片,然后使用 `img.size` 属性获取图片的大小。
import cv2#读取一张图片img = cv2.imread('image.jpg') # 获取图片大小print(img.size)
输出结果为 `(width * height * channels)`,其中 `width` 和 `height` 分别是图片宽度和高度,`channels` 是图片的通道数。
###3. 图片类型我们可以使用 `cv2.imread()` 函数读取一张图片,然后使用 `img.dtype` 属性获取图片的类型。
import cv2#读取一张图片img = cv2.imread('image.jpg') # 获取图片类型print(img.dtype)
输出结果为 `uint8` 或 `float32` 等类型,表示图片的数据类型。
###4. 图片通道数我们可以使用 `cv2.imread()` 函数读取一张图片,然后使用 `img.shape[2]` 属性获取图片的通道数。
import cv2#读取一张图片img = cv2.imread('image.jpg') # 获取图片通道数print(img.shape[2])
输出结果为 `3` 或 `4` 等数字,表示图片有多少个通道(RGB 或 RGBA)。
###5. 图片颜色空间我们可以使用 `cv2.cvtColor()` 函数将一张图片转换成不同的颜色空间,然后使用 `img.shape[2]` 属性获取新图像的通道数。
import cv2#读取一张图片img = cv2.imread('image.jpg') # 将图片转换成 HSV 颜色空间hsv_img = cv2.cvtColor(img, cv2.COLOR_BGR2HSV) # 获取新图像的通道数print(hsv_img.shape[2])
输出结果为 `3` 或 `4` 等数字,表示新图像有多少个通道。
###6. 图片旋转我们可以使用 `cv2.getRotationMatrix2D()` 函数生成一个旋转矩阵,然后使用 `cv2.warpAffine()` 函数将一张图片旋转到指定角度。
import cv2#读取一张图片img = cv2.imread('image.jpg') #生成旋转矩阵rotation_matrix = cv2.getRotationMatrix2D((img.shape[1] //2, img.shape[0] //2),45,1) # 将图片旋转到指定角度rotated_img = cv2.warpAffine(img, rotation_matrix, (img.shape[1], img.shape[0])) # 显示旋转后的图像cv2.imshow('Rotated Image', rotated_img) cv2.waitKey(0) cv2.destroyAllWindows()
输出结果为一张旋转后的图像。
###7. 图片缩放我们可以使用 `cv2.resize()` 函数将一张图片缩放到指定大小。
import cv2#读取一张图片img = cv2.imread('image.jpg') # 缩放图片到指定大小resized_img = cv2.resize(img, (800,600)) # 显示缩放后的图像cv2.imshow('Resized Image', resized_img) cv2.waitKey(0) cv2.destroyAllWindows()
输出结果为一张缩放后的图像。
以上就是 OpenCV for Python 学习第五天的内容。通过本篇文章,我们学习了如何获取图片属性、将图片转换成不同的颜色空间、旋转和缩放图片等知识。