計算機視覺 3 隨記

2021-09-24 07:41:36 字數 2538 閱讀 2783

我們常指的濾波是指空間濾波和頻率濾波。

在影象處理裡面,管影象復原,去噪,可以說為影象復原,影象濾波,他是我們拿到影象的第一步操作,受到雜訊汙染的影象叫做退化,去噪就是復原。常見的雜訊有加性雜訊(與訊號有關,一般把加性的隨機性看成是系統的背景聲),乘性雜訊(傳輸過程中的通道不理想,他與訊號的關係是相乘的,只有訊號存在乘性雜訊才存在,一般把乘性的隨機性看成是系統的變性),常聽到的雜訊有白雜訊,高斯雜訊,泊松雜訊,乘性雜訊,椒鹽雜訊。

白雜訊就是在整個頻率內分布的雜訊

對影象做復原就涉及到怎麼樣濾波(去燥)的問題!!

對於一維資料做濾波,我們首先想到的是做滑動平均。

滑動平均去燥。滑動的平均視窗中除以9是為了做歸一化。

從影象的左上角開始滑動,切記保持原影象不變,不要用計算後的值替換原影象對應位置的值。

計算完之後拿到乙個比原影象略小的輸出圖。輸出圖不是那麼的平滑,含有雜訊,因為在頻域裡面我們用的矩形框濾波在高頻位置是有跳躍的,某些高頻雜訊是可以通過的,並不是乙個真正的低頻濾波器。

boxfilter在opencv中的兩種實現方式。

boxfilter是不用歸一化的,blur是歸一化的

卷積和滑動平均並不一樣,可以從給出的公式中看到用了減號,但是對於乙個對稱的boxfilter是沒有影響的。

由於公式中用的是減號,在運算時,從boxfilter的右下角拿值。

在這個公式中的f它是把原影象進行了翻轉,但是在實際實現當中我們不對原影象翻轉,因為原影象更大,翻轉的是boxfilter

對於2維的filter我們稱為相關(correlation)

卷積運算對於filter是對稱的來說,卷積與相關計算結果是一樣的,只有對那些非對稱的filter,卷積與相關的計算結果是不一樣的,但是他們的意義是大同小異的。

matlab的實現先對h=filter2(g,f)和h=conv2(g,f)中的g先翻轉180度。

這是一種真正的低頻濾波器,高頻是完全阻斷的,在一維時2πa是有根號的,而二維沒有

線性濾波器滿足的一些性質,交換律,結合律,還有微分運算。

線性10不變性質系統,兩個濾波器依次對影象做運算等於先對兩個濾波器做運算再對影象做運算。這種性質對後面的加速運算效果會很明顯。

這是個非線性濾波器。

示例:

將羅列出來的數值進行排序,取中間值。

還有自適應濾波器等等

docs.opencv.org/2.4/doc/tut…

對影象增強,去噪,增強對比度方面用的非常多。

數字散斑相關方法

學習這些首先眼界要寬,不僅僅侷限於當前最火最熱的話題比如深度學習,使得所有的問題都想著用深度學習來解決,沒有他不行,不是這樣的!!眼界不能這麼狹隘,很多基本方法也可能會解決工業方面的大問題。

爬山法,最快下降法,**演算法,根據前後兩個形變位置的關係,縮小搜尋的個數,減小計算量。

計算機幾何視覺中的應用

灰度的變化過程中會有乙個邊緣的產生,資料不會突變,一般是漸變的過程。

一維資料,求導取最大值

求前後兩點的畫素差取平均值。

就是用1*3的卷積模版在影象上進行滑動,得到的輸出值就df(x)/dx

左側影象強調是豎直方向的邊緣,增大了由黑到白的變化,採用的filter是1/2[-1,0,1],用的水平模版。右側影象上看到很多水平方向的邊緣,說明我們拿到的是水平邊緣,用的是豎直模版來濾的波。最右邊的圖表示的是梯度的大小,幅值。

真實的資料是有雜訊的,直接拿f(x)來做微分的話,得到的梯度 雜訊是非常大的,無法找到邊緣的位置。所以在拿到原影象之後先去噪,再求微分。

先經過乙個線性濾波器,例如高斯濾波器。

在豎直方向進行乙個去噪,再檢測出豎直方向的邊緣。

示例:

對於影象中心位置給出的權重更大,遠離影象中心位置給出的權重更小,這樣的一種濾波器也是很常用的。

這是檢測乙個垂直邊緣。

這是檢測乙個水平邊緣。

對濾波器進行不同的翻轉會得到不同的邊緣。

箭頭表示的是灰度的變化方向,並不是邊緣方向。

通過不同的mask進行卷積運算,我們就可以抽取到中不同的某些邊緣資訊,再將他們組合起來作為影象的某種結果的表達。抽取出來的robinson資訊是可以作為影象的檢索,識別等等操作。

此處可以看出來對filter對二階導再與原影象相乘 和 filter*f在求二階導的結果是一樣的,這樣可以節省很多計算開銷。在二階導為零的位置得到邊緣的位置。

一階導的幅值大於某個閾值或者二階導數等於0,為影象的邊緣。

影象的拉普拉斯(laplacian)就是影象的二階導數。

log filter濾波器會經常用到。

上的豎直邊緣可以對應到右邊數學上的一階導數

右邊是乙個梯度幅值的影象

影象梯度

梯度的方向

得到一些可作為邊緣的參考點。

我們得到的會是乙個比較粗的乙個邊緣,而我們希望拿到的是乙個畫素點。所以涉及到我們怎樣拿到乙個由單一點組成的邊緣。

非極大值抑制,在梯度的方向上找到每乙個位置元素的變化,從而找到區域性的最大值,將這樣乙個點來作為我們的邊緣。

很多時候我們拿到的邊緣並不是條直線,如果我們要檢查的邊緣需要結果是條直線,怎麼做?

(計算機視覺)計算機視覺基礎

opencv cximage cimg freeimage opencv中vc庫的版本與visual studio版本的對應關係 vc8 2005 vc9 2008 vc10 2010 vc11 2012 vc12 2013 vc14 2015 vc15 2017 visual studio中的輔助...

計算機視覺

主講老師 曹洋 課程 視覺 基礎 底 層處理 影象處理 特徵提 取 中 層處理 影象分割 相機標 定 深度 估計 運 動估計 高層處 理 3d 重建 目 標識別 視 覺基 礎 底層 處理 圖 像處理 特徵提取 中層 處理 圖 像分割 相機標定 深度估 計 運動 估計 高層處理 3d重 建 目標 識別...

計算機視覺

眾所周知,計算機不認識影象,只認識數字。為了使計算機能夠 理解 影象,從而具有真正意義上的 視覺 本章我們將研究如何從影象中提取有用的資料或資訊,得到影象的 非影象 的表示或描述,如數值 向量和符號等。這一過程就是特徵提取,而提取出來的這些 非影象 的表示或描述就是特徵。有了這些數值或向量形式的特徵...