国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Programming Computer Vision with Python (學習筆記八)

FleyX / 3365人閱讀

摘要:簡稱庫是從擴展下來的,提供了更豐富的圖像處理函數,去噪函數除了還有算法,比如邊緣檢測還有以前簡單提過的算子濾波器。下面我用看具體的例子,將和高斯平滑進行對比效果對比如下明顯感覺使用的效果要比高斯平滑好很多。

圖像去噪(Image Denoising)的過程就是將噪點從圖像中去除的同時盡可能的保留原圖像的細節和結構。這里講的去噪跟前面筆記提過的去噪不一樣,這里是指高級去噪技術,前面提過的高斯平滑也能去噪,但高斯平滑去噪的同時也把邊緣模糊化了,另外使用形態學的方法去噪是指去除一些粗的椒鹽噪聲。對于一幅密布噪點的圖像,如果使其變得清晰又保留邊緣細節,這是高級去噪技術所要解決的問題。

全變差

全變差去噪(Total variation denoising)是一種常用的去噪模型。全變差(或叫總變差)大概是指圖像梯度的范數(norm)的積分。
一幅圖像的細節(噪聲或是干擾的不必要的)過多,全變差的值越高,所以讓全變差最小化,去掉噪聲和沒用細節的同時,保留邊緣等主要細節,正是這種模型的處理思想。用這種去噪技術產生的圖像有點接近卡通的感覺。
下面要介紹的Chambolle去噪算法就是基于全變差去噪模型實現的。

chambolle去噪

scipy.ndimage模塊只是提供了基本的圖像處理方法,并沒有提供Chambolle去噪函數,所以就要借助另一個庫——scikit-image。

scikit-image
scikit-image(簡稱skimage)庫是從scipy.ndimage擴展下來的,提供了更豐富的圖像處理函數,去噪函數除了Chambolle還有Bilateral算法,比如邊緣檢測還有以前簡單提過的Canny算子濾波器。
它也是由 SciPy 社區所開發的,可以跟NumPy等完美配合。

安裝:

sudo apt-get install python-skimage

函數說明:

skimage.restoration.denoise_tv_chambolle(im, weight=50, eps=0.0002, n_iter_max=200, multichannel=False)
im: ndarray類型,2維或3維
weight:越大去噪越多,但圖像也會越失真
multichannel:對彩色圖像而言,true表示對每一通道去噪

返回去噪后的圖像,ndarray類型。

下面我用看具體的例子,將chambolle和高斯平滑進行對比:

from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
from scipy.ndimage import filters
from skimage.filter import denoise_tv_chambolle  #for versoin: 0.9.3
#from skimage.restoration import denoise_tv_chambolle  #for new version

im = np.array(Image.open("noising.jpg").convert("L"))

index = 221
plt.subplot(index)
plt.gray()
plt.imshow(im)
plt.axis("off")
plt.title("original")

chdnim = denoise_tv_chambolle(im, weight=0.2)
plt.subplot(index+1)
plt.imshow(chdnim)
plt.axis("off")
plt.title("chambolle weight=0.2")

gs2dnim = filters.gaussian_filter(im, sigma=2)
plt.subplot(index+2)
plt.imshow(gs2dnim)
plt.axis("off")
plt.title("gaussion sigma=2")

gs3dnim = filters.gaussian_filter(im, sigma=3)

plt.subplot(index+3)
plt.imshow(gs3dnim)
plt.axis("off")
plt.title("gaussion sigmal=3")

plt.show()

效果對比如下:

明顯感覺使用chambolle的效果要比高斯平滑好很多。

Bilateral濾波器
Bilateral濾波器跟之前介紹過的高斯模糊運算過程相似,而且它也使用了高斯核,但它的特點是在對圖像進行平滑的同時能保留邊緣。因為它在平滑濾波時同時考慮了像素間的幾何距離和色彩距離。具體點說,如果要處理的像素與鄰近像素的歐式距離比較大(即像素值相差比較大)時,那么這些鄰近像素的權重就比較小,從而使得對濾波后的新像素值影響較小。另外,每個濾波后像素點的值,受與他色彩相近并且距離較近的像素點的影響較大,這兩種權值分配方法起到了保護邊緣的作用。

