數字影像處理相關練習

saitama_kakasan發表於2020-10-14

一、前言

10.10數字影像處理作業,對一張影像進行以下操作:
1、 直方圖均衡化
2、 用平滑濾波器(均值濾波和中值濾波)過濾影像
3、 用銳化濾波器(梯度運算元和拉普拉斯運算元)過濾影像

本次作業主要使用Python + OpenCV來實現。

二、 如何安裝OpenCV

使用Python自帶的pip工具進行下載,一般下載的Python都會繫結pip工具,用來自動擴充Python外掛包。
 win+R開啟程式之後輸入cmd
 在控制檯輸入【pip install opencv-python】即可自動安裝
 如果網速下載過慢,開vpn即可提速,因為資源點在國外所以訪問很慢。

三、 直方圖均衡化

  1. 簡介
     直方圖均衡化,是一種對對比度進行調整的影像處理方法。
     目的在於提高影像的全域性對比度,使亮的地方更亮,暗的地方更暗。
     常被用於背景和前景都太亮或者太暗的影像,尤其是 X 光中骨骼的顯示以及曝光過度或者曝光不足的圖片的調整。
     實現原理,儘量將圖片的灰度分佈,均勻分佈在整個0-255的灰度座標軸上,使其儘可能的佔滿座標軸。 在這裡插入圖片描述

  2. 核心程式碼
    在這裡插入圖片描述

  3. 效果圖
    在這裡插入圖片描述

  4. 補充,彩色直方圖均衡化
    原理和普通(灰度)直方圖均衡化一樣,是拉長當前紅黃藍三個色域至整個座標軸。
    程式碼及示例圖如下:
    在這裡插入圖片描述
    在這裡插入圖片描述

四、 平滑濾波器

平滑濾波的目的有兩類:
 一類是模糊;
 另一類是消除噪音。
以下使用均值濾波和中值濾波兩種方法來測試:

均值濾波

  1. 簡介
     均值濾波法的思想是通過一點和鄰域內畫素點求平均來去除突變的畫素點,從而濾掉一定噪聲
     其優點是演算法簡單,計算速度快,其代價會造成影像在一定程度上的模糊。

  2. 核心程式碼
    在這裡插入圖片描述

  3. 效果圖
    在這裡插入圖片描述

中值濾波

  1. 簡介
     中值濾波屬於非線性的的空間濾波器。
     它是將畫素(中值計算中包括的原畫素值)鄰域內灰度的中值代替該畫素的值。
     假設視窗內有五點,其值為80、90、200、110和120,那麼此視窗內各點的中值則為110。
     中值濾波器的使用非常普遍,這是因為對於一定型別的隨機噪聲,它提供了優秀的去噪能力,比小尺寸的線性平滑濾波器(就是說均值濾波)的模糊程度明顯要低。

  2. 核心程式碼
    在這裡插入圖片描述

  3. 效果圖
    在這裡插入圖片描述

備註,下面的是均值濾波,上面的模糊程度更小。
在這裡插入圖片描述

五、 銳化濾波器

如果說平滑濾波器是用來模糊和去噪,那麼銳化濾波器就完全相反,是用來突出影像細節的工具。類似於全能掃描王,手機掃描完圖片之後往往要進行銳化處理,讓蚊子變得更加清晰可見(但是這個app具體用的什麼演算法我不知道)。
銳化濾波器主要有兩種銳化方法:
 使用一階微分的影像銳化:梯度銳化
 使用二階微分的影像銳化:拉普拉斯銳化

梯度運算元

  1. 簡介
    首先介紹下梯度,梯度並非是一個數值,梯度嚴格意義上是一個向量。
    梯度運算元中,鄰域的畫素對當前畫素產生的影響不是等價的,所以距離不同的畫素具有不同的權值,對運算元結果產生的影響也不同。
    特點:銳化的邊緣資訊較強

  2. 核心程式碼
    在這裡插入圖片描述

  3. 效果圖
    以下分別是原圖、進行x座標處理的圖、Y座標處理的圖、和最終銳化圖
    在這裡插入圖片描述

看起來邊緣新的的銳化效果,確實很強,再看看拉普拉斯。

拉普拉斯運算元

  1. 簡介
    拉普拉斯運算元,是二階微分線性運算元,與一階微分相比,二階微分的邊緣定位能力更強,銳化效果更好。
    在這裡插入圖片描述

  2. 核心程式碼
    在這裡插入圖片描述

  3. 效果圖
    在這裡插入圖片描述

 相比於梯度運算元,有一定的抗干擾性,影像效果比較乾淨
 之所以像粉筆畫,是因為原影像未經過去噪就直接處理了。
 可以先平滑濾波、高斯模糊來先處理一下再用拉普拉斯函式。

在這裡插入圖片描述

相關文章