最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

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

Image Denoising

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

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

Common arguments:

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

cv2.fastNlMeansDenoisingColored()

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

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

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)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • 淺談用Python實現(xiàn)一個大數(shù)據(jù)搜索引擎

    淺談用Python實現(xiàn)一個大數(shù)據(jù)搜索引擎

    這篇文章主要介紹了淺談用Python實現(xiàn)一個大數(shù)據(jù)搜索引擎,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • Python中利用ItsDangerous快捷實現(xiàn)數(shù)據(jù)加密

    Python中利用ItsDangerous快捷實現(xiàn)數(shù)據(jù)加密

    這篇文章主要介紹了Python中利用ItsDangerous快捷實現(xiàn)數(shù)據(jù)加密,通過使用Python庫ItsDangerous,我們就可以高效快捷地完成數(shù)據(jù)加密/解密的過程,本文結合實例代碼給大家講解的非常詳細,需要的朋友可以參考下
    2022-11-11
  • 將python文件打包成EXE應用程序的方法

    將python文件打包成EXE應用程序的方法

    相信大家都想把自己完成的項目打包成EXE應用文件,然后就可以放在桌面隨時都能運行了,下面來分享利用pytinstaller這個第三方庫來打包程序,感興趣的朋友跟隨小編一起看看吧
    2019-05-05
  • Python?列表(list)的常用方法

    Python?列表(list)的常用方法

    這篇文章主要介紹了Python?列表(list)的常用方法,這節(jié)主要講列表,列表用于存儲任意數(shù)目、任意類型的數(shù)據(jù)集合,本文通過示例代碼給大家詳細講解,需要的朋友可以參考下
    2023-05-05
  • Python pandas如何向excel添加數(shù)據(jù)

    Python pandas如何向excel添加數(shù)據(jù)

    這篇文章主要介紹了Python pandas如何向excel添加數(shù)據(jù),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-05-05
  • Python如何解除一個裝飾器

    Python如何解除一個裝飾器

    這篇文章主要介紹了Python如何解除一個裝飾器,幫助大家更好的理解和學習Python裝飾器,感興趣的朋友可以了解下
    2020-08-08
  • python 裝飾器的基本使用

    python 裝飾器的基本使用

    這篇文章主要介紹了python 裝飾器的基本使用,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2021-01-01
  • Python中的裝飾器類詳解

    Python中的裝飾器類詳解

    Python?裝飾器在很多情況下是一個非常有用的工具,它們可以用于修改或增強函數(shù)或類的行為,本篇文章將深入探討如何在?Python?中使用類裝飾器
    2023-06-06
  • Python Django框架單元測試之文件上傳測試示例

    Python Django框架單元測試之文件上傳測試示例

    這篇文章主要介紹了Python Django框架單元測試之文件上傳測試,結合實例形式分析了Django框架單元測試中文件上傳測試的操作步驟與相關實現(xiàn)技巧,需要的朋友可以參考下
    2019-05-05
  • Python 概率生成問題案例詳解

    Python 概率生成問題案例詳解

    這篇文章主要介紹了Python 概率生成問題案例詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-09-09

最新評論

湘阴县| 正蓝旗| 会理县| 赤峰市| 福州市| 若羌县| 象山县| 乌兰县| 重庆市| 潼南县| 张家川| 达尔| 柳江县| 新民市| 沙坪坝区| 阳曲县| 宁河县| 胶州市| 平南县| 嫩江县| 舞钢市| 临邑县| 青河县| 秦皇岛市| 固原市| 龙里县| 武宁县| 乐都县| 碌曲县| 鄱阳县| 武义县| 华坪县| 嘉荫县| 兴化市| 威宁| 正蓝旗| 辉南县| 镇赉县| 交口县| 洛隆县| 福鼎市|