关于Shape Context的文章,网上已经很多了。在这里实现一下Shape Context描述子的可视化。
#include"HOGImage.h"
using namespace std;
using namespace HOG;
HOGImage *oImg;
struct color
{
int R;
int G;
int B;
};
color colormap[8]={{255,0,0},{0,255,0},{0,0,255},{255,255,0},{255,0,255},{0,255,255},{0,0,0},{200,100,10}};
int temp[5][12] = {0, 0, 0 ,0 ,0, 0 ,0 ,0 ,3 ,19 ,3 ,0,
0, 0, 0 ,0 ,0, 3 ,17 ,0 ,1 ,2 ,0 ,0 ,
0, 0, 0, 0, 0, 0, 17, 5, 10, 0, 0, 0,
0, 0, 0, 0, 0, 0, 2, 3, 1, 0, 0, 0,
4, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, };
void imagesc(unsigned char* pixels,int x,int y,int value,int w)
{
for(int i=30*y;i<30*y+30;i++)
for(int j=30*x;j<30*x+30;j++)
{
pixels[(j*w+i)*4]=10*value;
pixels[(j*w+i)*4+1]=10*value;
pixels[(j*w+i)*4+2]=10*value;
}
}
int main(int argc,char* argv[])
{
oImg=new HOGImage(12*30,5*30);
for(int x=0;x<5;x++)
for(int y=0;y<12;y++)
imagesc(oImg->pixels,x,y,temp[x][y],12*30);
oImg->HOGSaveImage(oImg->pixels,"result.bmp",12*30,5*30);
delete oImg;
}
描述子可视化视图:
相应的一个字符识别的简单Demo展示:http://v.youku.com/v_show/id_XNjk4ODM1OTA4.html
相应地MFC手写字符识别程序展示: