kirsch原理:
kirsch運算元是r.kirsch提出來一種邊緣檢測新演算法,它採用8個模板對影象上的每乙個畫素點進行卷積求導數,這8個模板代表8個方向,對影象上的8個特定邊緣方向作出最大響應,運算中取最大值作為影象的邊緣輸出(上述演算法中用到的8個模板在下面的實現**中給出)。為了便於讀者理解該演算法的實現,這裡我們給出實現該演算法的函式**,讀者可以稍加改動應用到自己的專案中去。
[1]int ntemplate[8][9]=, ,
, ,, ,
,};//3×3
用這個8個模版來計算每個邊緣方向的最大響應值作為邊緣特徵值-邊緣強度。
c++**實現:
bool cwmspatialdomain::kirsch(handle himage) ,
, ,, ,
, ,};//3×3
int nsum[8];
if(himage==null)
int i, j, k, l;
int bthre = 5;
bitmapinfoheader ds;
memcpy(&ds,himage, sizeof(ds));
int effwdt = ((((ds.bibitcount * ds.biwidth ) + 31) / 32) * 4);
byte* pbbits = (byte*)himage + *(dword*)himage + ds.biclrused * sizeof(rgbquad);
writelog(tra_level_debug,_t("cimagewatermarktest::kirsch, pic's width=%d, height=%d"),ds.biwidth,ds.biheight);
switch (ds.bibitcount)
else
} else
} m_ipframework->setposprogressctrl(int((i+1)*100/ds.biheight)); }
m_ipframework->setposprogressctrl(100);
m_ipframework->hideprogressctrl();
delete pimage; }
break;
case 24: // 24-bit dib
else
} else
} m_ipframework->setposprogressctrl(int((i+1)*100/ds.biheight)); }
m_ipframework->setposprogressctrl(100);
m_ipframework->hideprogressctrl();
delete pimage; }
break;
default: // unrecognized color format
writelog(tra_level_warn,_t("cimagewatermarktest::kirsch, unrecognized color format"));
return false; }
return true; }
VC 鉤子實現及應用
關於鉤子 請參見微軟中國社群中 hook專題 一文。純c 鉤子 hook 實現 要實現系統鉤子其實很簡單,呼叫三個win32的api即可。setwindowshookex用於設定鉤子。設立一道卡子,盤查需要的資訊 dllimport user32.dll callingconvention call...
SElinux 學習筆記 例子實現
測試環境介紹 作業系統 fedora 22 mate fedora 21 環境搭建 root yum install y policycoreutils python policycoreutils devel selinux policy devel setools hddtemp git vim...
PHP的鉤子實現解析
php程式設計的鉤子實現,示例講解和解釋它們的作用,寫了乙個樣板的鉤子實現 鉤子是程式設計裡乙個常見的概念,非常的重要。它使得系統變得非常容易拓展 而不用理解其內部的實現機理,這樣可以減少很多任務作量 只要有乙個鉤子樣本,能很容易仿照第乙個鉤子快速的編寫第二個鉤子,這裡對鉤子進行乙個簡單的理解。下面...