關於圖像處理的那些小事
你點開了【學生會技術分享系列】的第3篇推送
全文字數: 707
閱讀時間:5分鐘
隨著人工智慧的快速發展,圖像的處理成為了一項必不可少的操作,今天,剛剛接觸一點點圖像處理的小編就來為大家普及一下有關計算機圖像的一些處理。
寫在前面
一張圖像是由許多的像素點組成的,這個大家都知道,隨之而來的兩個性質就是顏色通道與圖像深度。
現在有許多針對圖像處理的庫可以使用,最普遍的比如C++中的Opencv庫,Python中的PIL庫以及matlab中的一系列圖像處理函數。
圖像
圖像深度是指存儲每個像素所用的位數,例如8點陣圖像的像素值在0-255之間,即為灰度圖。
每個圖像都有一個或多個顏色通道,所有顏色通道中的顏色疊加混合產生圖像中像素的顏色,例如RGB圖像有三個通道,即R(紅色),G(綠色),B(藍色)。而RGBA圖像在此基礎上增加了Alpha(透明度)這一通道。
濾波
均值濾波
高斯濾波
圖像濾波,指在盡量保留圖像細節特徵的條件下對目標圖像的雜訊進行抑制,濾波器有很多種,在這裡我們只說兩種種線性平滑濾波器。
均值濾波:在圖像上對目標像素給一個模板,該模板包括了其周圍的臨近像素,再用模板中的全體像素的平均值來代替原來像素值。
高斯濾波:均值濾波為了取平均,所以模板的各個值都是一樣的,但高斯濾波就是利用高斯分布,給濾波的模板賦相應的權重,將模板內像素進行加權平均得到輸出像素值。
在圖像濾波中,這個模板稱為內核,步長決定了你每次移動內核的距離,有時你還可以使被替代像素的位置不是內核的中心像素。
灰度化
灰度圖
灰度化,即根據Gray=R*0.3+G*0.59+B*0.11,將顏色空間縮小為0-255的灰度空間。灰度化生成的圖像為灰度圖。
二值化
二值化圖像
二值化,即在灰度圖的基礎上,給定一個閾值,像素值若大於這個閾值,則為255(白色),小於這個閾值,則為0(黑色)
邊緣檢測
邊緣檢測的演算法主要是基於圖像強度的一階和二階導數,通過使用不同的運算元進行處理,最後將結果顯示在圖像上即為檢測出的邊緣。
在這裡我們只展示Canny運算元和Sobel運算元的效果,具體的操作原理不再詳述。
sobel運算元檢測邊緣
canny運算元檢測邊緣
直方圖均衡化
說到均衡化,就不得不提直方圖的概念。
灰度直方圖描述的是圖像中具有相同灰度級的像素的個數,它是圖像灰度的函數。在平面坐標系中,如果用橫坐標表示灰度級(0-255),則縱坐標就代表該灰度級的像素的個數。
當然,如果是彩色圖像,則可以畫出RGB三個通道分別的直方圖。即為彩色圖片直方圖。
直方圖均衡化,簡而言之,就是通過拉伸像素強度分布範圍來增強圖像對比度的方法。再說簡單點,就是把像素值在0-255的灰度空間的分布按照概率平均到整個灰度空間。
左為原灰度圖,右為均衡化後圖像
關於圖像的操作遠不止於此,因為是科普性質的推文,所以許多原理與具體應用,小編用這點篇幅也無法全部說明。如果有錯誤,希望大家諒解並予以指正。
如果想在這方面做更深入地了解,以下鏈接供大家參考:
https://docs.opencv.org/master/d9/df8/tutorial_root.html
https://cn.mathworks.com/
TAG:上海交大電院學生會 |