您當前的位置:首頁 > 書法

影象處理學習筆記(十一)——平滑處理基本概念(理論篇)

作者:由 6079 發表于 書法時間:2022-04-15

本篇文章學習介紹

影象的平滑處理

理論以及

噪聲消除方法

;灰度變換得程式碼會很快給大家見面並介紹;

一、平滑處理的基本方法

影象在獲取、傳輸過程中,受干擾的影響,會產生噪聲,噪聲是一種錯誤的訊號,干擾正常訊號。造成影象毛糙,需要對影象進行平滑處理;

影象去噪是一種訊號濾波的方法,且是保留有用訊號,去掉噪音訊號;

所以本篇文章圍繞怎樣保留有用訊號;但是去噪聲也會對有用的訊號產生副作用,所以我們要了解掌握去噪聲的那些方法中有哪些優缺點,便於我們在採用這些去噪的方法過程中,知道採取合適的去噪方法;

影象噪聲:噪聲干擾一般是隨機產生的,分佈不規則,大小也不規則。噪聲畫素的灰度是空間不相關的,在哪個位置都是隨機的,灰度值和位置都是隨機的,但是唯一的特點: 噪聲與我們想要的基本的主要資料是有區別的;

噪聲是隨機產生的,位置、亮度、分佈都是隨機的,所以我們要利用噪聲和影象很多差異性來處理這個噪聲,消除這個噪聲;

平滑的目的:

1、模糊

比如在拍攝一下大的物體,中間有些小細縫或者小窟窿、小孔;我們希望把這些去掉,跟周圍的物體同一個顏色,我們就用平滑的方法,在提取較大的物體前,去除太小的細節;在圖片中的小間斷的地方,將這些間斷連結起來;

2、消除噪聲

改善影象質量,降低干擾;平滑濾波是對低頻進行增量的增強,將高頻濾除掉;相當於底圖濾波器用來消除影象中的隨機噪聲,起到平滑的作用;

平滑也屬於影象增強的一部分:

空間域法:

在原影象上直接對畫素的灰度值進行處理;跟鄰域之間的關係,進行更改灰度值;分為點運算和區域性運算;點運算:是畫素下的灰度值跟鄰域沒有關係,直接用一個函式變換關係將這個灰度值增大或者減小,灰度變換就屬於點運算;

這篇文章主要講區域性運算,是畫素和周圍畫素之間的關係;

頻域法:在變換域上對影象進行影象變換,比如將影象進行復列變換;在頻域上提取感興趣的頻域分量,進行反變換,就得到了影象的增強;

影象的增強需要點增強或者模板的空域處理方法;基於模板的空域法是我們下面所研究的;

所以點運算和基於模板的空域濾波也是以後所學習的影象銳化的主要方法;

但是影象平滑和影象銳化用這兩種方法的主要區別是,前者是去除噪聲,後者是怎樣提取目標的輪廓,提取輪廓也為識別做準備;

基於模板的處理方法就要用“鄰域處理方法”;

鄰域處理方法:

鄰域是用一個模板在影象中移動,移動的位置就照著影象來,對應的畫素和模板上係數相乘,然後取和,把取和之後的平均值作為當前畫素值;總結是:用一種模板對每個像元與其周圍鄰域的所有像元進行某種運算,得到該像元的新的灰度值;

這裡就有問題了:模板是多大尺寸,模板和像元怎樣計算???所以我們的模板要和影象對上去,與所對應的像元進行數學運算得到新的灰度值,這個灰度值不僅取決於自己,而且跟鄰域都有關係。

影象處理學習筆記(十一)——平滑處理基本概念(理論篇)

圖一

影象處理學習筆記(十一)——平滑處理基本概念(理論篇)

圖二

圖一的模板係數都是1,係數之和是9,平均下來是1;

圖二中間是4,距離近的都是2,距離遠的都是1;這個屬於高斯型模板;

就是可以理解為模板係數的權重不一樣,平均值也是1。

模板的大小可以自己制定,可以是3*3,也可以是5*5;將模板照在影象上;

平滑去噪的處理方法有很多,基本的是:線性平滑、非線性平滑、自適應平滑;

線性平滑:每一個畫素的灰度值用其鄰域值代替,鄰域為N*N,N為奇數;畫素下的灰度值用鄰域值代替,比如上面的圖一模板,或者用具有加減係數不同的模板,對應累加取和;

非線性平滑:改進,一個閾值,當畫素值與其鄰域平均值之間的差大於閾值時,用鄰域代替,反之取其本身值;模板取完平均值之後,假如平均值出格,出格一點,我們可以用原來的原畫素;如果出格太大,我們可以用均值代替;

自適應平滑:物體邊緣在不同方向上的統計特性,即不同的均值和方差,為保留一定的邊緣資訊採取自適應法;取不同方向上的模板,不同的大小,不同的係數,我們看哪個方向能去除噪聲;

