关于 OpenCV-Python 对图像的基本操作,我们通常会用到以下几个工具:
- 读取图像
 - 显示图像
 - 保存图像
 - 转换图像颜色空间
 - 裁剪图像
 - 调整图像大小
 - 增强对比度和亮度
 - 图像平移与旋转
 - 应用图像内核和滤波器
 - 绘制图形和文字
 
下面我们一一进行讲解:
读取图像
OpenCV-Python 可以读取许多图像格式,包括 JPG、PNG、BMP 和 GIF,通过 cv2.imread() 函数读取:
import cv2
image = cv2.imread("image.jpg")   # 读取图片,注意图片和脚本要在同一文件夹下
显示图像
读取图像之后,我们就可以通过 cv2.imshow() 函数将其显示出来:
import cv2
image = cv2.imread("image.jpg")
cv2.imshow("Image", image)
cv2.waitKey(0)    # 等待用户键盘输入
保存图像
如果我们需要将已经处理好的图像进行保存,可以用 cv2.imwrite() 函数:
import cv2
image = cv2.imread("image.jpg")
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
cv2.imwrite("gray_image.jpg", gray)
转换图像颜色空间
OpenCV-Python 可以将图像从一种颜色空间转换到另一种,例如将彩色图像转换为灰度图像:
import cv2
image = cv2.imread("image.jpg")
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
cv2.imshow("Gray Image", gray)
cv2.waitKey(0)
裁剪图像
通过 OpenCV-Python,我们可以对图像进行剪裁操作,只需指定感兴趣区域:
import cv2
image = cv2.imread("image.jpg")
cropped = image[100:500, 200:700]   # 裁剪出感兴趣区域
cv2.imshow("Cropped Image", cropped)
cv2.waitKey(0)
调整图像大小
通过 OpenCV-Python,我们也可以对图像进行尺寸调整:
import cv2
image = cv2.imread("image.jpg")
resized = cv2.resize(image, (800, 600))   # 调整图像大小为 800x600
cv2.imshow("Resized Image", resized)
cv2.waitKey(0)
增强对比度和亮度
OpenCV-Python 可以增强图像的对比度和亮度:
import cv2
import numpy as np
image = cv2.imread("image.jpg")
alpha = 1.5   # 控制对比度
beta = 25    # 控制亮度
new_image = np.clip(alpha * image + beta, 0, 255).astype(np.uint8)   # 增强对比度和亮度
cv2.imshow("New Image", new_image)
cv2.waitKey(0)
图像平移与旋转
OpenCV-Python 可以对图像进行平移和旋转:
import cv2
image = cv2.imread("image.jpg")
(rows, cols) = image.shape[:2]
# 平移图像
M = np.float32([[1, 0, 100], [0, 1, 50]])   # 定义平移矩阵
trans_image = cv2.warpAffine(image, M, (cols, rows))   # 平移图像
cv2.imshow("Translated Image", trans_image)
# 旋转图像
M = cv2.getRotationMatrix2D((cols/2, rows/2), 45, 1)   # 定义旋转矩阵
rotated_image = cv2.warpAffine(image, M, (cols, rows))   # 旋转图像
cv2.imshow("Rotated Image", rotated_image)
cv2.waitKey(0)
应用图像内核和滤波器
OpenCV-Python 可以应用各种内核和滤波器来使图像更清晰、更明亮、更高清:
import cv2
import numpy as np
image = cv2.imread("image.jpg")
# 应用平滑滤波器
kernel = np.ones((5, 5), np.float32) / 25   # 定义平滑内核
smoothed = cv2.filter2D(image, -1, kernel)   # 应用滤波器
cv2.imshow("Smoothed Image", smoothed)
# 应用边缘检测器
edges = cv2.Canny(image, 100, 200)   # 检测图像边缘
cv2.imshow("Edges", edges)
cv2.waitKey(0)
绘制图形和文字
OpenCV-Python 可以用于在图像上绘制线条、矩形和文字等:
import cv2
image = cv2.imread("image.jpg")
cv2.line(image, (0, 0), (400, 400), (0, 0, 255), 5)   # 绘制线条
cv2.rectangle(image, (50, 50), (200, 200), (255, 0, 0), 3)   # 绘制矩形
font = cv2.FONT_HERSHEY_SIMPLEX   # 定义字体
cv2.putText(image, "OpenCV-Python", (400, 50), font, 1, (0, 255, 0), 2)   # 绘制文字
cv2.imshow("Image", image)
cv2.waitKey(0)
以上就是 OpenCV-Python 对图像的基本操作代码的攻略了。
The End


大气响应式网络建站服务公司织梦模板
高端大气html5设计公司网站源码
织梦dede网页模板下载素材销售下载站平台(带会员中心带筛选)
财税代理公司注册代理记账网站织梦模板(带手机端)
成人高考自考在职研究生教育机构网站源码(带手机端)
高端HTML5响应式企业集团通用类网站织梦模板(自适应手机端)