欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    车牌校正实验报告Word格式.docx

    • 资源ID:7901791       资源大小:570.58KB        全文页数:15页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    车牌校正实验报告Word格式.docx

    1、 X1=s(x0,y0)=c1x0+c2y0+c3x0y0+c4; Y1=t(x0,y0)=c5x0+c6y0+c7x0y0+c8上述表达式中总共涉及到8个参数,如果能找到4对对应点就能够建立8个方程,然后解出对应的参数,从而求出对应的几何关系(4) 模型的求解通过对原图像做求解后的几何变换即可得出投影失真校正后的车牌图像4.试验结果及分析运行效果截图: 结果分析: 此次实验表明,此次实验所提出的投影校正方法能够在车牌存在较小角度倾斜的情况下较好的恢复车牌原型,且处理速度快便于实现。不足则在于每次均需通过手工定位车牌边缘定点,所以此实验算法可以在实现对应车牌定位算法的基础上进行改进。附:1.参

    2、考文献数字图像处理与机器视觉张铮 王艳平 薛桂香 著人民邮电出版社附源代码:/*投影变形校正相关*/*void CImgProcess:ProdMat(double* ppDbMat, double *pDbSrc2, double *pDbDest, int y, int x, int z)功能:计算两矩阵的乘积注:该函数计算两个矩阵的相乘,然后将相乘的结果存放在pDbDest中。 其中pDbSrc1 *的大小为 x*z,pDbSrc2的大小为 z*y,pDbDest的大小为 x*y参数:double *pDbSrc1 - 指向相乘矩阵1的内存double *pDbSrc2 - 指向相乘矩阵

    3、2的内存double *pDbDest - 存放矩阵相乘运行结果的内存指针int x - 矩阵的尺寸,具体参见函数注int y - 矩阵的尺寸,具体参见函数注int z - 矩阵的尺寸,具体参见函数注 返回值: 无 */ int nCnt = 0; int i,j; double * pDbSrc1 = new doublem_nBasePt * m_nBasePt; for(i=0; im_nBasePt; i+) for(j=0; j j+) pDbSrc1nCnt+ = ppDbMatij; iy;i+)jx;j+) pDbDesti*x + j = 0; for(int m=0;mz;

    4、m+) pDbDesti*x + j += pDbSrc1i*z + m*pDbSrc2m*x + j; nCnt = 0; ppDbMatij = pDbSrc1nCnt+; delete pDbSrc1;GetProjPara(CPoint* pPointBase, CPoint* pPointSampl, double* pDbProjPara)根据基准点对儿(4对儿)确定变换参数CPoint* pPointBase:基准图像的基准点CPoint* pPointSampl:输入图像的基准点double* pDbProjPara:变换参数返回值: int i; /投影线性方程的系数矩阵 d

    5、ouble* ppParaMat; ppParaMat = new double*m_nBasePt; ppParaMati = new doublem_nBasePt; ppParaMati0 = pPointBasei.x; ppParaMati1 = pPointBasei.y; ppParaMati2 = pPointBasei.x * pPointBasei.y; ppParaMati3 = 1; double* pResMat;/结果矩阵 pResMat = new doublem_nBasePt; i+)/计算前四个系数 c1,c2,c3,c4 pResMati = pPoint

    6、Sampli.x; /投影线性方程的值x / 采用左乘系数矩阵的逆矩阵的方法解出投影变换的前4个系数 c1,c2,c3,c4 InvMat(ppParaMat, m_nBasePt); ProdMat(ppParaMat, pResMat, pDbProjPara, m_nBasePt, 1, m_nBasePt);/求出前4个系数 i+)/计算后四个系数 c5,c6,c7,c8 pResMati = pPointSampli.y; /投影线性方程的值y / 采用左乘系数矩阵的逆矩阵的方法解出投影变换的后4个系数 c5,c6,c7,c8 ProdMat(ppParaMat, pResMat,

    7、pDbProjPara+m_nBasePt, m_nBasePt, 1, m_nBasePt);/求出后4个系数 /释放空间 delete pResMat; delete ppParaMati; delete ppParaMat;BOOL CImgProcess:InvMat(double* ppDbMat, int nLen)计算ppDbMat的逆矩阵ppDbMat必须为方阵double* ppDbMat:输入矩阵int nLen:矩阵ppDbMat的尺寸 BOOL =true:执行成功 =false:计算过程中出现错误*/ double* pDbSrc = new doublenLen *

    8、 nLen; int *is,*js,i,j,k; /保存要求逆的输入矩阵nLen; pDbSrcnCnt+ = ppDbMatij; double d,p; is = new intnLen; js = new intnLen; for(k=0;kd) d = p; /记录绝对值最大的系数的行、列索引 isk = i; jsk = j; if(d+1.0=1.0) /系数全是0,系数矩阵为0 阵,此时为奇异矩阵 delete is; delete js; return FALSE; if(isk != k) /当前行不包含最大元素 for(j=0; /交换两行元素 p = pDbSrck*n

    9、Len + j; pDbSrck*nLen + j = pDbSrc(isk*nLen) + j; pDbSrc(isk)*nLen + j = p; if(jsk != k) /当前列不包含最大元素 for(i=0; /交换两列元素 p = pDbSrci*nLen + k; pDbSrci*nLen + k = pDbSrci*nLen + (jsk); pDbSrci*nLen + (jsk) = p; pDbSrck*nLen + k=1.0/pDbSrck*nLen + k; /求主元的倒数 / ak,jak,k - ak,j if(j != k) pDbSrck*nLen + j*

    10、=pDbSrck*nLen + k; / ai,j - ai,kak,j - ai,j for(i=0; if(i ! for(j=0; if(j!=k) pDbSrci*nLen + j -= pDbSrci*nLen + k*pDbSrck*nLen + j; / -ai,kak,k - ai,k pDbSrci*nLen + k *= -pDbSrck*nLen + k; for(k=nLen-1; k=0; k-) /恢复列 pDbSrck*nLen + j = pDbSrc(jsk)*nLen + j; pDbSrc(jsk)*nLen + j = p; /恢复行 pDbSrci*n

    11、Len + k = pDbSrci*nLen +(isk); pDbSrci*nLen + (isk) = p; /将结果拷贝回系数矩阵ppDbMat ppDbMatij = pDbSrcnCnt+; delete is; delete js; delete pDbSrc; return TRUE;MYPOINT CImgProcess:ProjTrans(CPoint pt, double* pDbProjPara)根据变换参数对点pt实施投影变换CPoint pt:要进行投影变换的点坐标 MYPOINT MYPOINT retPt; retPt.x = pDbProjPara0 * pt.

    12、x + pDbProjPara1 * pt.y + pDbProjPara2 * pt.x * pt.y + pDbProjPara3; retPt.y = pDbProjPara4 * pt.x + pDbProjPara5 * pt.y + pDbProjPara6 * pt.x * pt.y + pDbProjPara7; return retPt;ImProjRestore(CImgProcess* pTo, CPoint *pPointBase, CPoint *pPointSampl, bool bInterp)实施投影变形校正CImgProcess* pTo:校准后图像的 CIm

    13、gProcess 指针CPoint *pPointBase:基准图像的基准点数组CPoint *pPointSampl:输入图像的基准点数组bool bInterp:是否使用(双线性)插值 double* pDbProjPara = new doublem_nBasePt * 2; GetProjPara(pPointBase, pPointSampl, pDbProjPara); /用得到的变换系数对图像实施变换 int i, j; pTo-InitPixels(255); /清空目标图像 int nHeight = pTo-GetHeight(); int nWidth = pTo-Get

    14、WidthPixel();nHeight;nWidth; /对每个点(j, i),计算其投影失真后的点ptProj MYPOINT ptProj = ProjTrans( CPoint(j, i), pDbProjPara ); if(bInterp) int nGray = InterpBilinear(ptProj.x, ptProj.y); /输入图像(投影变形图像)的对应点灰度 if(nGray = 0) pTo-SetPixel(j, i, RGB(nGray, nGray, nGray); elseSetPixel(j, i, RGB(255, 255, 255); /超出图像范围,填充白色 else int ii = ptProj.y + 0.5; /四舍五入的最近邻插值 int jj = ptProj.x + 0.5; if( ii0 & ii jjGetWidthPixel() )SetPixel(j, i, GetPixel(jj, ii); delete pDbProjPara;2


    注意事项

    本文(车牌校正实验报告Word格式.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

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


    收起
    展开