圖像處理

這篇文章總結(jié)比較全面:
http://blog.csdn.net/timidsmile/article/details/6640600

  • HSV顏色空間

    [HSV]是把H(色相),S(飽和度),V(亮度)當(dāng)做色值來定位顏色的空間。色相的取值范圍是0-360度,用來表示顏色的類別。其中紅色是0度,綠色是120度,藍(lán)色是240度。飽和度的取值范圍是0%-100%用來表示顏色的鮮艷程度,灰色的飽和度是0%,純粹的顏色(比如大紅(255,0,0)青色(0,255,255)等等的飽和度是[100%]亮度的取值范圍是0%-100%,用來表示顏色的明暗程度,亮度為0%時為黑色,亮度為100%時為白色,介于0%~100%之間時,則用來表示各個顏色的明暗程度。
    相對于[RGB]空間能夠非常直觀的表達(dá)色彩的明暗,色調(diào),以及鮮艷程度,方便進(jìn)行顏色之間的對比,也方便感情的傳達(dá)。但是缺點是不能直接把顏色值傳達(dá)給顯示器,在轉(zhuǎn)換過程中消耗系統(tǒng)資源。

  • 最臨近插值:

    圖像的縮放很好理解,就是圖像的放大和縮小。傳統(tǒng)的繪畫工具中,有一種叫做“放大尺”的繪畫工具,畫家常用它來放大圖畫。當(dāng)然,在計算機(jī)上,我們不再需要用放大尺去放大或縮小圖像了,把這個工作交給程序來完成就可以了。下面就來講講計算機(jī)怎么來放大縮小圖象;在本文中,我們所說的圖像都是指點陣圖,也就是用一個像素矩陣來描述圖像的方法,對于另一種圖像:用函數(shù)來描述圖像的矢量圖,不在本文討論之列。
    越是簡單的模型越適合用來舉例子,我們就舉個簡單的圖像:3X3 的256級灰度圖,也就是高為3個象素,寬也是3個象素的圖像,每個象素的取值可以是 0-255,代表該像素的亮度,255代表最亮,也就是白色,0代表最暗,即黑色。假如圖像的象素矩陣如下圖所示(這個原始圖把它叫做源圖,Source):
    234 38 22
    67 44 12
    89 65 63
    這個矩陣中,元素坐標(biāo)(x,y)是這樣確定的,x從左到右,從0開始,y從上到下,也是從零開始,這是圖象處理中最常用的坐標(biāo)系,就是這樣一個坐標(biāo):
    ---------------------->X
    |
    |
    |
    |
    |
    Y∨
    如果想把這副圖放大為 4X4大小的圖像,那么該怎么做呢?那么第一步肯定想到的是先把4X4的矩陣先畫出來再說,好了矩陣畫出來了,如下所示,當(dāng)然,矩陣的每個像素都是未知數(shù),等待著我們?nèi)ヌ畛洌ㄟ@個將要被填充的圖的叫做目標(biāo)圖,Destination):
    ? ? ? ?
    ? ? ? ?
    ? ? ? ?
    ? ? ? ?
    現(xiàn)在從最簡單的情況說起
    1.最近鄰插值
    該算法是最簡單的插值算法,就只是把放大后缺失的點的像素值用最靠近的原圖的像素值直接填進(jìn)去就可以了,比如坐標(biāo)為(0,0),那么該坐標(biāo)對應(yīng)源圖中的坐標(biāo)可以由如下公式得出:
    放大系數(shù)t=dstWidth/srcWidth=4/3
    srcX=dstX/t, srcY = dstY/t
    好了,套用公式,就可以找到對應(yīng)的原圖的坐標(biāo)了(0/(4/3),0/(4/3))=>(0,0)
    ,找到了源圖的對應(yīng)坐標(biāo),就可以把源圖中坐標(biāo)為(0,0)處的234象素值填進(jìn)去目標(biāo)圖的(0,0)這個位置了。
    接下來,如法炮制,尋找目標(biāo)圖中坐標(biāo)為(1,0)的象素對應(yīng)源圖中的坐標(biāo),套用公式:
    (1/0.75,00.75)=>(0.75,0)
    結(jié)果發(fā)現(xiàn),得到的坐標(biāo)里面竟然有小數(shù),這可怎么辦?計算機(jī)里的圖像可是數(shù)字圖像,象素就是最小單位了,象素的坐標(biāo)都是整數(shù),從來沒有小數(shù)坐標(biāo)。這時候采用的一種策略就是采用四舍五入的方法(也可以采用直接舍掉小數(shù)位的方法),把非整數(shù)坐標(biāo)轉(zhuǎn)換成整數(shù),好,那么按照四舍五入的方法就得到坐標(biāo)(1,0),完整的運(yùn)算過程就是這樣的:
    (1
    0.75,0*0.75)=>(0.75,0)=>(1,0)
    那么就可以再填一個象素到目標(biāo)矩陣中了,同樣是把源圖中坐標(biāo)為(1,0)處的像素值38填入目標(biāo)圖中的坐標(biāo)。
    依次填完每個象素,一幅放大后的圖像就誕生了,像素矩陣如下所示:
    234 38 22 22
    67 44 12 12
    89 65 63 63
    89 65 63 63
    這種放大圖像的方法叫做最臨近插值算法,這是一種最基本、最簡單的圖像縮放算法,效果也是最不好的,放大后的圖像有很嚴(yán)重的馬賽克,縮小后的圖像有很嚴(yán)重的失真;效果不好的根源就是其簡單的最臨近插值方法引入了嚴(yán)重的圖像失真。

  • 雙線性內(nèi)插值算法:

    對于一個目的像素,設(shè)置坐標(biāo)通過反向變換得到的浮點坐標(biāo)為(i+u,j+v) (其中i、j均為浮點坐標(biāo)的整數(shù)部分,u、v為浮點坐標(biāo)的小數(shù)部分,是取值[0,1)區(qū)間的浮點數(shù)),則這個像素得值 f(i+u,j+v) 可由原圖像中坐標(biāo)為 (i,j)、(i+1,j)、(i,j+1)、(i+1,j+1)所對應(yīng)的周圍四個像素的值決定,即:
      f(i+u,j+v) = (1-u)(1-v)f(i,j) + (1-u)vf(i,j+1) + u(1-v)f(i+1,j) + uvf(i+1,j+1)
    其中f(i,j)表示源圖像(i,j)處的的像素值,以此類推。
    比如,象剛才的例子,現(xiàn)在假如目標(biāo)圖的象素坐標(biāo)為(1,1),那么反推得到的對應(yīng)于源圖的坐標(biāo)是(0.75 , 0.75), 這其實只是一個概念上的虛擬象素,實際在源圖中并不存在這樣一個象素,那么目標(biāo)圖的象素(1,1)的取值不能夠由這個虛擬象素來決定,而只能由源圖的這四個象素共同決定:(0,0)(0,1)(1,0)(1,1),而由于(0.75,0.75)離(1,1)要更近一些,那么(1,1)所起的決定作用更大一些,這從公式1中的系數(shù)uv=0.75×0.75就可以體現(xiàn)出來,而(0.75,0.75)離(0,0)最遠(yuǎn),所以(0,0)所起的決定作用就要小一些,公式中系數(shù)為(1-u)(1-v)=0.25×0.25也體現(xiàn)出了這一特點。

  • 空間處理

  • 頻域處理

  • 檢測

  • Canny算子

    該算子功能比前面幾種都要好,但是它實現(xiàn)起來較為麻煩,Canny算子是一個具有濾波,增強(qiáng),檢測的多階段的優(yōu)化算子,在進(jìn)行處理前,Canny算子先利用高斯平滑濾波器來平滑圖像以除去噪聲,Canny分割算法采用一階偏導(dǎo)的有限差分來計算梯度幅值和方向,在處理過程中,Canny算子還將經(jīng)過一個非極大值抑制的過程,最后Canny算子還采用兩個閾值來連接邊緣。
    Canny邊緣檢測算法
    step1: 用高斯濾波器平滑圖象;
    step2: 用一階偏導(dǎo)的有限差分來計算梯度的幅值和方向;
    step3: 對梯度幅值進(jìn)行非極大值抑制
    step4: 用雙閾值算法檢測和連接邊緣
    詳解:http://www.cnblogs.com/cfantaisie/archive/2011/06/05/2073168.html
    (1)圖象邊緣檢測必須滿足兩個條件:一能有效地抑制噪聲;二必須盡量精確確定邊緣的位置。
    (2)根據(jù)對信噪比與定位乘積進(jìn)行測度,得到最優(yōu)化逼近算子。這就是Canny邊緣檢測算子。
    (3)類似與Marr(LoG)邊緣檢測方法,也屬于先平滑后求導(dǎo)數(shù)的方法。

  • Sobel算子

    其主要用于邊緣檢測,在技術(shù)上它是以離散型的差分算子,用來運(yùn)算圖像亮度函數(shù)的梯度的近似值, Sobel算子是典型的基于一階導(dǎo)數(shù)的邊緣檢測算子,由于該算子中引入了類似局部平均的運(yùn)算,因此對噪聲具有平滑作用,能很好的消除噪聲的影響。Sobel算子對于象素的位置的影響做了加權(quán),與Prewitt算子、Roberts算子相比因此效果更好。
    Sobel算子包含兩組3x3的矩陣,分別為橫向及縱向模板,將之與圖像作平面卷積,即可分別得出橫向及縱向的亮度差分近似值。實際使用中,常用如下兩個模板來檢測圖像邊緣。
    檢測水平邊沿 橫向模板 :

    Snip20170914_1.png

    檢測垂直平邊沿 縱向模板:
    ![Uploading Snip20170914_3_264834.png . . .]

    圖像的每一個像素的橫向及縱向梯度近似值可用以下的公式結(jié)合,來計算梯度的大小。
    Snip20170914_3.png

    然后可用以下公式計算梯度方向。
    Snip20170914_4.png

    在以上例子中,如果以上的角度Θ等于零,即代表圖像該處擁有縱向邊緣,左方較右方暗。缺點是Sobel算子并沒有將圖像的主題與背景嚴(yán)格地區(qū)分開來,換言之就是Sobel算子并沒有基于圖像灰度進(jìn)行處理,由于Sobel算子并沒有嚴(yán)格地模擬人的視覺生理特征,所以提取的圖像輪廓有時并不能令人滿意。

  • 直方圖的性質(zhì):

    1,直方圖反映了圖像中的灰度分布規(guī)律。它描述每個灰度級具有的像元個數(shù),但不包含這些像元在圖像中的位置信息。
    2,任何一幅特定的圖像都有唯一的直方圖與之對應(yīng),但不同的圖像可以有相同的直方圖。
    3,如果一幅圖像有兩個不相連的區(qū)域組成,并且每個區(qū)域的直方圖已知,則整幅圖像的直方圖是該兩個區(qū)域的直方圖之和

  • 直方圖處理

    1.直方圖均衡:增強(qiáng)對比度,補(bǔ)償圖像在視覺上難以區(qū)分灰度級的差別。作為自適應(yīng)對比度增強(qiáng)工具,功能強(qiáng)大。
    1.直方圖匹配(直方圖規(guī)定化):變換原圖的直方圖為規(guī)定的某種形式的直方圖,從而使兩幅圖像具有類似的色調(diào)和反差。直方圖匹配屬于非線性點運(yùn)算。在直方圖均衡的基礎(chǔ)上規(guī)定化,有利于解決像素集中于灰度級暗端的圖像。
    1.局部直方圖處理:用于增強(qiáng)小區(qū)域的細(xì)節(jié),方法是以圖像中的每個像素鄰域中的灰度分布為基礎(chǔ)設(shè)計變換函數(shù),可用于顯示全局直方圖均衡化不足以影響的細(xì)節(jié)的顯示。
    1.5.4直方圖統(tǒng)計:可用于圖像增強(qiáng),能夠增強(qiáng)暗色區(qū)域同時盡可能的保留明亮區(qū)域不變,靈活性好。

  • 詳細(xì)參考

    http://blog.csdn.net/taoyanqi8932/article/details/52758376
    http://blog.csdn.net/guoyk1990/article/details/8112552 (直方圖匹配)

  • 常見噪音以及處理

  • 常見噪音分類

