当前位置:实例文章 » 其他实例» [文章]opencv 基础图像操作-彩色图像

opencv 基础图像操作-彩色图像

发布人:shili8 发布时间:2024-11-16 02:43 阅读次数:0

**OpenCV 基础图像操作 - 彩色图像**

在 OpenCV 中,图像是使用 NumPy 数组来表示的。每个像素点都对应一个3 元组,代表红、绿和蓝颜色的值(RGB)。本文将介绍 OpenCV 中彩色图像的基本操作。

###1. 图像读取首先,我们需要加载一个彩色图像。OpenCV 提供了 `imread()` 函数来读取图像。

import cv2#读取一张彩色图像img = cv2.imread('image.jpg')

# 检查是否成功读取图像if img is None:
 print("无法读取图像")
else:
 print("图像已加载")

###2. 图像显示要查看图像,我们可以使用 `imshow()` 函数。
# 显示图像cv2.imshow('Image', img)
cv2.waitKey(0) # 等待按键输入cv2.destroyAllWindows() # 关闭所有窗口

###3. 图像大小和类型我们可以使用 `shape` 属性来获取图像的大小,使用 `dtype` 属性来获取图像的数据类型。
# 获取图像大小和类型print("图像大小:", img.shape)
print("图像类型:", img.dtype)

###4. 图像转换OpenCV 提供了多种方法来转换图像。例如,我们可以使用 `cvtColor()` 函数将彩色图像转换为灰度图像。
# 将彩色图像转换为灰度图像gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

# 显示灰度图像cv2.imshow('Gray Image', gray)
cv2.waitKey(0) # 等待按键输入cv2.destroyAllWindows() # 关闭所有窗口

###5. 图像裁剪我们可以使用 `roi()` 函数来从原图像中裁取一块区域。
# 裁取一块区域x, y, w, h =100,100,200,200roi = img[y:y+h, x:x+w]

# 显示裁取区域cv2.imshow('ROI', roi)
cv2.waitKey(0) # 等待按键输入cv2.destroyAllWindows() # 关闭所有窗口

###6. 图像旋转我们可以使用 `getRotationMatrix2D()` 函数来计算旋转矩阵,然后使用 `warpAffine()` 函数来实现图像的旋转。
# 旋转图像angle =45center = (img.shape[1] //2, img.shape[0] //2)
M = cv2.getRotationMatrix2D(center, angle,1.0)
rotated_img = cv2.warpAffine(img, M, (img.shape[1], img.shape[0]))

# 显示旋转后的图像cv2.imshow('Rotated Image', rotated_img)
cv2.waitKey(0) # 等待按键输入cv2.destroyAllWindows() # 关闭所有窗口

###7. 图像缩放我们可以使用 `resize()` 函数来实现图像的缩放。
# 缩放图像scale =0.5resized_img = cv2.resize(img, (int(img.shape[1] * scale), int(img.shape[0] * scale)))

# 显示缩放后的图像cv2.imshow('Resized Image', resized_img)
cv2.waitKey(0) # 等待按键输入cv2.destroyAllWindows() # 关闭所有窗口

以上就是 OpenCV 中彩色图像的基本操作。这些函数和方法可以帮助你处理各种类型的图像,包括读取、显示、转换、裁剪、旋转和缩放等。

其他信息

其他资源

Top