Bilateral去噪函數:

skimage.restoration.denoise_bilateral(image, win_size=5, sigma_range=None, sigma_spatial=1, bins=10000, mode="constant", cval=0)

示例:

from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
from scipy.ndimage import filters
from skimage.filter import denoise_bilateral  #for versoin: 0.9.3
#from skimage.restoration import denoise_bilateral  #for new version

im = np.array(Image.open("noising.jpg").convert("L"))

index = 221
plt.subplot(index)
plt.gray()
plt.imshow(im)
plt.axis("off")
plt.title("original")

plt.subplot(index+1)
plt.imshow(denoise_bilateral(im))
plt.axis("off")
plt.title("default")

plt.subplot(index+2)
plt.imshow(denoise_bilateral(im, sigma_range=0.2, sigma_spatial=10))
plt.axis("off")
plt.title("0.2/10")

plt.subplot(index+3)
plt.imshow(denoise_bilateral(im, sigma_range=0.8, sigma_spatial=10))
plt.axis("off")
plt.title("0.8/10")

plt.show()

效果如圖:

感覺比高斯平滑要好一些,但比Chambolle還是要遜色不少。

小結

因全變差的數學原理比較高深,所以暫時沒去研究,只大概了解下并使用skimage庫的接口進行了一番對比,結論就是使用chambolle去噪效果非常好。

至此,書中第一章的內容結束了。后面將開始下一章節的內容學習——圖像描述。

你還可以查看我的其它筆記。

參考資料

scikit-image.org
scikit denoising example
Bilateral Filtering

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/37657.html

相關文章

  • SegmentFault 技術周刊 Vol.30 - 學習 Python 來做一些神奇好玩的事情吧

    摘要:學習筆記七數學形態學關注的是圖像中的形狀,它提供了一些方法用于檢測形狀和改變形狀。學習筆記十一尺度不變特征變換,簡稱是圖像局部特征提取的現代方法基于區域圖像塊的分析。本文的目的是簡明扼要地說明的編碼機制,并給出一些建議。 showImg(https://segmentfault.com/img/bVRJbz?w=900&h=385); 前言 開始之前,我們先來看這樣一個提問: pyth...

    lifesimple 評論0 收藏0
  • Programming Computer Vision with Python學習筆記一)

    摘要:接下來的學習筆記本人都將使用來代替。庫中提供的很多圖像操作都是分別作用于某個通道的數據。是最流行的開源色彩管理庫之一。目前只支持在增加和。模塊支持從圖像對象創建或的對象,方便被使用和顯示。模塊對圖像或指定區域的每個通道進行統計,包括等。 介紹 《Programming Computer Vision with Python》是一本介紹計算機視覺底層基本理論和算法的入門書,通過這本收可以...

    huashiou 評論0 收藏0
  • Programming Computer Vision with Python學習筆記五)

    摘要:下面是二維空間的高斯分布函數公式這個公式被稱作高斯核。高斯模糊使用高斯平均算子來實現的圖像模糊叫高斯模糊,也叫高斯平滑被認為是一種最優的圖像平滑處理。 SciPy庫 SciPy庫,與之前我們使用的NumPy和Matplotlib,都是scipy.org提供的用于科學計算方面的核心庫。相對NumPy,SciPy庫提供了面向更高層應用的算法和函數(其實也是基于NumPy實現的),并以子模塊...

    Rocko 評論0 收藏0
  • Programming Computer Vision with Python學習筆記十二)

    摘要:圖像矩圖像矩或稱幾何矩是由在年提出的。矩給出了對圖像形狀的一種度量。使用建議的第二種采樣方法即以圖像中心進行高斯分布采樣,長度使用,然后在基礎上增加了旋轉的描述以及快速的計算方法,這種方法被稱為。 ORB(Oriented FAST and Rotated BRIEF)可用來替代SIFT(或SURF),它對圖像更具有抗噪特性,是一種特征檢測高效算法,其速度滿足實時要求,可用于增強圖像匹...

    xbynet 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<