1、读入一幅清晰图像1, 产生由于运动造成的模糊图像2,运动位移设置为 20 个像 素,运动角度为 30 度,并显示出图像1和图像python代码
时间: 2024-10-25 13:05:44 浏览: 65
在Python中,我们可以使用OpenCV库来创建这种效果。首先,你需要安装cv2库,如果没有安装,可以使用`pip install opencv-python`命令安装。
下面是一个简单的例子,展示如何通过OpenCV生成由运动引起的模糊图像:
```python
import cv2
import numpy as np
# 读取原图
image1 = cv2.imread('path_to_your_image1.jpg') # 替换 'path_to_your_image1.jpg' 为实际图片路径
if image1 is None:
print("Error loading image.")
else:
gray_image1 = cv2.cvtColor(image1, cv2.COLOR_BGR2GRAY) # 转换成灰度图像便于处理
# 定义运动参数
motion_displacement = 20 # 水平和垂直方向上移动像素数
motion_angle_degrees = 30 # 运动的角度
# 创建旋转矩阵
M = cv2.getRotationMatrix2D((image1.shape[1] // 2, image1.shape[0] // 2), motion_angle_degrees, 1)
# 计算平移后的坐标
shift = (motion_displacement * np.cos(np.radians(motion_angle_degrees)),
motion_displacement * np.sin(np.radians(motion_angle_degrees)))
# 执行旋转和平移操作
rows, cols = image1.shape[:2]
translated_M = np.float32([[1, 0, shift[0]], [0, 1, shift[1]]]) @ M
warped_image = cv2.warpAffine(gray_image1, translated_M, (cols, rows))
# 生成模糊图像,这里可以用高斯滤波器模拟模糊
blur_kernel_size = 5 # 高斯滤波器大小,可根据需要调整
blurred_image = cv2.GaussianBlur(warped_image, (blur_kernel_size, blur_kernel_size), 0)
# 显示原始图像和模糊图像
cv2.imshow("Original Image", image1)
cv2.imshow("Motion Blurred Image", blurred_image)
cv2.waitKey(0) # 等待用户按键
cv2.destroyAllWindows()
阅读全文