a)高斯噪聲
在空間域和頻域中,由于高斯噪聲在數(shù)學(xué)上的易處理性,這種噪聲(也稱為正態(tài)噪聲)模型經(jīng)常被用在實踐中,事實上,這種易處理性非常方便,使高斯模型經(jīng)常適用于臨街情況下。
b)瑞利噪聲
需注意,距原點的位移和其密度圖形的基本形狀向右變形的事實。瑞利密度對于近似偏移的直方圖十分適用。
c)伽馬(愛爾蘭)噪聲
d)指數(shù)分布噪聲
e)均勻分布噪聲
f)脈沖噪聲(椒鹽噪聲)
雙極脈沖噪聲也稱為椒鹽噪聲,同時,它們有時也稱為散粒和尖峰噪聲。
上述的幾種PDF為在實踐中模型化寬帶噪聲干擾狀態(tài)提供了有用的工具。例如,在一副圖像中,高斯噪聲的產(chǎn)生源于電子電路噪聲和有低照明度或高溫帶來的傳感器噪聲。瑞利密度分布在圖像范圍內(nèi)特征化噪聲現(xiàn)象時非常有用。指數(shù)密度分布和伽馬密度分布在激光成像中有一些應(yīng)用。脈沖噪聲主要表現(xiàn)在成像中的短暫停留中,例如錯誤的開關(guān)操作。均勻密度分布可能是在實踐中描述的最少,然而,均勻密度座位模擬隨機(jī)數(shù)產(chǎn)生器的基礎(chǔ)是非常有用的。

  • 處理

