投影算法及其实现C++代码

上传人:公**** 文档编号:585495319 上传时间:2024-09-02 格式:PPT 页数:22 大小:1.64MB
返回 下载 相关 举报
投影算法及其实现C++代码_第1页
第1页 / 共22页
投影算法及其实现C++代码_第2页
第2页 / 共22页
投影算法及其实现C++代码_第3页
第3页 / 共22页
投影算法及其实现C++代码_第4页
第4页 / 共22页
投影算法及其实现C++代码_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《投影算法及其实现C++代码》由会员分享,可在线阅读,更多相关《投影算法及其实现C++代码(22页珍藏版)》请在金锄头文库上搜索。

1、1.基于文本图像纹理特征的文种识别(顾丽娟)第五文本图像文种的分级识别 章2.基于水平垂直投影的考古文字修复识别方法(张娜等)投影概念投影法是根据图像信息在某方向的投影分布特点来进行检测的方法,也就是说像素点的累加,其实是一种统计的方法 。投影算法过程:像素灰度值为f(x,y)时,其投影函数h(y)的值为如下公式来计算:其中M,N为图像尺寸, c为图像灰度值。将投影值进行归一化,其计算公式如下:资料1中,先求投影值,再给投影值进行归一化处理。资料2中先进行二值化,然后进行灰度投影。资料1中 ,进行投影以后求投影面积比投影图面积比分布图:分级识别过程:识别结果:灰度灰度投影源代码部分:投影源代码

2、部分: */HprojectDIB()/图像水平投影/VprojectDIB()/图像垂直投影参数:LPSTRlpDIBBits/指向源DIB图像指针 LONGlWidth/源图像宽度(像素数)LONGlHeight-源图像高度(像素数)返回值:BOOL/运算成功返回TRUE,否则返回FALSE。* 要求目标图像为只有0和255两个灰度值的灰度图像。 *BOOLWINAPIHprojectDIB(LPSTRlpDIBBits,LONGlWidth,LONGlHeight)LPSTRlpSrc;/指向源图像的指针LPSTRlpDst;/指向缓存图像的指针LPSTRlpNewDIBBits;/指向

3、缓存DIB图像的指针HLOCALhNewDIBBits;longi;/循环变量longj;longlBlackNumber;/图像中每行内的黑点个数unsignedcharpixel;/像素值LONGlLineBytes;/图像每行的字节数函数的声明定义变量 hNewDIBBits=LocalAlloc(LHND,lWidth*lHeight);/暂时分配内存,以保存新图像if(hNewDIBBits=NULL)returnFALSE;/分配内存失败lpNewDIBBits=(char*)LocalLock(hNewDIBBits);/初始化新分配的内存,设定初始值为255lpDst=(cha

4、r*)lpNewDIBBits;memset(lpDst,(BYTE)255,lWidth*lHeight);暂时分配内存如果成功分配内存,则初始化新内存lLineBytes=WIDTHBYTES(lWidth*8);/计算图像每行的字节数for(j=0;jlHeight;j+)lBlackNumber=0;for(i=0;ilWidth;i+)lpSrc=(char*)lpDIBBits+lLineBytes*j+i;/指向源图像倒数第j行,第i个象素的指针pixel=(unsignedchar)*lpSrc;if(pixel!=255&pixel!=0)returnfalse;if(pix

5、el=0)lBlackNumber+;if(pixel=0)lBlackNumber+;计算像素值和for(i=0;ilBlackNumber;i+)/指向目标图像倒数第j行,第i个象素的指针 lpDst=(char*)lpNewDIBBits+lLineBytes*j+i;*lpDst=(unsignedchar)0; /复制投影图像 memcpy(lpDIBBits,lpNewDIBBits,lWidth*lHeight);LocalUnlock(hNewDIBBits);/释放内存LocalFree(hNewDIBBits);returnTRUE;/返回形成新图像(投影后的图像)复制投影

6、图像释放内存返回函数值BOOLWINAPIVprojectDIB(LPSTRlpDIBBits,LONGlWidth,LONGlHeight)LPSTRlpSrc;/指向源图像的指针 LPSTRlpDst;/指向缓存图像的指针LPSTRlpNewDIBBits;/指向缓存DIB图像的指针HLOCALhNewDIBBits;longi;longj;longlBlackNumber;/图像中每行内的黑点个数unsignedchar pixel;/像素值LONGlLineBytes;/图像每行的字节数hNewDIBBits=LocalAlloc(LHND,lWidth*lHeight);/暂时分配内

7、存,以保存新图像if(hNewDIBBits=NULL)returnFALSE;/分配内存失败lpNewDIBBits=(char*)LocalLock(hNewDIBBits);/锁定内存lpDst=(char*)lpNewDIBBits;/初始化新分配的内存,设定初始值为255memset(lpDst,(BYTE)255,lWidth*lHeight);lLineBytes=WIDTHBYTES(lWidth*8);/计算图像每行的字节数for(i=0;ilWidth;i+)lBlackNumber=0;for(j=0;jlHeight;j+)lpSrc=(char*)lpDIBBits+

8、lLineBytes*j+i;/指向源图像倒数第j行,第i个象素的指针pixel=(unsignedchar)*lpSrc;if(pixel!=255&pixel!=0)returnfalse;if(pixel=0)lBlackNumber+;for(j=0;jlBlackNumber;j+)/指向目标图像倒数第j行,第i个象素的指针lpDst=(char*)lpNewDIBBits+lLineBytes*j+i;*lpDst=(unsignedchar)0;/复制投影图像memcpy(lpDIBBits,lpNewDIBBits,lWidth*lHeight);/释放内存LocalUnlock(hNewDIBBits);LocalFree(hNewDIBBits);/返回returnTRUE;谢谢谢谢谢谢谢谢各位各位各位各位!THANK YOU !THANK YOU !

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号