展会信息港展会大全

100+分求图象切割,图象扭曲源代码(车牌示别的字符识别部分相关)!
来源:互联网   发布日期:2011-10-01 15:00:12   浏览:8811次  

导读:我做车牌示别 字符识别部分 其他部分已经基本完成 但是有两个部分难以解决 1 把一幅不是标准 长方形 平行四边形 车牌扭成标准矩形 2 把扭正 车牌图象二值化后 做...

投影的起伏高度转化成单字符图片很简单,主要程序如下:
//   指向源图像的指针
LPSTR lpSrc;

//   指向缓存图像的指针
LPSTR lpDst;

//   指向缓存DIB图像的指针
LPSTR lpNewDIBBits;
HLOCAL hNewDIBBits;

//循环变量
long   i;
long   j;

//图像中每行内的黑点个数
long   lBlackNumber;

//像素值
unsigned   char   pixel;

//   图像每行的字节数
LONG   lLineBytes;

//   暂时分配内存,以保存新图像
hNewDIBBits   =   LocalAlloc(LHND,   lWidth   *   lHeight);

if   (hNewDIBBits   ==   NULL)
{
//   分配内存失败
return   FALSE;
}

//   锁定内存
lpNewDIBBits   =   (char   *   )LocalLock(hNewDIBBits);

//   初始化新分配的内存,设定初始值为255
lpDst   =   (char   *)lpNewDIBBits;
memset(lpDst,   (BYTE)255,   lWidth   *   lHeight);

//   计算图像每行的字节数
lLineBytes   =   WIDTHBYTES(lWidth   *   8);

for   (j   =   0;j   <   lHeight   ;j++)
{
lBlackNumber   =   0;
for(i   =   0;i   <   lWidth   ;i++)
{
//   指向源图像倒数第j行,第i个象素的指针
lpSrc   =   (char   *)lpDIBBits   +   lLineBytes   *   j   +   i;

pixel   =   (unsigned   char)*lpSrc;

if   (pixel   !=   255   &&   pixel   !=   0)
{
return   false;
}
if(pixel   ==   0)
{
lBlackNumber++;
}
}
for(i   =   0;i   <   lBlackNumber   ;i++)
{
//   指向目标图像倒数第j行,第i个象素的指针
lpDst   =   (char   *)lpNewDIBBits   +   lLineBytes   *   j   +   i;

*lpDst   =   (unsigned   char)0;
}
}


//   复制投影图像
memcpy(lpDIBBits,   lpNewDIBBits,   lWidth   *   lHeight);

//   释放内存
LocalUnlock(hNewDIBBits);
LocalFree(hNewDIBBits);
另外,我需要图像分割的程序。请不吝赐教!
如肯帮忙,可以给你分数!我的Email:yyd97@163.net

赞助本站

人工智能实验室
AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港