https://m.toutiao.com/is/JctWX2k/
本文出自:最后一個(gè)bug
前言
本文大部分內容來(lái)源于網(wǎng)絡(luò ),部分為自己理解的標注,應該對大家學(xué)習機器視覺(jué)和圖像處理非常有幫助。


一般的圖像(模擬圖像)不能直接用計算機來(lái)處理,必須首先轉化為數字圖像
把模擬圖像分割成一個(gè)個(gè)稱(chēng)為像素的小區域,每個(gè)像素的亮度或灰度值用一個(gè)整數表示
使模擬圖像的灰度、亮度和色彩數據化
兩個(gè)步驟:
1、在空間坐標對圖像離散化——圖像采樣
2、在幅度上離散化——灰度級量化(取整)
圖像采樣示意圖:
也就是在xy軸上(空間坐標)將完整的一幅圖像定義在從某些位置上“拆解”(離散)成最小單位即像素塊,用坐標(x,y)表示像素點(diǎn)之間的位置關(guān)系。
將虛擬圖像轉換為數字圖像是為了達到計算機進(jìn)行處理的目的。虛擬圖像轉換為數字圖像的方式就是把虛擬圖像由像素點(diǎn)來(lái)表示。
數字圖像,它是由像素點(diǎn)(圖像的最小單位)構成的,每個(gè)像素點(diǎn)表示著(zhù)一個(gè)灰度值在平面坐標系上矩陣排布,這些灰度值按照一定的關(guān)系組合在一起形成了圖像。至此,既然圖像的操作單元以及它的排布關(guān)系已經(jīng)確定了,那么就可以通過(guò)計算機對其計算處理。
為什么是灰度?
這個(gè)問(wèn)題我最早也困惑為什么不是紅度?綠度?藍度?,后來(lái)想想無(wú)論紅的綠的藍的黑的都可以,確定圖像完全可以由任意顏色的0~255之間的值來(lái)表示。偏向于灰度可能是因為灰的極端為黑白兩種鮮明的對比色也或許是因為早期的成像都是黑白。
灰度值量化
經(jīng)過(guò)采樣,模擬圖像已在空間上離散化為像素,但抽樣所得的像素值仍是連續量(非整數),必須將其化為正整數——灰度級的量化。
若抽樣點(diǎn)(像素)的連續濃淡值為Zi ,Zi-1 <= Zi < Zi+1,則Zi = qi,即Zi量化為整數qi,qi稱(chēng)為像素的灰度值
(所謂量化,就是把經(jīng)過(guò)抽樣得到的瞬時(shí)值將其幅度離散,即用一組規定的電平,把瞬時(shí)抽樣值用最接近的電平值來(lái)表示。經(jīng)過(guò)抽樣的圖像,只是在空間上被離散成為像素(樣本)的陣列。而每個(gè)樣本灰度值還是一個(gè)由無(wú)窮多個(gè)取值的連續變化量,必須將其轉化為有限個(gè)離散值,賦予不同碼字才能真正成為數字圖像。這種轉化稱(chēng)為量化。)
一般,灰度圖像常量化為8位圖像。

數字圖像數據量的計算
抽樣點(diǎn)數越多,圖像像素數目越多,圖像數據量越大
量化級別越高,圖像每個(gè)像素所占用的字節越長(cháng),圖像數據量越大。
一幅數字圖像的總數據量可用公式計算:
數據量 = M * N * b
M——每行像素量
N——每列像素量
b——灰度量化所占用的位數或字節數
例如:一幅8位灰度圖像,大小為512*512,其數據量多大?
512*512*8bit = 512*512*1k = 512*512 / 1024 = 256 kb
數字圖像處理的實(shí)質(zhì):
通過(guò)對數字圖像中像素數據的判斷,依據處理或識別要求,最后逐個(gè)修改像素的灰度值。
數字圖像的數據以矩陣形式排列
一幅M*N個(gè)像素的數字圖像,其像素灰度值的排列實(shí)際形成了一個(gè)M行N列的矩陣F,數字圖像中的像素與矩陣元素是一 一對應的

矩陣可用二維數組來(lái)表示
一個(gè)M*N像素的矩陣,在算法語(yǔ)言中,可以用一個(gè)M*N的二維數組來(lái)表示。

