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 中彩色图像的基本操作。这些函数和方法可以帮助你处理各种类型的图像,包括读取、显示、转换、裁剪、旋转和缩放等。