前言:
Hello大家好,我是Dream。 今天我們將利用HSV和YIQ顏色空間處理圖像噪聲。在本次實驗中,我們使用任意一張圖片,通過RGB轉(zhuǎn)HSV和YIQ
的操作,加入了椒鹽噪聲
并將其轉(zhuǎn)換回RGB
格式,最終實現(xiàn)對圖像的噪聲處理。一起來看看吧~
1.導(dǎo)入庫函數(shù)
首先,我們導(dǎo)入需要的庫。包括numpy用于處理數(shù)組數(shù)據(jù),cv2用于圖像處理,matplotlib用于可視化展示。
import numpy as np
import cv2
from matplotlib import pyplot as plt
2.導(dǎo)入原圖
接下來,我們導(dǎo)入原始圖像,并將其轉(zhuǎn)換為RGB格式以便于顯示。
img = cv2.imread('test.jpg')
img = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
3.顯示原圖
然后,我們使用matplotlib將原始RGB圖像顯示出來。
plt.imshow(img)
plt.title('Original RGB image')
plt.show()
4.將RGB圖像轉(zhuǎn)換為HSV和YIQ格式
我們使用cv2中的cvtColor函數(shù)將RGB圖像轉(zhuǎn)換為HSV和YIQ格式。COLOR_RGB2HSV和COLOR_RGB2YCrCb表示轉(zhuǎn)換為對應(yīng)格式。
img_hsv = cv2.cvtColor(img,cv2.COLOR_RGB2HSV)
img_yiq = cv2.cvtColor(img,cv2.COLOR_RGB2YCrCb)
5.在HSV的H通道加入椒鹽噪聲
在HSV格式的圖像中,我們選擇了H通道。通過隨機選擇像素點的方式,在該像素點的H通道上加入椒鹽噪聲。具體操作是將該像素點的H值設(shè)置為255。
img_hsv_salt = img_hsv.copy()
# 獲取圖像行數(shù)、列數(shù)和通道數(shù)信息
rows, cols, _ = img_hsv_salt.shape
# 在圖像上隨機選擇100個像素點,并將其H通道值設(shè)置為255,模擬椒鹽噪聲
for i in range(100):
x = np.random.randint(0, rows)
y = np.random.randint(0, cols)
# 將選定像素點的H通道值設(shè)為255
img_hsv_salt[x, y][0] = 255
img_hsv_salt = img_hsv.copy()
# 獲取圖像行數(shù)、列數(shù)和通道數(shù)信息
rows, cols, _ = img_hsv_salt.shape
# 在圖像上隨機選擇100個像素點,并將其H通道值設(shè)置為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
6.在YIQ的Y通道加入椒鹽噪聲
在YIQ格式的圖像中,我們選擇了Y通道。同樣的方式,通過隨機選擇像素點的方式,在該像素點的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
7.將加入椒鹽噪聲的H通道、Y通道分別顯示
接下來,我們分別顯示加入了椒鹽噪聲的HSV和YIQ格式圖像的H通道。使用matplotlib的imshow函數(shù),并將顯示效果設(shè)置為灰度圖。
plt.imshow(img_hsv_salt[:,:,0], cmap='gray')
plt.title('Salt & Pepper noise on H channel of HSV')
plt.show()
plt.imshow(img_yiq_salt[:,:,0], cmap='gray')
plt.title('Salt & Pepper noise on Y channel of YIQ')
plt.show()
8.合成加入椒鹽噪聲的HSV、YIQ格式圖像
我們將加入了椒鹽噪聲的HSV、YIQ格式的圖像分別轉(zhuǎn)換回RGB格式,方便后續(xù)顯示。
img_hsv_salt = cv2.cvtColor(img_hsv_salt,cv2.COLOR_HSV2RGB)
img_yiq_salt = cv2.cvtColor(img_yiq_salt,cv2.COLOR_YCrCb2RGB)
9.分別將R、G、B通道顯示
接下來,我們分別顯示原始RGB圖像的R、G、B通道。使用matplotlib的imshow函數(shù),并將顯示效果設(shè)置為灰度圖。
fig, axs = plt.subplots(nrows=1, ncols=3, figsize=(12, 4))
axs[0].imshow(img[:,:,0], cmap='gray')
axs[0].set_title('R')
axs[1].imshow(img[:,:,1], cmap='gray')
axs[1].set_title('G')
axs[2].imshow(img[:,:,2], cmap='gray')
axs[2].set_title('B')
plt.show()
10.分別將H、S、V通道顯示
接下來,我們分別顯示加入椒鹽噪聲的HSV圖像的H、S、V通道。其中,H通道使用hsv色彩空間來顯示,而S和V通道使用灰度圖來顯示。
fig, axs = plt.subplots(nrows=1, ncols=3, figsize=(12, 4))
axs[0].imshow(img_hsv[:,:,0], cmap='hsv')
axs[0].set_title('H')
axs[1].imshow(img_hsv[:,:,1], cmap='gray')
axs[1].set_title('S')
axs[2].imshow(img_hsv[:,:,2], cmap='gray')
axs[2].set_title('V')
plt.show()
11.顯示加入椒鹽噪聲的HSV、YIQ格式圖像
接下來,我們使用matplotlib顯示加入椒鹽噪聲的HSV和YIQ格式的圖像。
fig, axs = plt.subplots(nrows=1, ncols=2, 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()
12.將合成的加入椒鹽噪聲的HSV、YIQ格式圖像分別轉(zhuǎn)換為RGB格式并顯示
最后,我們將加入了椒鹽噪聲的HSV和YIQ格式的圖像轉(zhuǎn)換回RGB格式,并使用matplotlib進行顯示。
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()
13.總結(jié)
在本文中,我們使用RGB轉(zhuǎn)HSV和YIQ的操作,通過加入椒鹽噪聲并將其轉(zhuǎn)換回RGB格式,對圖像進行了噪聲處理。我們展示了原始RGB圖像以及其R、G、B通道的顯示,接著將圖像轉(zhuǎn)換為HSV和YIQ格式
,并在H通道和Y通道中分別加入了椒鹽噪聲。然后,我們將加入了噪聲的H、S、V通道以及Y通道進行了顯示
。最后,我們展示了加入椒鹽噪聲的HSV和YIQ格式圖像,并將它們轉(zhuǎn)換回RGB格式
進行顯示。
通過這樣的操作,我們可以進一步了解顏色空間轉(zhuǎn)換在圖像處理中的應(yīng)用,以及如何通過加入噪聲來模擬圖像中的實際場景。此外,我們還探索了如何通過轉(zhuǎn)換回RGB格式來展示噪聲處理后的圖像。這些技術(shù)在圖像去噪、圖像增強和其他相關(guān)領(lǐng)域中具有重要的應(yīng)用價值。這些方法對于從圖像中去除噪聲以及提高圖像視覺效果具有重要意義,并且可以在許多實際應(yīng)用中發(fā)揮作用。
本期推薦:
Python從入門到精通(購買通道)文章來源:http://www.zghlxwxcb.cn/news/detail-608617.html
IT今日熱榜
: http://itoday.top/文章來源地址http://www.zghlxwxcb.cn/news/detail-608617.html
到了這里,關(guān)于計算機視覺--利用HSV和YIQ顏色空間處理圖像噪聲的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!