ImageVerifierCode 换一换
格式:DOCX , 页数:8 ,大小:15.32KB ,
资源ID:5282750      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-5282750.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(HOUGH变换的VC代码.docx)为本站会员(b****4)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

HOUGH变换的VC代码.docx

1、HOUGH变换的VC代码HOUGH变换的VC代码 BOOL WINAPI HoughDIB(LPSTR lpDIBBits, LONG lWidth, LONG lHeight) / 指向源图像的指针 LPSTR lpSrc; / 指向缓存图像的指针 LPSTR lpDst; / 指向变换域的指针 LPSTR lpTrans; / 图像每行的字节数 LONG lLineBytes; / 指向缓存DIB图像的指针 LPSTR lpNewDIBBits; HLOCAL hNewDIBBits; /指向变换域的指针 LPSTR lpTransArea; HLOCAL hTransArea; /变换域

2、的尺寸 int iMaxDist; int iMaxAngleNumber; /变换域的坐标 int iDist; int iAngleNumber; /循环变量 long i; long j; /像素值 unsigned char pixel; /存储变换域中的两个最大值 MaxValue MaxValue1; MaxValue MaxValue2; / 暂时分配内存,以保存新图像 hNewDIBBits = LocalAlloc(LHND, lWidth * lHeight); if (hNewDIBBits = NULL) / 分配内存失败 return FALSE; / 锁定内存 lp

3、NewDIBBits = (char * )LocalLock(hNewDIBBits); / 初始化新分配的内存,设定初始值为255 lpDst = (char *)lpNewDIBBits; memset(lpDst, (BYTE)255, lWidth * lHeight); /计算变换域的尺寸 /最大距离 iMaxDist = (int) sqrt(lWidth*lWidth + lHeight*lHeight); /角度从0180,每格2度 iMaxAngleNumber = 90; /为变换域分配内存 hTransArea = LocalAlloc(LHND, lWidth * l

4、Height * sizeof(int); if (hNewDIBBits = NULL) / 分配内存失败 return FALSE; / 锁定内存 lpTransArea = (char * )LocalLock(hTransArea); / 初始化新分配的内存,设定初始值为0 lpTrans = (char *)lpTransArea; memset(lpTrans, 0, lWidth * lHeight * sizeof(int); / 计算图像每行的字节数 lLineBytes = WIDTHBYTES(lWidth * 8); for(j = 0; j lHeight; j+)

5、for(i = 0;i lWidth; i+) / 指向源图像倒数第j行,第i个象素的指针 lpSrc = (char *)lpDIBBits + lLineBytes * j + i; /取得当前指针处的像素值,注意要转换为unsigned char型 pixel = (unsigned char)*lpSrc; /目标图像中含有0和255外的其它灰度值 if(pixel != 255 & *lpSrc != 0) return FALSE; /如果是黑点,则在变换域的对应各点上加1 if(pixel = 0) /注意步长是2度 for(iAngleNumber=0; iAngleNumbe

6、riMaxAngleNumber; iAngleNumber+) iDist = (int) fabs(i*cos(iAngleNumber*2*pi/180.0) + j*sin(iAngleNumber*2*pi/180.0); /变换域的对应点上加1 *(lpTransArea+iDist*iMaxAngleNumber+iAngleNumber) = *(lpTransArea+iDist*iMaxAngleNumber+iAngleNumber) +1; /找到变换域中的两个最大值点 MaxValue1.Value=0; MaxValue2.Value=0; /找到第一个最大值点 f

7、or (iDist=0; iDistMaxValue1.Value) MaxValue1.Value = (int)*(lpTransArea+iDist*iMaxAngleNumber+iAngleNumber); MaxValue1.Dist = iDist; MaxValue1.AngleNumber = iAngleNumber; /将第一个最大值点附近清零 for (iDist = -9;iDist =0 & iDist+MaxValue1.Dist=0 & iAngleNumber+MaxValue1.AngleNumber=iMaxAngleNumber) *(lpTransAr

8、ea+(iDist+MaxValue1.Dist)*iMaxAngleNumber+ (iAngleNumber+MaxValue1.AngleNumber)=0; /找到第二个最大值点 for (iDist=0; iDistMaxValue2.Value) MaxValue2.Value = (int)*(lpTransArea+iDist*iMaxAngleNumber+iAngleNumber); MaxValue2.Dist = iDist; MaxValue2.AngleNumber = iAngleNumber; /判断两直线是否平行 if(abs(MaxValue1.AngleN

9、umber-MaxValue2.AngleNumber)=2) /两直线平行,在缓存图像中重绘这两条直线 for(j = 0; j lHeight; j+) for(i = 0;i lWidth; i+) / 指向缓存图像倒数第j行,第i个象素的指针 lpDst = (char *)lpNewDIBBits + lLineBytes * j + i; /如果该点在某一条平行直线上,则在缓存图像上将该点赋为黑 /在第一条直线上 iDist = (int) fabs(i*cos(MaxValue1.AngleNumber*2*pi/180.0) + j*sin(MaxValue1.AngleNum

10、ber*2*pi/180.0); if (iDist = MaxValue1.Dist) *lpDst = (unsigned char)0; /在第二条直线上 iDist = (int) fabs(i*cos(MaxValue2.AngleNumber*2*pi/180.0) + j*sin(MaxValue2.AngleNumber*2*pi/180.0); if (iDist = MaxValue2.Dist) *lpDst = (unsigned char)0; / 复制腐蚀后的图像 memcpy(lpDIBBits, lpNewDIBBits, lWidth * lHeight); / 释放内存 LocalUnlock(hNewDIBBits); LocalFree(hNewDIBBits); / 释放内存 LocalUnlock(hTransArea); LocalFree(hTransArea); / 返回 return TRUE;

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2