影象平滑方法:鄰域平均法(鄰域減少噪音的同時,損失了高頻資訊)、鄰域加權平均法,選擇式掩模法,中值濾波(即消除噪聲又保持影象的細節,可以消除孤立的噪聲點,不會造成邊緣的模糊);

對於鄰域平均法和鄰域加權平均法要考慮如何選擇鄰域的大小(3x3,???5x5???)、形狀(矩形?方型?)、方向???如何選擇點數???權重的係數???我們要考慮這些問題;

對於模板有很多地方用到,是一種常用的運算方式,平滑、銳化、細化、邊緣檢測等等都會用到模板的運算方式;

模板的特性:模板可為正數、也可以為正為負;為正就跟鄰域取平均值,有正有負就求偏差,有變化量;

模板在不同的鄰域裡面有不同的叫法:濾波器、掩模、核、窗等等;模板和照在影象中的大小是相同的;模板的平均係數之和為1;對與圖一中的模板中間的1為要處理的畫素,當模板在影象中移動,模板中間的值移動到哪個畫素,這個畫素就是要處理計算的畫素;比如對於圖一模板,就是將原圖中的一個畫素的灰度值和相鄰的8個畫素值相加,平均值作為中心值;

模板在影象中怎樣移動呢???怎樣計算呢???

如下圖:

影象處理學習筆記(十一)——平滑處理基本概念(理論篇)

如上圖中的影象畫素點,是我們要平滑處理的畫素;讓模板移動到這裡,模板的中心和這個畫素對上,假如模板是3*3,畫素也取3*3的鄰域,當模板到這裡後,得到矩陣P;將模板K照到P上;P1*K1+P2*K2+…………。。。。。+P9*K9得到新的經過平滑處理的畫素值;

用公式來表達:卷積運算

在M*N的影象f上,用m*n大小的掩模:

影象處理學習筆記(十一)——平滑處理基本概念(理論篇)

其中a= (m-1)/2且b=(n-1)/2,處理掩模長於寬都為奇數,簡化表達形式為

影象處理學習筆記(十一)——平滑處理基本概念(理論篇)

模板上的權重乘以對應位置上的畫素,累加取和除以模板和的值,得到新的xy位置值;

如果模板是3*3的話,那就是從-1到1在水平方向上就是x-1到x+1,在數值高度上就是y-1到y+1;累加和中a和b的取值分別是模板的大小減去1除以2;

卷積運算:卷積就是加權求和的過程。卷積核就是模板,大小與鄰域相同;鄰域中的每個畫素分別與卷積核中的每一個元素相乘,求和結果即為中心畫素的新值。卷積核中的元素稱作加權係數(卷積係數),係數的大小及排列順序,決定了處理的型別。改變加權係數與符號,會影響新值;係數為正值是為了去噪聲,為正為負是為了提取輪廓;

模板操作:

鄰域運算:即某個畫素點的結果不僅和本畫素灰度有關,而且和其鄰域點的值有關;

模板運算:模板運算其實就是卷積運算,卷積運算是一種用途很廣的演算法,可以用卷積完成各種處理變換;

邊界問題(卷積懸掛):

當在影象上移動模板(卷積核)至影象邊界時,在原影象中找不到與卷積核中的加權係數相對應的9個畫素,即卷積核懸掛在影象快取區的邊界上,這種現象在影象上下左右四個邊界均會出現;

解決邊界問題方法:

1、忽略影象邊界資料,這是平時多采用的方法;

2、在影象周圍複製原影象邊界畫素值,從而是卷積懸掛在影象四周時可以正常進行運算;

3、計算出來的畫素值超出問題可以簡單直接設為固定值0到255;

卷積步驟:

1、將模板在圖中漫遊,並將模板中心與影象中某個畫素位置重合;

2、將模板上下係數與模板下對應畫素相乘;

3、將所有乘積相加;

4、將和賦值給圖中對應模板中心位置的畫素;

二、噪聲消除法

介紹常用的噪聲消除方法;

1、二值影象的黑白點噪聲濾波;

2、消除孤立黑畫素點;

二值影象黑白點噪聲濾波:

用3*3模板的均值濾波:

(i , j)周圍的8個畫素的平均值為a時,若|f(i , j) - a|>127。5,則對該畫素黑白翻轉;若不到127。5,則該畫素值不變;

模板

影象處理學習筆記(十一)——平滑處理基本概念(理論篇)

相對於對影象中畫素點周圍的畫素點進行取平均值,當前位置和平均值做比較,看看有什麼關係:假如:周圍8個都是白的,中間畫素都是黑的,那肯定是噪聲了;那麼就用平均值取代該畫素;

實現步驟:

1、取得影象的大小、資料區,並把資料區複製到緩衝區;

2、迴圈影象各個點畫素值;

3、取得該畫素周圍8個畫素值的平均值;

4、平均值與該點畫素值相比,若大於127。5則把該點顏色翻轉;

有理解錯誤的請大家指出,一起學習一起進步;

標簽: 模板  畫素  影象  鄰域  噪聲