擊中擊不中變換

2021-07-09 03:09:58 字數 2043 閱讀 1804

標籤: null

delete

command

擴充套件工具測試

2010-02-11 18:35

4881人閱讀收藏 

舉報

影象處理(6)

擊中擊不中變換:形態學中用來檢測形狀的乙個基本工具;檢測不應該只限於形狀,還有大小;我這裡只寫了二值影象的,對於灰度圖還沒試過;

它的原理就是使用腐蝕;如果要在一幅影象a上找到b形狀的目標,我們要做的是:

首先,建立乙個比b大的模板w;使用此模板對影象a進行腐蝕,得到影象假設為process1;

其次,用b減去w,從而得到v模板(w-b);使用v模板對影象a的補集進行腐蝕,得到影象假設為process2;

然後,process1與process2取交集;得到的結果就是b的位置。這裡的位置可能不是b的中心位置,要視w-b時對齊的位置而異;

其實很簡單,兩次腐蝕,然後交集,結果就出來了;下面把我的處理的影象貼出來,見下。為了方便起見,本次處理我沒有使用模板影象,代之以模板資料,當然了**很亂;可能的話直接使用一幅模板影象會更好,更通用。關於**,一會也貼下面,沒有新建類,直接在乙個函式中給處理了;

處理後,形狀檢測的結果是乙個點,但是太小了,我這裡給加粗了!

本次測試沒有使用三角形,橢圓等,其實本質上都一樣。。。。。。

關於**,因為沒有加新類,所以把那個函式放出來:

[cpp]view plain

copy

void

cmydipview::onmophohit()   

ce.settemplet(ptemplet,nwidth,nheight);  

ce.process(false

);  

lpdest=(unsigned char

*)ce.getdestimage();  

//第一次腐蝕的結果,儲存起來

lpdest1=new

unsigned 

char

[cxdib*cydib];  

memcpy(lpdest1,lpdest,cxdib*cydib);  

for(i = 0; i 

}  //第二次腐蝕

//先對影象進行反轉,也就是求補

for(i = 0; i 

}  intnw,nh;  

ptemplet1=new

int[(nwidth+nwidthextend*2)*(nheight+nheightextend*2)];  

for(i=0;i

else

ptemplet1[i]=0;  

}  ptemplet1[(nwidth+nwidthextend*2)*(nheight+nheightextend*2)/2]=1;  

ce.settemplet(ptemplet1,(nwidth+nwidthextend*2),(nheight+nheightextend*2));  

ce.process(false

);  

lpdest=(unsigned char

*)ce.getdestimage();  

/*// 每行

for(i = 0; i 

}*///第二次腐蝕的結果,儲存起來

lpdest2=new

unsigned 

char

[cxdib*cydib];  

memcpy(lpdest2,lpdest,cxdib*cydib);  

//把二次結果取交集

//顯示擊中的結果

// 每行

for(i = 0; i 

}  ::globalunlock((hglobal

) pdoc->m_hdib);  

invalidate(true);  

if(lpdest1)  

if(lpdest2)  

if(ptemplet)  

if(ptemplet1)  

}  

好了,就到這裡了,大家新年快樂!

擊中擊不中變換

擊中擊不中變換定義 擊中擊不中變換 hmt 需要兩個結構元素b1和b2,合成乙個結構元素對b b1,b2 乙個用於探測影象內部,作為擊中部分 另乙個用於探測影象外部,作為擊不中部分。顯然,b1和b2是不應該相連線的,即b1 b2 擊中擊不中變換的數學表示式為 g x,y hitmiss f x,y ...

擊中 擊不中變換 lhMorpHMT

函式 lhmorphmt 說明 形態學擊中 擊不中變換 引數 src 輸入影象,灰度或二值影象 dst 輸出影象 sefg 前景結構元素 sebg 背景結構元素,如為空,則預設為前景結構元素sefg的取反 type 擊中 擊不中變換的型別,二值 0 非約束 1 約束 2 定義如下 define lh...

擊中擊不中的變換

擊中擊不中變換是形態學形狀檢測的基本工具。步驟為 使用模板s1腐蝕原影象x 使用模板s2 s2為是s1的補 對y y為x的補 進行腐蝕 對兩個結果進行取交集 用擊中結構去腐蝕原始影象得到擊中結果x 這個過程可以理解為在原始影象中尋找和擊中結構完全匹配的模組,匹配上了之後,保留匹配部分的中心元素,作為...