利用opencv读入图片,然后进行图片裁剪,图片旋转,图片平移操作,并分别显示操作后的结果,写出python代码
时间: 2024-10-09 11:10:09 浏览: 39
read_opencv_python读取图片_源码
在Python中,我们可以利用OpenCV库完成图片的读取、裁剪、旋转和平移等基本操作。以下是一个示例代码,展示了如何实现这些功能:
```python
import cv2
import numpy as np
# 1. 读取图片
img = cv2.imread('example.jpg') # 替换为你想要处理的图片路径
if img is None:
print("无法打开图片")
else:
height, width, _ = img.shape
# 2. 图片裁剪
x, y, w, h = 50, 50, 200, 200 # 裁剪区域左上角坐标及宽度高度
cropped_img = img[y:y+h, x:x+w]
cv2.imshow('Cropped Image', cropped_img)
cv2.waitKey(0)
# 3. 图片旋转 (顺时针90度为例)
rotation_matrix = cv2.getRotationMatrix2D((width / 2, height / 2), 90, 1) # 中心点和缩放比例1保持原尺寸
rotated_img = cv2.warpAffine(img, rotation_matrix, (width, height))
cv2.imshow('Rotated Image', rotated_img)
cv2.waitKey(0)
# 4. 图片平移 (水平向右移动50像素)
translation_matrix = np.float32([[1, 0, 50], [0, 1, 0]]) # 第二列对应平移方向和距离
translated_img = cv2.warpAffine(img, translation_matrix, (width, height))
cv2.imshow('Translated Image', translated_img)
cv2.waitKey(0)
cv2.destroyAllWindows() # 关闭所有窗口
```
在这个代码片段中,我们首先读取图片,然后对图片进行指定位置的裁剪、顺时针旋转90度以及水平向右平移50像素的操作,并分别显示处理后的图像。
阅读全文