顯示具有 影像處理 標籤的文章。 顯示所有文章
顯示具有 影像處理 標籤的文章。 顯示所有文章

2019年7月27日 星期六

Image Processing 影像的縮放

影像的放大和縮小,必伴隨影像中Pixel的增加或減少,而我們要討論的就是要增加或減少那些Pixel
現在主流的影像縮小放大演算法有以下三種

  • 最近鄰居法(Nearest Neighbor):最簡單,最快速的算法。以影像的放大為例,作法是將放大影像的座標點換算回原始影像上,與原始影像哪個座標點最近,就取其Pixel值做為新Pixel值
  • 雙線性插值(Bilinear Interpolation):視覺上會比Nearest Neighbor要好一些,但運算量稍大。以影像的放大為例,作法是將放大影像的座標點換算回原始影像上,通常不會是整數位置,若是小數位置即跟周圍的四個點按距離按比例計算Pixel,做為新Pixel值,以下為例子:
    欲求的點:P(x,y)
    四鄰點:Q11(x1,y1)、Q12(x1,y2)、Q21(x2,y1)、Q22(x2,y2)
    設距離:a' = x2 - x1 、b' = y2 - y1、a = x - x1 、b= y - y1
    P(x,y) = ( (a'-a)(b'-b)Q11 + a(b'-b)Q21 + b(a'-a)Q12 + abQ22 ) / ( a' * b' )
    圖片
  • Bicubic Interpolation
如何換算回原始的影像:
反向映射計算方法,就是將放大或縮小的影像坐標乘上其倍數的倒數,即可大致得到其在原圖中的位置。

如:2*2 放大 2倍 --> 4*4。

4*4 像素點反向映射: 

(0,0)*1/2 = (0,0),(1,0)*1/2 = (0.5,0),(2,0)*1/2 = (1,0),(3,0)*1/2 = (1.5,0) 

(1,1)*1/2 = (0.5,0.5),(2,2)*1/2 = (1,1),(3,3)*1/2 = (1.5,1.5) .........


Reference:
https://jason-chen-1992.weebly.com/home/nearest-neighbor-and-bilinear-interpolation
https://blog.csdn.net/weixin_35811044/article/details/84242921

2019年7月25日 星期四

Image Processing 大津二值化(Otsu's)

影像的二值化,指的是用灰階影像轉成為二值影像,二值影像即一個Pixel只有兩種變化:全黑(0)或是全白(255),單獨紀錄二值影像每個Pixel只要1bit就足夠了

而要將一個灰階影像二值化,你就要能夠很好的區分那些是背景,哪些是前景,或者說哪個部分要全黑,哪個部分要全白,這裡就要靠找的一個適合的Threshold(閥值),把大於Threshold的Pixel設為全白,反之設回全黑。
Threshold我們可以自己手動設定,也可以用自動化的方法,Otsu就是一個不錯的方法,透過計算找到最佳的Threshold。

Image Processing 灰階影像分割(bit-plane slicing)

灰階影像:通常每個Pixel是由8個bit組成,即有256種變化。然而每個Pixel的8個bit,從最高位到最低位攜帶的信息量是逐漸遞減的,可以看下面幾張圖

2019年7月24日 星期三

Image Processing 影像濾波器

markdown 在提影像濾波器之前,要先來講影像中的頻率:

###影像的頻率指的是影像顏色變化的劇烈程度。

頻率又分兩種:低頻分量和高頻分量

低頻分量:一張圖中,顏色變化緩慢的部分叫做低頻部分。通常是描述影像的主要部分,比如人的臉

高頻分量:一張圖中,顏色變化劇烈的部分叫做高頻部分。通常是描述影像的邊緣部分,比如臉的輪廓、臉上的青春痘等。

我們知道影像每個pixel是由R、G、B三個channel所組成,所以這裡的影像的頻率通常是把影像轉成灰階,變成單一的channel,這樣才好判斷顏色的變化