參考博客:
http://blog.csdn.net/zhoufan900428/article/details/37695357

  • 模式識別

  • 圖像匹配

  • 卷積和相關(guān)
    兩個函數(shù),翻轉(zhuǎn)其中一個,再滑動求積分,叫做卷積;不翻轉(zhuǎn)就滑動求積分,叫做互相關(guān),如果其中一個為偶函數(shù),那么卷積和相關(guān)效果相同.

  • 什么是卷積

    用一個模板和一幅圖像進(jìn)行卷積,對于圖像上的一個點,讓模板的原點和該點重合,然后模板上的點和圖像上對應(yīng)的點相乘,然后各點的積相加,就得到了該點的卷積值。對圖像上的每個點都這樣處理。由于大多數(shù)模板都是對稱的,所以模板不旋轉(zhuǎn)。

  • 卷積的作用

利用卷積可以實現(xiàn)對圖像模糊處理、平滑處理,邊緣檢測,產(chǎn)生軋花效果的圖像。
創(chuàng)建模板:


Snip20170920_3.png
  • 傅里葉變換

傅立葉變換在這里的物理意義就是將光的空間分布轉(zhuǎn)換為頻率分布(相空間),在靠近原點的部分為圖像低頻部分,遠(yuǎn)離原點部分為圖像高頻部分。

  • 形態(tài)學(xué)

    形態(tài)學(xué)操作就是基于形狀的一系列圖像處理操作。OpenCV為進(jìn)行圖像的形態(tài)學(xué)變換提供了快捷、方便的函數(shù)。最基本的形態(tài)學(xué)操作有二種,他們是:膨脹與腐蝕(Dilation與Erosion)。
    膨脹與腐蝕能實現(xiàn)多種多樣的功能,主要如下:
    1,消除噪聲
    2,分割(isolate)出獨立的圖像元素,在圖像中連接(join)相鄰的元素。
    3,尋找圖像中的明顯的極大值區(qū)域或極小值區(qū)域
    4,求出圖像的梯度

    腐蝕和膨脹是對白色部分(高亮部分)而言的,不是黑色部分。膨脹就是圖像中的高亮部分進(jìn)行膨脹,“領(lǐng)域擴(kuò)張”,效果圖擁有比原圖更大的高亮區(qū)域。腐蝕就是原圖中的高亮部分被腐蝕,“領(lǐng)域被蠶食”,效果圖擁有比原圖更小的高亮區(qū)域。

  • 膨脹

    膨脹就是求局部最大值的操作。
    按數(shù)學(xué)方面來說,膨脹或者腐蝕操作就是將圖像(或圖像的一部分區(qū)域,我們稱之為A)與核(我們稱之為B)進(jìn)行卷積。
    核可以是任何的形狀和大小,它擁有一個單獨定義出來的參考點,我們稱其為錨點(anchorpoint)。多數(shù)情況下,核是一個小的中間帶有參考點和實心正方形或者圓盤,其實,我們可以把核視為模板或者掩碼。
    而膨脹就是求局部最大值的操作,核B與圖形卷積,即計算核B覆蓋的區(qū)域的像素點的最大值,并把這個最大值賦值給參考點指定的像素。這樣就會使圖像中的高亮區(qū)域逐漸增長。如下圖所示,這就是膨脹操作的初衷。


    Snip20170921_1.png
  • 腐蝕

    腐蝕就是求局部最小值的操作

  • 開運(yùn)算

    開運(yùn)算(Opening Operation),其實就是先腐蝕后膨脹的過程。開運(yùn)算可以用來消除小物體、在纖細(xì)點處分離物體、平滑較大物體的邊界的同時并不明顯改變其面積。

  • 閉運(yùn)算

    先膨脹后腐蝕的過程稱為閉運(yùn)算(Closing Operation),閉運(yùn)算能夠排除小型黑洞(黑色區(qū)域)


    Snip20170921_2.png
  • 形態(tài)學(xué)梯度

    形態(tài)學(xué)梯度(Morphological Gradient)為膨脹圖與腐蝕圖之差,對二值圖像進(jìn)行這一操作可以將團(tuán)塊(blob)的邊緣突出出來。我們可以用形態(tài)學(xué)梯度來保留物體的邊緣輪廓.


    Snip20170921_3.png
  • 頂帽

    頂帽運(yùn)算(Top Hat)又常常被譯為”禮帽“運(yùn)算。為原圖像與上文剛剛介紹的“開運(yùn)算“的結(jié)果圖之差

  • 黑帽

    黑帽(Black Hat)運(yùn)算為”閉運(yùn)算“的結(jié)果圖與原圖像之差。黑帽運(yùn)算后的效果圖突出了比原圖輪廓周圍的區(qū)域更暗的區(qū)域,且這一操作和選擇的核的大小相關(guān)。
    所以,黑帽運(yùn)算用來分離比鄰近點暗一些的斑塊。非常完美的輪廓效果圖:


    Snip20170921_4.png
  • 相機(jī)標(biāo)定

