版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、投影法是根据图像信息在某方向的投影分布特点来进行检测的方法,也就是说像素点的累加,其实是一种统计的方法 。像素灰度值为f(x,y)时,其投影函数h(y)的值为如下公式来计算:其中M,N 为图像尺寸, c 为图像灰度值。将投影值进行归一化,其计算公式如下:资料1 中,先求投影值,再给投影值进行归一化处理。资料2中先进行二值化,然后进行灰度投影。资料1中 ,进行投影以后 * / HprojectDIB() / 图像水平投影 / VprojectDIB() / 图像垂直投影参数: LPSTR lpDIBBits /指向源DIB图像指针 LONG lWidth / 源图像宽度(像素数) LONG lH
2、eight - 源图像高度(像素数)返回值: BOOL /运算成功返回TRUE,否则返回FALSE。* 要求目标图像为只有0和255两个灰度值的灰度图像。 *BOOL WINAPI HprojectDIB(LPSTR lpDIBBits,LONG lWidth, LONG lHeight) LPSTRlpSrc; / 指向源图像的指针 LPSTRlpDst; / 指向缓存图像的指针 LPSTR lpNewDIBBits; / 指向缓存DIB图像的指针 HLOCALhNewDIBBits; long i; /循环变量 long j; long lBlackNumber; /图像中每行内的黑点个数
3、 unsigned char pixel; /像素值 LONG lLineBytes; / 图像每行的字节数函数的声明定义变量 hNewDIBBits = LocalAlloc(LHND, lWidth * lHeight); / 暂时分配内存,以保存新图像if (hNewDIBBits = NULL) return FALSE; / 分配内存失败lpNewDIBBits = (char * )LocalLock(hNewDIBBits); / 初始化新分配的内存,设定初始值为255lpDst = (char *)lpNewDIBBits;memset(lpDst, (BYTE)255, lW
4、idth * lHeight);暂时分配内存如果成功分配内存,则初始化新内存lLineBytes = WIDTHBYTES(lWidth * 8); / 计算图像每行的字节数for (j = 0;j lHeight ;j+) lBlackNumber = 0; for(i = 0;i lWidth ;i+) lpSrc = (char *)lpDIBBits + lLineBytes * j + i; / 指向源图像倒数第j行,第i个象素的指针pixel = (unsigned char)*lpSrc; if (pixel != 255 & pixel != 0) return fal
5、se; if(pixel = 0) lBlackNumber+; 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); / 释放内存 LocalFr
6、ee(hNewDIBBits); return TRUE; / 返回形成新图像(投影后的图像)复制投影图像释放内存返回函数值 BOOL WINAPI VprojectDIB(LPSTR lpDIBBits,LONG lWidth, LONG lHeight) LPSTRlpSrc; / 指向源图像的指针 LPSTRlpDst; / 指向缓存图像的指针 LPSTR lpNewDIBBits; / 指向缓存DIB图像的指针 HLOCALhNewDIBBits; long i; long j; long lBlackNumber; /图像中每行内的黑点个数 unsigned char pixel;
7、/像素值 LONG lLineBytes; / 图像每行的字节数hNewDIBBits = LocalAlloc(LHND, lWidth * lHeight); / 暂时分配内存,以保存新图像if (hNewDIBBits = NULL) return FALSE; / 分配内存失败lpNewDIBBits = (char * )LocalLock(hNewDIBBits); / 锁定内存lpDst = (char *)lpNewDIBBits; / 初始化新分配的内存,设定初始值为255memset(lpDst, (BYTE)255, lWidth * lHeight);lLineByte
8、s = WIDTHBYTES(lWidth * 8); / 计算图像每行的字节数for (i = 0;i lWidth ;i+)lBlackNumber = 0;for(j = 0;j lHeight ;j+)lpSrc = (char *)lpDIBBits + lLineBytes * j + i; / 指向源图像倒数第j行,第i个象素的指针pixel = (unsigned char)*lpSrc;if (pixel != 255 & pixel != 0)return false;if(pixel = 0)lBlackNumber+;for(j = 0;j lBlackNumber ;j+)/ 指向目标图像倒数第j行,第i个象素的指针lpDst = (char *)lpNewDIBBits + lLineBytes * j + i;*lpDst = (unsigned char
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【FFA 2026】Agentic Lake 1 Fluss 湖流一体新篇章:极致实时分析与 AI 实时数据底座
- 2026年二级消防防排烟风机选型测试试卷(含答案及解析)
- 2026年安徽省宿州市中小学编制教师招聘笔试模拟试题及答案详解
- 2026年鹤岗市兴山区中小学编制教师招聘考试备考试题及答案详解
- 2026年株洲市荷塘区中小学编制教师招聘考试备考题库及答案详解
- 2026年白银市平川区中小学编制教师招聘考试参考题库及答案详解
- 2026年佛山市禅城区中小学编制教师招聘笔试备考题库及答案详解
- 2026年六安市金安区事业编单位人员招聘笔试备考试题及答案详解
- 2026年湖北省鄂州市中小学编制教师招聘笔试备考题库及答案详解
- 2026年云南省普洱市事业编单位人员招聘笔试备考试题及答案详解
- 国开《离散数学》大作业及答案
- 【中考真题】2024年广东省广州市中考物理试卷(附答案)
- 机电一体化系统-001-国开机考复习资料
- DB51∕T 2431-2017 汽车客运站建设规程
- 吉林省长春市南关区2023-2024学年七年级下学期期中地理试题
- 专题 平行四边形中的最值问题(解析版)
- JGJ6-2011 高层建筑筏形与箱形基础技术规范
- 2023年中国中医科学院广安门医院专项招聘医学类人员及高层次卫技人才考试历年高频考点试题含答案解析
- 工作场所安全使用化学品规定
- 小学二年级数学下册无纸化测试题
- T-QGCML 772-2023 管状电机标准规范
评论
0/150
提交评论