建站卖素材,楚雄市城乡建设局网站,wap网站生成,河北电子网站建设计算机视觉 文章目录 计算机视觉前言一、实现步骤二、实现总结 前言
利用HSV和YIQ颜色空间处理图像噪声。在本次实验中#xff0c;我们使用任意一张图片#xff0c;通过RGB转HSV和YIQ的操作#xff0c;加入了椒盐噪声并将其转换回RGB格式#xff0c;最终实现对图像的噪声处…计算机视觉 文章目录 计算机视觉前言一、实现步骤二、实现总结 前言
利用HSV和YIQ颜色空间处理图像噪声。在本次实验中我们使用任意一张图片通过RGB转HSV和YIQ的操作加入了椒盐噪声并将其转换回RGB格式最终实现对图像的噪声处理。
一、实现步骤
1、将RGB图像转换为HSV和YIQ格式 我们使用cv2中的cvtColor函数将RGB图像转换为HSV和YIQ格式。COLOR_RGB2HSV和COLOR_RGB2YCrCb表示转换为对应格式。 2、在HSV的H通道加入椒盐噪声 在HSV格式的图像中我们选择了H通道。通过随机选择像素点的方式在该像素点的H通道上加入椒盐噪声。具体操作是将该像素点的H值设置为255。 3、在YIQ的Y通道加入椒盐噪声 在YIQ格式的图像中我们选择了Y通道。同样的方式通过随机选择像素点的方式在该像素点的Y通道上加入椒盐噪声。 4、将加入椒盐噪声的H通道、Y通道分别显示 接下来我们分别显示加入了椒盐噪声的HSV和YIQ格式图像的H通道。使用matplotlib的imshow函数并将显示效果设置为灰度图。 5、合成加入椒盐噪声的HSV、YIQ格式图像 我们将加入了椒盐噪声的HSV、YIQ格式的图像分别转换回RGB格式方便后续显示。 6、分别将R、G、B通道显示 接下来我们分别显示原始RGB图像的R、G、B通道。使用matplotlib的imshow函数并将显示效果设置为灰度图。 7、分别将H、S、V通道显示 接下来我们分别显示加入椒盐噪声的HSV图像的H、S、V通道。其中H通道使用hsv色彩空间来显示而S和V通道使用灰度图来显示。 8、显示加入椒盐噪声的HSV、YIQ格式图像 接下来我们使用matplotlib显示加入椒盐噪声的HSV和YIQ格式的图像。 9、将合成的加入椒盐噪声的HSV、YIQ格式图像分别转换为RGB格式并显示
最后我们将加入了椒盐噪声的HSV和YIQ格式的图像转换回RGB格式并使用matplotlib进行显示。
二、实现
import numpy as np
import cv2
from matplotlib import pyplot as pltimg cv2.imread(test.png)
img cv2.cvtColor(img,cv2.COLOR_BGR2RGB)# 显示原图
plt.imshow(img)
plt.title(Original RGB image)
plt.show()# 将RGB图像转换为HSV和YIQ格式
img_hsv cv2.cvtColor(img,cv2.COLOR_RGB2HSV)
img_yiq cv2.cvtColor(img,cv2.COLOR_RGB2YCrCb)# 在HSV的H通道加入椒盐噪声
img_hsv_salt img_hsv.copy()
# 获取图像行数、列数和通道数信息
rows, cols, _ img_hsv_salt.shape
# 在图像上随机选择100个像素点并将其H通道值设置为255模拟椒盐噪声
for i in range(100):x np.random.randint(0, rows)y np.random.randint(0, cols) # 将选定像素点的H通道值设为255img_hsv_salt[x, y][0] 255
img_hsv_salt img_hsv.copy()
# 获取图像行数、列数和通道数信息
rows, cols, _ img_hsv_salt.shape
# 在图像上随机选择100个像素点并将其H通道值设置为255模拟椒盐噪声
for i in range(100):x np.random.randint(0, rows)y np.random.randint(0, cols) img_hsv_salt[x, y][0] 255# 在YIQ的Y通道加入椒盐噪声
img_yiq_salt img_yiq.copy()
for i in range(100):x np.random.randint(0,rows)y np.random.randint(0,cols)img_yiq_salt[x,y][0] 255# 将加入椒盐噪声的H通道、Y通道分别显示
plt.imshow(img_hsv_salt[:,:,0], cmapgray)
plt.title(Salt Pepper noise on H channel of HSV)
plt.show()
plt.imshow(img_yiq_salt[:,:,0], cmapgray)
plt.title(Salt Pepper noise on Y channel of YIQ)
plt.show()# 合成加入椒盐噪声的HSV、YIQ格式图像
img_hsv_salt cv2.cvtColor(img_hsv_salt,cv2.COLOR_HSV2RGB)
img_yiq_salt cv2.cvtColor(img_yiq_salt,cv2.COLOR_YCrCb2RGB)# 分别将R、G、B通道显示
fig, axs plt.subplots(nrows1, ncols3, figsize(12, 4))
axs[0].imshow(img[:,:,0], cmapgray)
axs[0].set_title(R)
axs[1].imshow(img[:,:,1], cmapgray)
axs[1].set_title(G)
axs[2].imshow(img[:,:,2], cmapgray)
axs[2].set_title(B)
plt.show()# 分别将H、S、V通道显示
fig, axs plt.subplots(nrows1, ncols3, figsize(12, 4))
axs[0].imshow(img_hsv[:,:,0], cmaphsv)
axs[0].set_title(H)
axs[1].imshow(img_hsv[:,:,1], cmapgray)
axs[1].set_title(S)
axs[2].imshow(img_hsv[:,:,2], cmapgray)
axs[2].set_title(V)
plt.show()# 显示加入椒盐噪声的HSV、YIQ格式图像
fig, axs plt.subplots(nrows1, ncols2, figsize(12, 6))
axs[0].imshow(img_hsv_salt)
axs[0].set_title(Salt Pepper noise on H channel of HSV)
axs[1].imshow(img_yiq_salt)
axs[1].set_title(Salt Pepper noise on Y channel of YIQ)
plt.show()# 将合成的加入椒盐噪声的HSV、YIQ格式图像分别转换为RGB格式并显示
img_hsv_salt_rgb cv2.cvtColor(img_hsv_salt,cv2.COLOR_RGB2BGR)
img_yiq_salt_rgb cv2.cvtColor(img_yiq_salt,cv2.COLOR_RGB2BGR)
plt.imshow(img_hsv_salt_rgb)
plt.title(Salt Pepper noise on H channel of HSV RGB)
plt.show()
plt.imshow(img_yiq_salt_rgb)
plt.title(Salt Pepper noise on Y channel of YIQ RGB)
plt.show()总结
在本文中我们使用RGB转HSV和YIQ的操作通过加入椒盐噪声并将其转换回RGB格式对图像进行了噪声处理。我们展示了原始RGB图像以及其R、G、B通道的显示接着将图像转换为HSV和YIQ格式并在H通道和Y通道中分别加入了椒盐噪声。然后我们将加入了噪声的H、S、V通道以及Y通道进行了显示。最后我们展示了加入椒盐噪声的HSV和YIQ格式图像并将它们转换回RGB格式进行显示。
通过这样的操作我们可以进一步了解颜色空间转换在图像处理中的应用以及如何通过加入噪声来模拟图像中的实际场景。此外我们还探索了如何通过转换回RGB格式来展示噪声处理后的图像。这些技术在图像去噪、图像增强和其他相关领域中具有重要的应用价值。这些方法对于从图像中去除噪声以及提高图像视觉效果具有重要意义并且可以在许多实际应用中发挥作用。