【圖像檢測(cè)】基于直方圖實(shí)現(xiàn)火災(zāi)檢測(cè)matlab代碼
【圖像檢測(cè)】基于直方圖實(shí)現(xiàn)火災(zāi)檢測(cè)matlab代碼
TT_Matlab
每天分享一點(diǎn)Matlab資料,一起成長(zhǎng)進(jìn)步。需要定制程序添加qq1575304183
1 簡(jiǎn)介
直方圖是表達(dá)一副圖像灰度級(jí)分布情況的關(guān)于統(tǒng)計(jì)信息的灰度級(jí)函數(shù)。它反映了灰 度級(jí)與出現(xiàn)這種灰度的概率間的對(duì)應(yīng)關(guān)系,其橫坐標(biāo)是灰度級(jí),縱坐標(biāo)是該灰度級(jí)出現(xiàn) 的頻度。對(duì)于高對(duì)比度圖像的直方圖,其灰度級(jí)的分布范圍寬且較均勻,而對(duì)比度低的 圖像,其直方圖分布區(qū)間窄且集中于灰度級(jí)的某一部分,因此直方圖可以表征圖像的一 些重要特征信息。直方圖均衡化處理是空域處理技術(shù)的基礎(chǔ)。它是通過(guò)灰度值的累積函 數(shù)把原圖像的直方圖變成均勻分布的直方圖,即把相對(duì)集中的灰度級(jí)分布進(jìn)行擴(kuò)展,通 過(guò)增加像素灰度級(jí)分布的動(dòng)態(tài)范圍,使對(duì)比度得到增加 [76] ,達(dá)到增強(qiáng)圖像整體對(duì)比度的 效果。a
2 部分代碼
clear all ; close all ; clc ; img = double ( imread ( ’flame2.jpg’ )); imshow ( img ,[]); [ m n ]= size ( img ); img = sqrt ( img ); %伽馬校正 % HOG特征提取 %下面是求邊緣 fy =[ -1 0 1 ]; %定義豎直模板 fx = fy ’ ; %定義水平模板 Iy = imfilter ( img , fy , ’replicate’ ); %豎直邊緣 Ix = imfilter ( img , fx , ’replicate’ ); %水平邊緣 Ied = sqrt ( Ix .^ 2 + Iy .^ 2 ); %邊緣強(qiáng)度 Iphase = Iy ./ Ix ; %邊緣斜率,有些為inf,-inf,nan,其中nan需要再處理一下 %下面是求cell step = 16 ; %step*step個(gè)像素作為一個(gè)單元 orient = 9 ; %方向直方圖的方向個(gè)數(shù) jiao = 360 / orient ; %每個(gè)方向包含的角度數(shù) Cell = cell ( 1 , 1 ); %所有的角度直方圖,cell是可以動(dòng)態(tài)增加的,所以先設(shè)了一個(gè) ii = 1 ; jj = 1 ; for i = 1 : step : m %如果處理的m/step不是整數(shù),最好是i=1:step:m-step ii = 1 ; for j = 1 : step : n %注釋同上 tmpx = Ix ( i : i + step -1 , j : j + step -1 ); tmped = Ied ( i : i + step -1 , j : j + step -1 ); tmped = tmped / sum ( sum ( tmped )); %局部邊緣強(qiáng)度歸一化 tmpphase = Iphase ( i : i + step -1 , j : j + step -1 ); Hist = zeros ( 1 , orient ); %當(dāng)前step*step像素塊統(tǒng)計(jì)角度直方圖,就是cell for p = 1 : step for q = 1 : step if isnan ( tmpphase ( p , q )) == 1 %0/0會(huì)得到nan,如果像素是nan,重設(shè)為0 tmpphase ( p , q )= 0 ; end ang = atan ( tmpphase ( p , q )); %atan求的是[-90 90]度之間 ang = mod ( ang * 180 / pi , 360 ); %全部變正,-90變270 if tmpx ( p , q ) < 0 %根據(jù)x方向確定真正的角度 if ang < 90 %如果是第一象限 ang = ang +180 ; %移到第三象限 end if ang > 270 %如果是第四象限 ang = ang -180 ; %移到第二象限 end end ang = ang +0.0000001 ; %防止ang為0 Hist ( ceil ( ang / jiao ))= Hist ( ceil ( ang / jiao )) + tmped ( p , q ); %ceil向上取整,使用邊緣強(qiáng)度加權(quán) end end Hist = Hist / sum ( Hist ); %方向直方圖歸一化 Cell { ii , jj }= Hist ; %放入Cell中 ii = ii +1 ; %針對(duì)Cell的y坐標(biāo)循環(huán)變量 end jj = jj +1 ; %針對(duì)Cell的x坐標(biāo)循環(huán)變量 end %下面是求feature,2*2個(gè)cell合成一個(gè)block,沒(méi)有顯式的求block [ m n ]= size ( Cell ); feature = cell ( 1 ,( m -1 ) * ( n -1 )); for i = 1 : m -1 for j = 1 : n -1 f =[]; f =[ f Cell { i , j }(:) ’ Cell { i , j +1 }(:) ’ Cell { i +1 , j }(:) ’ Cell { i +1 , j +1 }(:) ’ ]; feature {( i -1 ) * ( n -1 ) + j }= f ; end end %到此結(jié)束,feature即為所求 %下面是為了顯示而寫的 l = length ( feature ); f =[]; for i = 1 : l f =[ f ; feature { i }(:) ’ ]; end figure mesh ( f )
3 仿真結(jié)果
4 參考文獻(xiàn)
[1]趙麗娜, 徐常志, 葉俊健, 陳曉波, & 鄧偉鋒. (2020). 基于matlab的火災(zāi)視頻探測(cè)技術(shù). 工業(yè)技術(shù)創(chuàng)新, 7(3), 4.
微信掃一掃贊賞作者
贊賞
發(fā)送給作者
人贊賞
長(zhǎng)按二維碼向我轉(zhuǎn)賬
受蘋果公司新規(guī)定影響,微信 iOS 版的贊賞功能被關(guān)閉,可通過(guò)二維碼轉(zhuǎn)賬支持公眾號(hào)。
-
Origin(Pro):學(xué)習(xí)版的窗口限制【數(shù)據(jù)繪圖】 2020-08-07
-
如何卸載Aspen Plus并再重新安裝,這篇文章告訴你! 2020-05-29
-
CAD視口的邊框線看不到也選不中是怎么回事,怎么解決? 2020-06-04
-
教程 | Origin從DSC計(jì)算焓和比熱容 2020-08-31
-
CAD外部參照無(wú)法綁定怎么辦? 2020-06-03
-
CAD中如何將布局連帶視口中的內(nèi)容復(fù)制到另一張圖中? 2020-07-03
