圖像處理

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

  • HSV顏色空間

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

  • 最臨近插值:

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

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

    對(duì)于一個(gè)目的像素,設(shè)置坐標(biāo)通過(guò)反向變換得到的浮點(diǎn)坐標(biāo)為(i+u,j+v) (其中i、j均為浮點(diǎn)坐標(biāo)的整數(shù)部分,u、v為浮點(diǎn)坐標(biāo)的小數(shù)部分,是取值[0,1)區(qū)間的浮點(diǎn)數(shù)),則這個(gè)像素得值 f(i+u,j+v) 可由原圖像中坐標(biāo)為 (i,j)、(i+1,j)、(i,j+1)、(i+1,j+1)所對(duì)應(yīng)的周圍四個(gè)像素的值決定,即:
      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),那么反推得到的對(duì)應(yīng)于源圖的坐標(biāo)是(0.75 , 0.75), 這其實(shí)只是一個(gè)概念上的虛擬象素,實(shí)際在源圖中并不存在這樣一個(gè)象素,那么目標(biāo)圖的象素(1,1)的取值不能夠由這個(gè)虛擬象素來(lái)決定,而只能由源圖的這四個(gè)象素共同決定:(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)出來(lái),而(0.75,0.75)離(0,0)最遠(yuǎn),所以(0,0)所起的決定作用就要小一些,公式中系數(shù)為(1-u)(1-v)=0.25×0.25也體現(xiàn)出了這一特點(diǎn)。

  • 空間處理

  • 頻域處理

  • 檢測(cè)

  • Canny算子

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

  • Sobel算子

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

    Snip20170914_1.png

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

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

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

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

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

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

  • 直方圖處理

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

  • 詳細(xì)參考

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

  • 常見(jiàn)噪音以及處理

  • 常見(jiàn)噪音分類

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

  • 處理

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

  • 模式識(shí)別

  • 圖像匹配

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

  • 什么是卷積

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

  • 卷積的作用

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


Snip20170920_3.png
  • 傅里葉變換

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

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

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

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

  • 膨脹

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


    Snip20170921_1.png
  • 腐蝕

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

  • 開(kāi)運(yùn)算

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

  • 閉運(yùn)算

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


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

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


    Snip20170921_3.png
  • 頂帽

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

  • 黑帽

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


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

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

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

Snip20180816_4.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

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

友情鏈接更多精彩內(nèi)容