Python实现图像加雨
时间: 2024-05-27 17:06:51 浏览: 135
利用Python进行图像的加法,图像混合(附代码)
Python实现图像加雨需要用到OpenCV和NumPy库。以下是一个简单的实现过程:
1. 读取原始图片,将其转换为灰度图像。
2. 创建一个与原始图像大小相同的矩阵,填充随机噪声。
3. 将随机噪声矩阵与原始图像灰度值相加,得到一张有噪声的图像。
4. 使用高斯滤波器平滑噪声图像,减小噪声的影响。
5. 创建一个与原始图像大小相同的矩阵,填充垂直方向的线性降雨效果。
6. 将降雨矩阵与噪声图像相加,得到一张有降雨效果的图像。
以下是示例代码:
```
import cv2
import numpy as np
# 读取原始图像并转换为灰度图像
img = cv2.imread('original_image.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 创建随机噪声矩阵并与原始图像相加
noise = np.zeros(gray.shape, dtype=np.uint8)
cv2.randu(noise, 0, 255)
noisy_img = cv2.add(gray, noise)
# 使用高斯滤波器平滑噪声图像
blurred_img = cv2.GaussianBlur(noisy_img, (5, 5), 0)
# 创建降雨矩阵并与噪声图像相加
rain = np.zeros(gray.shape, dtype=np.uint8)
cv2.line(rain, (0, 0), (gray.shape, gray.shape), (255, 255, 255), 1)
rainy_img = cv2.add(blurred_img, rain)
# 显示结果图像
cv2.imshow('Rainy Image', rainy_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
阅读全文