日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

卷积滤波 英文_3. 数码相机内的图像处理基本图像滤波

發布時間:2025/3/20 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 卷积滤波 英文_3. 数码相机内的图像处理基本图像滤波 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

【轉載請注明來源和作者】

在第一篇文章里面,我提到計算攝影學是計算機圖形學,計算機視覺,光學和傳感器等領域的交叉學科,在這個領域我們可以用強大的圖像算法,對傳感器所獲取的信息做任意的處理,得到豐富多彩的效果。

那么,可以對圖像做哪些處理呢?基本的處理包括如下兩大類,

  • 改變圖像的像素值, 我們稱為濾波(Filtering)

  • 改變圖像的像素位置,我們稱為扭曲(Warping)

  • 在接下來的幾篇文章里面,我們都會重點探討濾波問題。

    一. 點處理

    在濾波時,根據目標像素信息的來源,可以分為點操作和鄰域操作兩類。點操作是指目標像素僅僅依賴于對應的源像素,跟其他的像素沒有關系。鄰域操作則相反,事實上我們可以認為點操作是鄰域操作的一種特殊實例。

    下圖中列出了一些典型的點操作,當你使用Python或Matlab這樣的語言時,可以輕松的實現這些操作,可以參見這一章的Jupyter Notebook

    在第2篇文章提到的相機內基本處理中,White Blalance, Color Transforms等操作都是點操作。

    二. 線性移不變濾波器

    2.1 基本概念

    在鄰域操作中,比較基礎且重要的是一類稱為線性移不變的濾波器,英文里叫做Linear Shift-Invariant Image Filtering。

    這里:

    • 線性,是指最終生成的像素值是由鄰域像素值線性混合而成

    • 移不變,是指不管對于哪個坐標的像素,其線性混合的系數都是一致的,不會因為像素坐標的變化而變化

    一個非常典型的線性移不變濾波器是Box Filter,下圖展示了它的工作原理。(注,這里可以看到圖像的邊緣像素因為沒有足夠的信息輸入,所以在boxFilter后沒有值可以填充,因此后文會介紹如何處理圖像的邊緣)

    Box Filter

    我們可以用boxFilter來對圖像進行模糊,當調整它的核窗口大小時,可以得到不同程度的模糊結果。下圖是用boxFilter對愛因斯坦照片進行模糊的結果:

    線性移不變濾波器通常用卷積(Convolution)來實現,當處理一維信號時,卷積可以表示成:

    例如,對方波信號進行濾波時,相關的函數為:

    而到了二維圖像,卷積則表示為:

    3x3的box filter可以表示為:

    這里我們可以很容易看到,如果圖像的尺寸為HxW, 濾波器尺寸為NxN, 則二維濾波器的時間復雜度為O(WHN2), 那么有沒有方法可以降低此復雜度呢?

    一種典型的方法是將二維的濾波轉換成兩個一維濾波,例如:

    這時,濾波器的時間復雜度會變為 O(2WHN)

    2.2 更多實例

    box filter可以平滑圖像,但是它也有一些缺點,例如它平滑的效果不夠自然,特別是在原始圖像有比較密集的細節紋理時,boxFilter會產生網格狀的效應,如下圖所示。它產生的原因是box filter的濾波核決定了不管離中心像素多遠的像素的權重都是一樣的,這使得遠離中心像素的信息在濾波后會融入到中心像素中。

    一種更光滑的濾波器是高斯濾波(Gaussian Image Filter),它的公式和示意圖如下

    可以看到,在一個濾波核中,離中心點越遠的像素權重越小。對于離散的數字圖像,我們一般取半徑為2~3σ的窗口大小作為濾波核的尺寸, 例如下面是一個典型的3x3的高斯濾波核:

    下面的圖可以明顯看出Gaussian Filter和Box Filter的區別:

    三. 圖像梯度和邊緣

    3.1 圖像的導數

    有著基本高數知識的讀者肯定知道,函數的變化率可以用其導數來求得,在函數值突變處的導數比其他地方大。對于圖像來說也是一樣,我們可以通過對圖像求導數來得到圖像的不連續處,進而獲取圖像的邊緣。那么如何對圖像求導呢,一般來說是通過有限差分函數來完成。其公式和1維表現形式是一個1x3的卷積核(水平梯度),或3x1的卷積核(垂直梯度):

    直接對圖像求導會受到噪聲的干擾,因此一般需要對圖像先做一次平滑,減少噪聲的干擾,再做求導。例如,典型Sobel核,它的水平和垂直形式形式表現如下:

    比較有趣的是,水平Sobel濾波核最終會凸顯出圖像的垂直線條,而垂直Sobel濾波核最終會凸顯出圖像的水平線條,如下圖:

    除了Sobel濾波核之外,還有很多濾波核,下面是典型的幾種濾波核

    3.2 圖像的梯度和邊緣

    當有了圖像的導數后,就可以得到圖像的梯度,它定義為:

    通過水平和垂直方向的導數,我們可以求得梯度的幅值和方向

    下圖是分別展示了水平求導結果、垂直求導結果,及梯度的幅值。可以很容易通過梯度來得到圖像的邊緣,以及邊緣的方向。

    3.2 DoG濾波器以及LoG濾波器

    我們前面講過,對圖像求導很容易受到噪聲的干擾,盡管如Sobel一類的濾波核已經包含了對圖像的平滑處理來減輕噪聲的影響,但當噪聲很多時,依然不夠。但可以采用同樣的原理得到新的對噪聲更魯棒的濾波方式:

    這里,f代表信號,h代表blur核,用于平滑圖像。當h是高斯核且是一階梯度時,我們稱上式右邊的下圖單元為Derivative of Gaussian (DoG)濾波器。

    上式等號左邊的物理意義是先平滑圖像,去除噪聲的干擾,然后再求導。我們可以看看在一維情況下的表現:

    按照等號左邊來求導,會使得要做兩次對原信號的卷積,計算量較大,而等式右邊的形式則可以大大減輕計算量,因為它只需要做一次卷積即可,如下圖所示,可以看到最終的結果和上圖中的一致,但是計算量少了很多。

    DoG濾波器可以得到圖像的邊緣信息,而且對噪聲比較魯棒,在二維形式下它的示意圖如下

    DoG實際上是由一個高斯核和一個一階梯度核組成,我們還可以使用高斯核和二階梯度核來構成另外一種濾波器,即Laplacian of Gaussian (LoG)濾波器。

    先來看看laplacian濾波器,它可以用二階有限差分來獲得,如下圖展示了水平laplacian濾波器

    這樣,如果我們按照同樣的原理組合上高斯核,就可以得到LoG濾波器,下面是一維情況下的示意:

    可以很容易觀察到,函數的跳變處恰好就是二階導數過零點的地方。在圖像中,這也就是邊緣所在的位置。

    來比較下幾個濾波器吧:

    下圖展示了直接使用Laplacian濾波器和使用LoG濾波器來獲取邊緣的效果對比,由于Laplacian濾波器對噪聲非常敏感,因此可以看到其結果中會出現大量的非邊緣響應,這些都是噪聲所在的位置。而LoG濾波器的結果則很干凈:

    當與DoG相比時,結果如下。可以看到DoG得到的圖像邊緣通常比較粗,由多個像素組成,而LoG則相對來說可以得到更加準確的邊緣。

    四. 總結

    這篇帖子主要介紹了圖像的線性移不變濾波器,它只是所有可能的圖像變換中的一種基本形式。在后面的帖子中,我還會進一步介紹更多的圖像變換的知識,感謝你的閱讀。

    我在如下的Jupyter Notebook中展示了本帖中的相關操作,你可以對著它獲取更深入的理解,也能夠進一步掌握用Python來進行圖像處理的一些技巧。

    nbviewer.jupyter.org/gi

    跟這一系列專題文章相關的Notebook可以從github.com/yourwanghao/獲取

    參考資料:

    這一篇文章的絕大部分素材來自于

    [1]?CMU 2017 Fall Computational Photography Course 15-463, Lecture 3

    如果不做特別說明,素材均來自于[1]

    我也會參考下面的重要資料中的內容

    [2] Richard Szeliski, Computer Vision : Algorithms and Applications, Section 3.2

    總結

    以上是生活随笔為你收集整理的卷积滤波 英文_3. 数码相机内的图像处理基本图像滤波的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。