攝像機(jī)標(biāo)定(Camera calibration)簡單來說是從世界坐標(biāo)系換到圖像坐標(biāo)系的過程,也就是求最終的投影矩陣的過程。
http://www.cnblogs.com/Jessica-jie/p/6596450.html

  • 關(guān)于YUV
Snip20180816_3.png

Snip20180816_4.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 不同圖像灰度不同,邊界處一般會有明顯的邊緣,利用此特征可以分割圖像。需要說明的是:邊緣和物體間的邊界并不等同,邊緣...
    大川無敵閱讀 13,948評論 0 29
  • 知乎上看到一個話題——目前火熱的 Deep Learning 會滅絕傳統(tǒng)的 SIFT / SURF 特征提取方法嗎...
    牛奶芝麻閱讀 101,011評論 4 81
  • 本文轉(zhuǎn)自 python數(shù)字圖像處理 圖像簡單濾波 對圖像進(jìn)行濾波,可以有兩種效果:一種是平滑濾波,用來抑制噪聲;另...
    jiandanjinxin閱讀 31,392評論 2 14
  • 本文轉(zhuǎn)自 python數(shù)字圖像處理 霍夫線變換 在圖片處理中,霍夫變換主要是用來檢測圖片中的幾何形狀,包括直線、圓...
    jiandanjinxin閱讀 33,510評論 6 23
  • 老六,你不是一個人在前行,這個世界有你真的是太美好! 你知道你是一個多么能承擔(dān)與忍耐的寶貝嗎?其實在Beyours...
    娜仁高娃閱讀 443評論 0 0