此后對像素的處理就代之以對數組元素的處理,很容易用計算機來(lái)實(shí)現。
如何用高級語(yǔ)言實(shí)現圖像處理?
在圖像處理中,一般都是順序完成對整幅畫(huà)面的存取和處理操作的,具有代表性的是以光柵掃描方式——逐行逐列存取與處理。
若數字圖像的大小為M*N(width*height)個(gè)像素,數組元素灰度值為 f(x,y),則C語(yǔ)言處理程序的基本框架為:

從程序顯而易見(jiàn),計算機處理數字圖像是從每個(gè)像素點(diǎn)逐個(gè)處理。
圖像二值化流程:

二值化處理的程序(一個(gè)CVI例子程序)

程序逐個(gè)判斷像素點(diǎn)的pixel_value > Th ? 如果為true 設置此像素點(diǎn)的灰度值為255,為false設置此像素點(diǎn)的灰度值為0,由此處理后的圖像會(huì )呈現黑白鮮明的對比。
處理結果:

圖像處理的方法多種多樣,從實(shí)現處理的過(guò)程看有兩類(lèi):空域處理 和頻域處理。
空域:即空間域,指灰度圖像本身,圖像是一種灰度在二維空間變化的信息。
空域處理:對源圖像像素的灰度值直接運算,生成新的圖像,被操作者是像素的灰度值。
空域處理可分為以下幾種方式:
點(diǎn)處理
區域處理
迭代處理
跟蹤處理
點(diǎn)處理:是指輸出像素值僅取決于對應輸入像素的像素值。
若輸入像素灰度值為f(x,y),
輸出像素灰度值為g(x,y),
則g(x,y) = ▲f(x,y) ,
▲代表某種函數關(guān)系式。

點(diǎn)處理的典型用途:
調整圖像的灰度分布,如灰度變換(線(xiàn)性、非線(xiàn)性)和灰度修正;
圖像的二值化;
圖像反色;
點(diǎn)處理方法的優(yōu)點(diǎn):
可用LUT方法快速實(shí)現;
區域處理——領(lǐng)域處理
算法:
根據輸入圖像某像素f(x,y)的一個(gè)小領(lǐng)域N(f(x,y))的像素值,按某種函數關(guān)系▲得到輸出像素g(x,y)的值,即g(x,y)=▲(N(f(x,y)))

區域處理中的領(lǐng)(區)域的形狀
領(lǐng)域N(f(x,y))的形狀是多種多樣的;實(shí)用中多采用以像素(x,y)為中心的矩形對稱(chēng)領(lǐng)域如3*3、5*5等

領(lǐng)域越大,計算量越大,若圖像大小為M*N,領(lǐng)域為K*L,則領(lǐng)域處理時(shí)總計算量為M*N*K*L。
領(lǐng)域處理的用途
圖像的平滑(濾波)
圖像的銳化(增強)
圖像的形態(tài)學(xué)處理等
迭代處理:
迭代是指反復進(jìn)行某種處理運算。
迭代處理多用于圖像細化、圖像增強、圖像平滑及邊緣探測等方面。

跟蹤處理:
跟蹤處理一般用于圖像邊界、邊緣的提取,以便進(jìn)行圖像的分割、識別及特征參數的計算。


邊緣提取的原理在于判斷目標里外兩像素點(diǎn)灰度值差,若差大于某個(gè)特定值即可斷定這個(gè)像素點(diǎn)的位置為目標邊緣。
圖像處理方法二:頻域處理
為什么要采用頻域處理?
灰度圖像的邊緣、線(xiàn)條——高頻成分
其余部分灰度值改變不大——低頻成分
觀(guān)察圖像的高頻和低頻成分。因此采用頻率分析——變換方法有利于對圖像進(jìn)行特征提取及圖像增強的處理。
圖像在頻域上處理的一般過(guò)程:
頻域處理是建立在修改圖像傅里葉變換基礎之上的——增強感興趣的頻率分量,然后將修改后的傅里葉變換直再做逆傅里葉變換,以得到增強的圖像,一般過(guò)程:



End

聯(lián)系客服