使用python给彩色照片在hsv形式上加高斯噪声,用matplotlib展示hsv三个通道后,转变为RGB展示
时间: 2024-05-08 14:19:48 浏览: 133
可以使用以下代码给彩色照片在hsv形式上加高斯噪声:
```python
import cv2
import numpy as np
# 加载彩色照片
img = cv2.imread('image.jpg')
# 转换为hsv格式
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
# 添加高斯噪声
noise = np.random.normal(0, 25, hsv.shape)
hsv_noise = hsv.astype('float64') + noise
hsv_noise = np.clip(hsv_noise, 0, 255).astype('uint8')
```
接下来使用matplotlib展示hsv三个通道后,转变为RGB展示:
```python
import matplotlib.pyplot as plt
# 分离hsv三个通道
h, s, v = cv2.split(hsv_noise)
# 展示h, s, v三个通道
fig, (ax1, ax2, ax3) = plt.subplots(ncols=3, figsize=(8, 2))
ax1.imshow(h, cmap='hsv')
ax1.set_title('Hue')
ax1.axis('off')
ax2.imshow(s, cmap='gray')
ax2.set_title('Saturation')
ax2.axis('off')
ax3.imshow(v, cmap='gray')
ax3.set_title('Value')
ax3.axis('off')
plt.show()
# 转换回RGB格式
img_noise = cv2.cvtColor(hsv_noise, cv2.COLOR_HSV2RGB)
# 展示加噪后的图片
plt.imshow(img_noise)
plt.axis('off')
plt.show()
```
运行代码后,可以看到展示的h, s, v三个通道以及加噪后的图片。
阅读全文