資源簡介
Hog特征提取,詳細代碼,輸出的是特征大數組.
代碼片段和文件信息
?#include?
?#include?
?#include?
?#include?
?#include?
#define?PI?3.14
#define?BIN_SIZE?20
#define?BIN_NVM?9
#define?NORM_WIDTH?130
#define?NORM_HEIGHT?82
#define?CELL_SIZE?8
#define?BLOCK_SIZE?2
#define?PIC_CELL_WH?50
#define?CELL_W_NVM??((NORM_WIDTH-2)?/?CELL_SIZE)
#define?CELL_H_NVM??((NORM_HEIGHT-2)?/?CELL_SIZE)
#define?BLOCK_W_NVM??(CELL_W_NVM?-?BLOCK_SIZE?+?1)
#define?BLOCK_H_NVM??(CELL_H_NVM?-?BLOCK_SIZE?+?1)
#define?CELL_NVM?(CELL_W_NVM?*?CELL_H_NVM)
#define?BLOCK_NVM?(BLOCK_W_NVM?*?BLOCK_H_NVM)
#define?ARRAY_ALL?(BLOCK_W_NVM?*?BLOCK_H_NVM?*?BLOCK_SIZE?*?BLOCK_SIZE?*?BIN_NVM)
void??func(int?i_x?int?i_y?int?i_w?IplImage*?Img_in?float*?fbin)
{
memset(fbin?0?9*sizeof(float));
float?f_x?=?0.0f?f_y?=?0.0f?f_Nvm?=?0.0f?f_theta?=?0.0f;
for?(int?ii?=?i_y;?ii? {
for?(int?jj?=?i_x;?jj? {
uchar*?pData?=?(uchar*)(Img_in->imageData?+?ii?*?Img_in->widthStep?+?jj);
f_x?=?pData[1]?-?pData[-1];
f_y?=?pData[Img_in->widthStep]-?pData[-Img_in->widthStep];
f_Nvm?=?pow(?f_x*f_x?+?f_y*f_y??0.5f);?
float?fAngle?=?90.0f;
if?(f_x?==?0.0f)
{
if?(f_y?>?0)
{
fAngle?=?90.0f;
}
}
else?if?(f_y?==?0.0f)
{
if?(f_x?>?0)
{
fAngle?==?0.0f;
}
else?if?(f_x?0)
{
fAngle?==?180.0f;
}
}
else
{
f_theta?=?atan(f_y/f_x);?////?atan()?范圍為?-Pi/2?到?pi/2?所有9個bin范圍是?0~180°
fAngle?=?(BIN_SIZE*BIN_NVM?*?f_theta)/PI;
}
if?(fAngle?0)
{
fAngle?+=?180;
}
int?iWhichBin?=?fAngle/BIN_SIZE;
fbin[iWhichBin]?+=?f_Nvm;
}
}
}
?
?void?main()
?{
? IplImage*?img?=?cvLoadImage(“./003.jpg“);
? IplImage?*img1?=?cvCreateImage(cvGetSize(img)IPL_DEPTH_8U1);
? IplImage?*img2?=?cvCreateImage(cvGetSize(img)IPL_DEPTH_8U1);
? CvMat*?mat?=?cvCreateMat(img->width?img->heightCV_32FC1);
////?灰度圖
? cvCvtColor(imgimg1CV_BGR2GRAY);?
? cvNamedWindow(“GrayImage“CV_WINDOW_AUTOSIZE);
? cvShowImage(“GrayImage“img1);?
////?gamma校正
? uchar*?uData??=?(uchar*)(img1->imageData);
? float*?fMat?=?mat->data.fl;
?
? for?(int?ii?=?0;?ii?imageSize;?ii++)
? {
? fMat[ii]?=?pow(?uData[ii]??0.5f);?
? ((uchar*)img2->imageData)[ii]?=?(uchar)(fMat[ii]);
? }?
////?縮放原有圖片
IplImage*?img3?=?0;
CvSize?dst_cvsize;
dst_cvsize.width?=?NORM_WIDTH;
dst_cvsize.height?=?NORM_HEIGHT;
img3?=?cvCreateImage(dst_cvsize?IPL_DEPTH_8U1?);
cvResize(img2?img3?CV_INTER_LINEAR);
////?計算每個cell每個梯度的大小和方向
int?i_binNvm?=?0;
float?f_bin_out[CELL_NVM][BIN_NVM];
float?i_AllbinNvm[][BLOCK_SIZE*BLOCK_SIZE*BIN_NVM]?=?{0.0f};
int?ii_nvm1?=?0?ii_nvm2?=?0;
for?(int?ii?=?1;?ii?+?CELL_SIZE?height;?ii+=CELL_SIZE)
{
for?(int?jj?=?1;?jj?+?CELL_SIZE?width;?jj+=CELL_SIZE)
{
func(jj?ii?CELL_SIZE?img3?f_bin_out[i_binNvm++]);
}
}
////?創建了一個img?畫每個cell的9個bin的方向大小?注意?X正方形向右?Y正方
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2015-07-15?08:49??cHog\
?????目錄???????????0??2015-07-21?16:22??cHog\MyTest_Hog\
?????文件???????49685??2015-07-21?11:14??cHog\MyTest_Hog\003.jpg
?????目錄???????????0??2015-07-21?15:47??cHog\MyTest_Hog\Debug\
?????文件???????15572??2015-07-21?15:47??cHog\MyTest_Hog\Debug\CL.read.1.tlog
?????文件?????????728??2015-07-21?15:47??cHog\MyTest_Hog\Debug\CL.write.1.tlog
?????文件????????1527??2015-07-16?15:34??cHog\MyTest_Hog\Debug\Hog.obj
?????文件????????3164??2015-07-16?15:34??cHog\MyTest_Hog\Debug\MyTest_Hog.Build.CppClean.log
?????文件???????35840??2015-07-21?15:47??cHog\MyTest_Hog\Debug\MyTest_Hog.exe
?????文件?????????406??2015-07-16?15:34??cHog\MyTest_Hog\Debug\MyTest_Hog.exe.em
?????文件?????????472??2015-07-16?15:34??cHog\MyTest_Hog\Debug\MyTest_Hog.exe.em
?????文件?????????381??2015-07-21?15:47??cHog\MyTest_Hog\Debug\MyTest_Hog.exe.intermediate.manifest
?????文件??????430024??2015-07-21?15:47??cHog\MyTest_Hog\Debug\MyTest_Hog.ilk
?????文件??????????57??2015-07-21?15:47??cHog\MyTest_Hog\Debug\MyTest_Hog.lastbuildstate
?????文件????????3599??2015-07-21?15:47??cHog\MyTest_Hog\Debug\MyTest_Hog.log
?????文件???????42501??2015-07-21?15:47??cHog\MyTest_Hog\Debug\MyTest_Hog.obj
?????文件??????617472??2015-07-21?15:47??cHog\MyTest_Hog\Debug\MyTest_Hog.pdb
?????文件?????????210??2015-07-16?15:34??cHog\MyTest_Hog\Debug\MyTest_Hog_manifest.rc
?????文件????????1702??2015-07-21?15:47??cHog\MyTest_Hog\Debug\cl.command.1.tlog
?????文件???????????2??2015-07-21?15:47??cHog\MyTest_Hog\Debug\li
?????文件???????????2??2015-07-21?15:47??cHog\MyTest_Hog\Debug\li
?????文件???????????2??2015-07-21?15:47??cHog\MyTest_Hog\Debug\li
?????文件???????????2??2015-07-21?15:47??cHog\MyTest_Hog\Debug\li
?????文件???????????2??2015-07-21?15:47??cHog\MyTest_Hog\Debug\li
?????文件???????????2??2015-07-21?15:47??cHog\MyTest_Hog\Debug\li
?????文件???????????2??2015-07-21?15:47??cHog\MyTest_Hog\Debug\li
?????文件???????????2??2015-07-21?15:47??cHog\MyTest_Hog\Debug\li
?????文件???????????2??2015-07-21?15:47??cHog\MyTest_Hog\Debug\li
?????文件???????????2??2015-07-21?15:47??cHog\MyTest_Hog\Debug\li
?????文件???????????2??2015-07-21?15:47??cHog\MyTest_Hog\Debug\li
?????文件???????????2??2015-07-21?15:47??cHog\MyTest_Hog\Debug\li
............此處省略52個文件信息
評論
共有 條評論