欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

opencv python 圖像去噪的實(shí)現(xiàn)方法

 更新時(shí)間:2018年08月31日 08:58:41   作者:sakurala  
這篇文章主要介紹了opencv python 圖像去噪的實(shí)現(xiàn)方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

在早先的章節(jié)里,我們看到很多圖像平滑技術(shù)如高斯模糊,Median模糊等,它們在移除數(shù)量小的噪音時(shí)在某種程度上比較好用。在這些技術(shù)里,我們?nèi)∠袼刂車囊恍〔糠粥従樱鲆恍╊愃朴诟咚蛊骄鶛?quán)重,中值等替換掉中間的元素。簡單說,移除一個(gè)像素的噪音是基于本地鄰居的。

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

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

Image Denoising

OpenCV提供了這種技術(shù)的四種變體。

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

Common arguments:

  1. h:參數(shù)決定濾波器強(qiáng)度。較高的h值可以更好地消除噪聲,但也會刪除圖像的細(xì)節(jié) (10 is ok)
  2. hForColorComponents:與h相同,但僅適用于彩色圖像。 (通常與h相同)
  3. templateWindowSize:應(yīng)該是奇數(shù)。 (recommended 7)
  4. searchWindowSize:應(yīng)該是奇數(shù)。 (recommended 21)

cv2.fastNlMeansDenoisingColored()

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

import numpy as np
import cv2
import matplotlib.pyplot as plt


img = 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()

現(xiàn)在我們將相同的方法應(yīng)用于視頻。 第一個(gè)參數(shù)是嘈雜幀的列表。 第二個(gè)參數(shù)imgToDenoiseIndex指定我們需要去噪的幀,因?yàn)槲覀冊谳斎肓斜碇袀鬟f了frame的索引。 第三個(gè)是temporalWindowSize,它指定了用于去噪的附近幀的數(shù)量。 在這種情況下,使用總共temporalWindowSize幀,其中中心幀是要去噪的幀。 例如,傳遞了5個(gè)幀的列表作為輸入。 設(shè)imgToDenoiseIndex = 2和temporalWindowSize = 3.然后使用frame-1,frame-2和frame-3對幀-2進(jìn)行去噪

import numpy as np
import cv2
import matplotlib.pyplot as plt


cap = cv2.VideoCapture('test.mp4')

# create a list of first 5 frames
img = [cap.read()[1] for i in range(5)]

# convert all to grayscale
gray = [cv2.cvtColor(i, cv2.COLOR_BGR2GRAY) for i in img]

# convert all to float64
gray = [np.float64(i) for i in gray]

# create a noise of variance 25
noise = np.random.randn(*gray[1].shape)*10

# Add this noise to images
noisy = [i+noise for i in gray]

# Convert back to uint8
noisy = [np.uint8(np.clip(i,0,255)) for i in noisy]

# Denoise 3rd frame considering all the 5 frames
dst = cv2.fastNlMeansDenoisingMulti(noisy, 2, 5, None, 4, 7, 35)

plt.subplot(131),plt.imshow(gray[2],'gray')
plt.subplot(132),plt.imshow(noisy[2],'gray')
plt.subplot(133),plt.imshow(dst,'gray')
plt.show()

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解python日期時(shí)間處理2

    詳解python日期時(shí)間處理2

    這篇文章主要為大家介紹了python日期時(shí)間處理,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • python二維列表一維列表的互相轉(zhuǎn)換實(shí)例

    python二維列表一維列表的互相轉(zhuǎn)換實(shí)例

    今天小編就為大家分享一篇python二維列表一維列表的互相轉(zhuǎn)換實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • 教你使用Python連接oracle

    教你使用Python連接oracle

    今天教各位小伙伴怎么用Python連接oracle,文中附帶非常詳細(xì)的圖文示例,對正在學(xué)習(xí)的小伙伴們很有幫助喲,需要的朋友可以參考下
    2021-05-05
  • python裝飾器"@"使用實(shí)例深入探究

    python裝飾器"@"使用實(shí)例深入探究

    這篇文章主要為大家介紹了python裝飾器"@"使用實(shí)例深入探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • python-opencv獲取二值圖像輪廓及中心點(diǎn)坐標(biāo)的代碼

    python-opencv獲取二值圖像輪廓及中心點(diǎn)坐標(biāo)的代碼

    今天小編就為大家分享一篇python-opencv獲取二值圖像輪廓及中心點(diǎn)坐標(biāo)的代碼,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • Python Numpy:找到list中的np.nan值方法

    Python Numpy:找到list中的np.nan值方法

    今天小編就為大家分享一篇Python Numpy:找到list中的np.nan值方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • python用海龜繪圖寫貪吃蛇游戲

    python用海龜繪圖寫貪吃蛇游戲

    這篇文章主要為大家詳細(xì)介紹了python用海龜繪圖寫貪吃蛇游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • Python 讀取.shp文件并生成圖幅編號的實(shí)現(xiàn)思路

    Python 讀取.shp文件并生成圖幅編號的實(shí)現(xiàn)思路

    這篇文章主要介紹了Python 讀取.shp文件并生成圖幅編號,代碼適用于需要處理和分析地理空間數(shù)據(jù)的場景,如城市規(guī)劃、環(huán)境監(jiān)測或自然資源管理,其中它可以幫助用戶讀取特定區(qū)域的Shapefile文件,確定其地理邊界,需要的朋友可以參考下
    2024-05-05
  • python實(shí)現(xiàn)plt x軸坐標(biāo)按1刻度顯示

    python實(shí)現(xiàn)plt x軸坐標(biāo)按1刻度顯示

    這篇文章主要介紹了python實(shí)現(xiàn)plt x軸坐標(biāo)按1刻度顯示,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • pymongo中g(shù)roup by的操作方法教程

    pymongo中g(shù)roup by的操作方法教程

    這篇文章主要給大家介紹了關(guān)于pymongo中g(shù)roup by的操作方法,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用pymongo具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03

最新評論