国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

opencv python 圖像去噪的實現方法

2020-02-15 22:17:56
字體:
來源:轉載
供稿:網友

在早先的章節里,我們看到很多圖像平滑技術如高斯模糊,Median模糊等,它們在移除數量小的噪音時在某種程度上比較好用。在這些技術里,我們取像素周圍的一小部分鄰居,做一些類似于高斯平均權重,中值等替換掉中間的元素。簡單說,移除一個像素的噪音是基于本地鄰居的。

噪音有一個屬性,噪音一般被認為是具有零平均值的隨機變量。假設一個像素噪音,p = p0 + n, 其中p0是像素的真實值,n是那個像素的噪音。你可以從不同圖像取大量的同一個像素(N)并計算他們的平均值,理想情況下,你應該得到p=p0,因為均值是0.

你可以自己通過一個簡單例子驗證一下。保持一個靜止的攝像機對準一個位置多呆幾秒,這會給你很多幀,或者是對一個場景的很多圖像。然后寫一些代碼來找到視頻里所有幀的平均值。比較最終的結果和第一幀。你可以看到噪點被去掉了。不幸的是這個簡單的方法對于攝像機和場景的運動來說就不健壯了。而且經常你也只有一個噪音圖像可用。

Image Denoising

OpenCV提供了這種技術的四種變體。

cv2.fastNlMeansDenoising() - 使用單個灰度圖像 cv2.fastNlMeansDenoisingColored() - 使用彩色圖像。 cv2.fastNlMeansDenoisingMulti() - 用于在短時間內捕獲的圖像序列(灰度圖像) cv2.fastNlMeansDenoisingColoredMulti() - 與上面相同,但用于彩色圖像。

Common arguments:

    h:參數決定濾波器強度。較高的h值可以更好地消除噪聲,但也會刪除圖像的細節 (10 is ok) hForColorComponents:與h相同,但僅適用于彩色圖像。 (通常與h相同) templateWindowSize:應該是奇數。 (recommended 7) searchWindowSize:應該是奇數。 (recommended 21)

cv2.fastNlMeansDenoisingColored()

如上所述,它用于從彩色圖像中去除噪聲。 (噪音預計是高斯噪音)

import numpy as npimport cv2import matplotlib.pyplot as pltimg = cv2.imread('img.jpg')dst = cv2.fastNlMeansDenoisingColored(img,None,10,10,7,21)plt.subplot(121),plt.imshow(img)plt.subplot(122),plt.imshow(dst)plt.show()

cv2.fastNlMeansDenoisingMulti()

現在我們將相同的方法應用于視頻。 第一個參數是嘈雜幀的列表。 第二個參數imgToDenoiseIndex指定我們需要去噪的幀,因為我們在輸入列表中傳遞了frame的索引。 第三個是temporalWindowSize,它指定了用于去噪的附近幀的數量。 在這種情況下,使用總共temporalWindowSize幀,其中中心幀是要去噪的幀。 例如,傳遞了5個幀的列表作為輸入。 設imgToDenoiseIndex = 2和temporalWindowSize = 3.然后使用frame-1,frame-2和frame-3對幀-2進行去噪

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 富源县| 高台县| 增城市| 滨海县| 金堂县| 公主岭市| 马关县| 武威市| 江都市| 胶南市| 南投市| 邢台市| 彭水| 肃南| 石河子市| 军事| 鄱阳县| 新余市| 株洲市| 潜山县| 奇台县| 仁化县| 安宁市| 定兴县| 汝阳县| 米泉市| 合阳县| 札达县| 阿合奇县| 和平区| 北川| 卢龙县| 合作市| 克拉玛依市| 肥城市| 潞城市| 九江县| 富民县| 马尔康县| 东乌| 沙湾县|