版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机视觉应用第4章
图像几何变换目录CONTENT4.1基础几何变换014.2仿射变换024.3透视变换03任务实践04拓展实训05本章小结06课后习题07手机拍照后旋转图片——纠正倾斜;图像几何变换是计算机视觉中“调整图像空间位置与形态”的核心技术通俗来说就是“改变图像的大小、位置、角度或形状”,其应用场景随处可见:人脸识别时缩放人脸图像——统一尺寸;扫描文档时校正倾斜的页面——透视变换;全景图拼接时调整多幅图像的视角——仿射变换。引言引言平移、旋转、缩放、翻转,改变位置或尺寸,不改变图像形状;基础几何变换两类几何变换:仿射、透视,改变图像形状,用于校正或视角转换;所有技术均基于OpenCV的warpAffine()和warpPerspective()函数实现,配套大量实操例子,确保能直接应用到实际场景。复杂几何变换引言图像几何变换精准应用重要基础工匠精神图像几何变换看似是基于矩阵运算的技术工具,实则是支撑现代产业发展的重要基础;从国产空间站“天宫”传回图像的畸变校正,到自动驾驶汽车摄像头的实时视角转换,再到医疗影像设备中病灶区域的精准定位,这些关乎国计民生与科技突破的场景,都离不开几何变换技术的精准应用;我国科研团队在自主图像处理算法研发中,正是以“工匠精神”打磨每一个变换参数,让技术精度达到国际领先水平,部分成果已被OpenCV等国际主流库收录。工作情境实际工作中,你拿到的图像很少会“端端正正”:工业线上的零件可能歪着放,零售货架的商品图尺寸不统一,监控摄像头装偏了画面还会倒置——这些“形态问题”会直接影响后续工作;工作情境比如歪的零件图没法准确测尺寸,尺寸不统一的商品图没法进系统;图像几何变换,就是帮你把这些“不标准”图像调成“能用的样子”。本模块学的平移、旋转、缩放和透视变换,每一个都对应具体需求:透视变换能把歪的零件图转正,缩放能把商品图调成统一大小;工作情境对需要处理图像的岗位来说,这些操作不是“花架子”;而是“把图像调好用”的必备手段,学会了就能少走很多弯路。学习目标知识目标3.熟悉OpenCV中相关函数的使用,如cv2.warpAffine()、cv2.getPerspectiveTransform()等,并能根据任务需求选择合适的插值方法。2.理解仿射变换与透视变换的区别与应用场景,掌握基于多对应点的变换矩阵生成方法。1.掌握图像基础几何变换(平移、旋转、缩放、翻转)的原理与实现方法,理解变换矩阵的作用及参数含义。能力目标3.具备根据实际场景手动选取特征点并调整参数的能力,提升解决实际图像处理问题的动手能力。2.能够对倾斜、畸变的图像(如身份证、书本封面)进行仿射或透视校正,使其恢复为规整的矩形视角。1.能够独立完成图像的组合几何变换(如平移+旋转+缩放),并理解变换顺序对结果的影响。素养目标3.技术报国的价值认同:通过了解国产空间站图像校正、自动驾驶视角转换等案例,理解图像几何变换在国家科技发展中的基础支撑作用,树立“小技术、大贡献”的职业使命感。2.问题导向的解决思维:面对倾斜、变形等实际问题,学会分析成因、选择合适方法,增强在实际岗位中“把图像调好用”的责任意识。1.严谨细致的工程习惯:在手动选取特征点、设置变换参数时,培养耐心与精准度,体现“细节决定成败”的职业态度。4.1基础几何变换基础几何变换核心是“线性变换”,不改变图像的像素值,仅调整像素的空间坐标,且变换后图像的形状不变。OpenCV中,平移、旋转、缩放均通过cv2.warpAffine()函数实现,该函数需传入“原始图像”“变换矩阵”和“目标图像尺寸”三个关键参数。图像平移4.1.1图像平移是将图像沿x轴即水平方向和y轴即垂直方向移动指定距离,核心是构建“平移矩阵”。1.原理与变换矩阵平移矩阵的格式为2×3的浮点型矩阵:dx:x轴方向偏移量,正数向右,负数向左;dy:y轴方向偏移量,正数向下,负数向上;矩阵需用np.float32()转换为float32类型(OpenCV要求)。2.核心函数:cv2.warpAffine()(注意:是“宽度
×
高度”,与图像shape的“高度
×
宽度”相反);flags:插值方法(可选,默认cv2.INTER_LINEAR,适合大多数场景);M:变换矩阵(2×3,float32类型);src:输入原始图像;语法:dst=cv2.warpAffine(src,M,dsize,flags)dsize:目标图像尺寸,格式为(width,height)返回值:dst,变换后的图像。3.示例:图像向右下平移示例4-1:将风景图向右平移100像素、向下平移50像素1.新建一个Python文件;2.导入必要的库;第一步:读取图像+格式验证直接使用图像文件名怕图像路径错了加载失败前提是图像文件与代码在同一目录实际项目里这种容错很重要3.示例:图像向右下平移第二步:获取图像尺寸后续的平移变换需要知道原始尺寸来确定输出图像的大小用解包赋值获取图像的高度、宽度和通道数为什么要了解图像尺寸?3.示例:图像向右下平移第三步:定义平移参数dx=100表示向右平移100像素x轴向右为正,y轴向下为正,与数学坐标系不同dy=50表示向下平移50像素3.示例:图像向右下平移第四步:构建平移矩阵为什么是这个形式?2×3平移矩阵新x坐标=1×原x+0×原y+dx新y坐标=0×原x+1×原y+dy3.示例:图像向右下平移第五步:应用平移变换为什么用(w,h)而不是(h,w)?执行变换:M:平移矩阵(w,h):输出图像尺寸因为OpenCV的dsize参数要求格式是(宽度,高度)3.示例:图像向右下平移第六步:添加文字标注添加标注:是文字起始位置字体类型字体大小2:线宽是红色BGR值3.示例:图像向右下平移第七步:结果显示与保存显示对比结果保存平移后的图像3.示例:图像向右下平移第八步:资源释放等待按键后关闭所有窗口,释放系统资源3.示例:图像向右下平移运行结果左窗口为原图,右窗口为平移后的图像,图像整体向右下移动,左上角出现黑色空白区域(因像素移出原范围,无新像素填充)。如图4-1所示:图4-1将风景图向右平移100像素、向下平移50像素图像旋转4.1.2图像旋转是将图像绕指定“旋转中心”旋转指定角度,核心是通过cv2.getRotationMatrix2D()自动生成“旋转矩阵”,无需手动构建。angle:旋转角度,正数为逆时针旋转,负数为顺时针旋转;center:旋转中心坐标,格式为(x,y),x为宽度方向坐标,y为高度方向坐标,通常取图像中心(w//2,h//2);语法:M=cv2.getRotationMatrix2D(center,angle,scale)scale:旋转后的缩放系数,1.0表示不缩放,0.8表示缩小为原图的80%,1.2表示放大为120%;返回值:M,2×3的旋转矩阵,float32类型,直接传入cv2.warpAffine()即可。1.核心函数:cv2.getRotationMatrix2D()2.示例:图像绕中心旋转示例4-2:将人物图绕中心逆时针旋转45度,不缩放;顺时针旋转90度,缩放0.81.新建一个Python文件;2.导入必要的库;第一步:旋转原理理解角度正数为逆时针旋转,负数为顺时针旋转旋转的核心:通过RotationMatrix2D()自动生成旋转矩阵,无需手动构建缩放系数控制图像大小变化2.示例:图像绕中心旋转第二步:OpenCV函数实现(推荐)2×3旋转矩阵为什么要设置旋转中心为图像中心?应用仿射变换是为了让图像绕中心旋转而不是左上角,这样视觉效果更自然。2.示例:图像绕中心旋转第三步:参数设置与效果验证逆时针45度,不缩放;scale=1.0为什么要测试不同参数?为了理解每个参数的实际影响,为实际项目中的参数调优积累经验。顺时针90度,缩放0.8(缩小)2.示例:图像绕中心旋转第四步:结果标注与显示添加文字标注是为了清晰区分不同旋转效果,方便对比分析。2.示例:图像绕中心旋转第五步:结果显示与保存显示所有处理结果进行对比通过多窗口显示,直观感受不同旋转参数的效果差异,保存处理结果便于后续使用。2.示例:图像绕中心旋转第六步:资源释放等待按键后关闭所有窗口,释放系统资源2.示例:图像绕中心旋转运行结果三个窗口分别显示原图、逆时针45度旋转图,边缘有裁剪,因旋转后部分像素超出原尺寸;顺时针90度缩放图,图像缩小且无明显裁剪。如图4-2所示图4-2将人物图绕中心逆时针旋转45度(不缩放)和顺时针旋转90度(缩放0.8)图像缩放4.1.3图像缩放是调整图像的尺寸,核心是cv2.resize()函数,支持两种缩放方式:①
指定目标尺寸;②
指定缩放比例,且可通过“插值方法”控制缩放后的图像质量。1.核心函数:cv2.resize()fy:y轴方向的缩放比例,通常与fx一致,避免图像拉伸;dsize:目标尺寸,格式为(width,height)(若为None,则通过fx和fy计算);src:输入原始图像;语法:dst=cv2.resize(src,dsize,fx,fy,interpolation)fx:x轴方向的缩放比例,如0.5表示缩小为50%,2表示放大为200%;interpolation:插值方法,见表4-1;返回值:dst,缩放后的图像。1.核心函数:cv2.resize()表4-1常见的插值方法:插值方法特点适用场景cv2.INTER_NEAREST最近邻插值,速度最快,质量最差快速预览,对质量要求低的场景cv2.INTER_LINEAR双线性插值,速度较快,质量中默认方法,大多数缩放场景cv2.INTER_CUBIC双三次插值,速度慢,质量高图像放大,如放大细节cv2.INTER_AREA区域插值,适合缩小,避免模糊图像缩小,如缩略图表4-1常用插值方法及适用场景示例4-3:将文本图缩小为原图的50%,再放大为原图的200%,对比不同插值方法1.新建一个Python文件;2.导入必要的库;2.示例:不同插值方法的缩放效果对比第一步:缩放原理理解cv2.resize()函数调整图像尺寸因为不同的算法在速度和质量上有权衡,需要根据实际需求选择。为什么要用不同的插值方法?直接指定目标尺寸(dsize)或使用缩放比例(fx,fy)2.示例:不同插值方法的缩放效果对比第二步:OpenCV函数实现(核心)cv2.resize()函数调整图像尺寸直接指定目标尺寸(dsize)或使用缩放比例(fx,fy)为什么要用INTER_AREA?因为这是图像缩小时的推荐方法,能避免模糊和锯齿现象。2.示例:不同插值方法的缩放效果对比第三步:不同插值方法对比(理解原理)为什么要对比三种方法?是为了让大家直观感受不同插值方法在图像放大时的质量差异,为实际项目中的方法选择提供依据。2.示例:不同插值方法的缩放效果对比第四步:结果标注与显示添加文字标注是为了清晰区分不同插值方法的效果,方便对比分析2.示例:不同插值方法的缩放效果对比第五步:结果显示与保存通过多窗口显示,直观感受不同插值方法的质量差异,理解各种方法的适用场景。显示所有处理结果进行对比2.示例:不同插值方法的缩放效果对比第六步:资源释放通过多窗口显示,直观感受不同插值方法的质量差异,理解各种方法的适用场景。显示所有处理结果进行对比等待按键后关闭所有窗口,释放系统资源2.示例:不同插值方法的缩放效果对比如图4-3所示图4-3将文本图缩小为原图的50%,再放大为原图的200%,对比不同插值方法INTER_NEAREST放大的文本图最模糊,文字边缘有锯齿;INTER_LINEAR中等清晰,INTER_CUBIC最清晰,文字边缘平滑。证明
“放大图像时,双三次插值质量最优”。运行结果图像翻转4.1.4图像翻转是将图像沿水平或垂直方向“镜像翻转”,核心是cv2.flip()函数,操作简单且无需变换矩阵,适合快速调整图像方向。1.核心函数:cv2.flip()flipCode:翻转方向(关键参数):
flipCode=1:水平翻转,左右镜像,如人脸左右翻转;
flipCode=0:垂直翻转,上下镜像,如风景图上下颠倒;
flipCode=-1:水平+垂直双向翻转,左右且上下镜像;src:输入原始图像;语法:dst=cv2.flip(src,flipCode)返回值:dst,翻转后的图像。示例4-4:将对称的建筑图进行三种翻转,观察镜像效果1.新建一个Python文件;2.导入必要的库;2.示例:三种翻转方式对比第一步:翻转原理理解通过cv2.flip()函数实现图像镜像变换,无需复杂的变换矩阵读取图像为什么要用不同的flipCode?不同参数对应不同的镜像方向2.示例:三种翻转方式对比第二步:OpenCV函数实现(核心)为什么要用对称建筑图?因为对称结构的图像在翻转后效果更明显,便于观察和理解翻转的本质。2.示例:三种翻转方式对比第三步:结果标注与显示添加文字标注是为了清晰区分不同翻转方式的效果,特别是标注对应的flipCode值,加深参数记忆。2.示例:三种翻转方式对比第四步:结果显示与保存通过多窗口显示,直观感受三种翻转方式的效果差异,理解各种翻转的实际应用场景。显示所有处理结果进行对比2.示例:三种翻转方式对比第五步:资源释放等待按键后关闭所有窗口释放系统资源2.示例:三种翻转方式对比运行结果如图4-4所示,水平翻转图与原图左右对称,建筑的门从左侧变右侧;垂直翻转图上下颠倒,天空在下方,地面在上方;双向翻转图同时左右和上下镜像,效果直观。图4-4
4.2仿射变换仿射变换(AffineTransformation)是“基础几何变换的组合”,能同时实现平移、旋转、缩放、倾斜,核心特点是“保持平行线不变”;变换前的平行线,变换后仍为平行线,如矩形变换后为平行四边形,但不会变成梯形。原理与关键条件4.2.1仿射变换核心是“三个对应点”:通过确定原始图像上的3个非共线点(不在同一直线上),以及变换后这3个点的目标位置,OpenCV会自动计算出仿射变换矩阵,进而应用到整个图像。1.核心函数dst_pts:目标图像上对应的3个点,格式与src_pts一致;src_pts:原始图像上的3个点,格式为np.float32([[x1,y1],[x2,y2],[x3,y3]]);cv2.getAffineTransform(src_pts,dst_pts):生成仿射变换矩阵返回值:2×3的仿射矩阵(float32类型);cv2.warpAffine():应用仿射变换(与基础变换共用该函数)。2.应用场景仿射变换常用于“轻微倾斜校正”,如:扫描的文本图像轻微倾斜,矩形文本框变平行四边形;1.拍摄的名片轻微倾斜,需校正为正面平行四边形。2.4.2.2示例:文本图像倾+斜校正示例4-5:将轻微倾斜的文本图(平行四边形)校正为水平文本图(矩形)1.新建一个Python文件;2.导入必要的库;第一步:读取图像+格式验证直接使用图像文件名加个判断实际项目里这种容错很重要前提是图像文件与代码在同一目录怕图像路径错了加载失败,及时提示4.2.2示例:文本图像倾+斜校正第二步:选择原始图像三个点为什么要选三个点?仿射变换需要至少三对非共线点,才能唯一确定变换矩阵。仿射变换的核心关键要求:这三个点不能在同一直线上,否则无法计算出有效的变换矩阵。4.2.2示例:文本图像倾+斜校正第三步:定义目标位置三个点设置校正后的目标位置数学原理:通过这三对点的对应关系,OpenCV可以计算出从倾斜平面到水平平面的仿射变换矩阵。将右上角点的y坐标从40调整为604.2.2示例:文本图像倾+斜校正第四步:可视化标记点验证点选择是否正确(0,255,0):绿色BGR值在原图上绘制标记5:圆点半径-1:填充圆点4.2.2示例:文本图像倾+斜校正第五步:生成仿射变换矩阵核心计算根据三对对应点计算出2×3的仿射变换矩阵4.2.2示例:文本图像倾+斜校正第六步:应用仿射变换执行实际变换M:变换矩阵将倾斜的文本"拉直"成水平排列(w,h):输出图像尺寸与原图一致核心计算根据三对对应点计算出2×3的仿射变换矩阵4.2.2示例:文本图像倾+斜校正第七步:结果显示与保存显示对比结果结果显示保存校正后的图像4.2.2示例:文本图像倾+斜校正第八步:资源释放结果显示保存校正后的图像等待按键后关闭所有窗口,释放系统资源4.2.2示例:文本图像倾+斜校正运行结果如图4-5所示,左窗口为原图,绿色圆点标记3个原始点,文本倾斜;右窗口为校正后的图像,可以很明显的看出改善效果,从而证明仿射变换能有效校正轻微倾斜。图4-54.3透视变换透视变换(PerspectiveTransformation是比仿射变换更灵活的“非线性变换”,核心特点是“不保持平行线不变”;变换前的平行线,变换后可相交,如矩形变换后为梯形、任意四边形,能实现“视角转换”,常用于严重倾斜的图像校正。原理与关键条件4.3.1透视变换透视变换的核心是“四个对应点”:需确定原始图像上的4个非共线点,通常为物体的四个角点,如身份证的四个角,以及变换后这4个点的目标位置,通常为矩形的四个角,如正面视图的矩形,OpenCV通过这8个坐标计算“透视矩阵”。1.核心函数dst_pts:目标图像上对应的4个点,格式与src_pts一致,需为矩形,确保校正后为正面视图;src_pts:原始图像上的4个点,格式为np.float32([[x1,y1],[x2,y2],[x3,y3],[x4,y4]]);cv2.getPerspectiveTransform(src_pts,dst_pts):生成透视变换矩阵返回值:3×3的透视矩阵,float32类型,与仿射矩阵的2×3不同。1.核心函数dsize:目标图像尺寸;语法:dst=cv2.warpPerspective(src,M,dsize);cv2.warpPerspective():应用透视变换通常根据目标点计算,确保校正后的物体完整显示。2.应用场景拍摄的倾斜身份证,从斜上方拍摄,呈梯形校正为正面矩形;1.倾斜的书本封面校正为正面视图;2.道路监控图像中的车辆视角转换为正面视图。3.透视变换常用于“严重倾斜校正”或“视角转换”,如:4.3.2示例:书本封面透视校正示例4-6:将从斜上方拍摄的书本封面(梯形)校正为正面矩形1.新建一个Python文件;2.导入必要的库;第一步:读取图像+格式验证直接使用图像文件名怕图像路径错了加载失败前提是图像文件与代码在同一目录实际项目里这种容错很重要4.3.2示例:书本封面透视校正第二步:选择原始图像四个点透视变换的核心为什么要选四个点因为透视变换需要四对点才能唯一确定3×3的透视变换矩阵。关键要求:这四个点必须是物体的四个角点,且按顺时针或逆时针顺序排列。4.3.2示例:书本封面透视校正第三步:定义目标位置四个点设置校正后的目标位置定义了一个300×280像素的矩形因为像素坐标从0开始,最大坐标是width-1和height-1。数学原理:通过这四对点的对应关系,OpenCV可以计算出从倾斜视角到正面视角的透视变换矩阵。为什么尺寸要减1?4.3.2示例:书本封面透视校正第四步:可视化标记点验证点选择是否正确在原图上绘制标记(0,0,255):红色BGR值6:圆点半径-1:填充圆点4.3.2示例:书本封面透视校正第五步:生成透视变换矩阵验证点选择是否正确在原图上绘制标记(0,0,255):红色BGR值6:圆点半径-1:填充圆点核心计算这个函数根据四对对应点计算出3×3的透视变换矩阵,实现了从倾斜视角到正面视角的数学映射。4.3.2示例:书本封面透视校正第六步:应用透视变换执行实际变换这一步将倾斜的书本封面"拉直"成正面矩形3×3透视矩阵输出图像的目标尺寸4.3.2示例:书本封面透视校正第七步:结果显示与保存显示对比结果:保存校正后的图像4.3.2示例:书本封面透视校正第八步:资源释放显示对比结果:保存校正后的图像等待按键后关闭所有窗口,释放系统资源4.3.2示例:书本封面透视校正运行结果如图4-6所示右侧窗口为原图(红色圆点标记书本四个角,呈梯形),左侧窗口为校正后的图像(书本变为正面矩形,文字清晰且无倾斜),证明透视变换能有效处理严重倾斜的图像。图4-6将从斜上方拍摄的书本封面(梯形)校正为正面矩形注意:本程序在运行前需要手动标注书本的四个角的具体位置,图4-6中用红色框线框出来的部分就是四个角的具体坐标,读者可以尝试换一张倾斜的图片来再次做该示例,学习如何标注角的位置。
任务实践任务实践任务1:
图像组合变换:平移+旋转+缩放1.读取一张风景图像;2.按顺序执行以下变换:
向右平移50像素、向上平移30像素;绕图像中心逆时针旋转30度,缩放0.9;缩小为变换后图像的80%(用INTER_AREA插值);3.显示“原图→平移图→旋转图→缩放图”完整流程,保存最终缩放图为
“combo_transform.jpg”。任务实践任务2:
简单透视校正2.手动选择名片的4个角点,顺时针顺序;3.定义目标矩形(宽度400像素,高度250像素),应用透视变换;4.显示校正前后的对比图,保存校正后的名片为“card_corrected.jpg”。1.用手机斜拍一张名片,保存为“card_tilted.jpg”;拓展实训实训1:
图像组合变换:平移+旋转+缩放1.掌握多个基础几何变换的组合应用流程;1.2.理解变换顺序对最终效果的影响:先平移再旋转,与先旋转再平移效果不同;2.3.熟练使用cv2.warpAffine()和cv2.resize()函数,正确设置参数。3.实训目标选择一张清晰的动物图像,如“dog.jpg”,分辨率建议600×400左右;素材方面实训准备平移矩阵构建、旋转矩阵生成、缩放插值方法。核心技术实训1:图像组合变换:平移+旋转+缩放原图→平移(右50,上30)→旋转(绕中心逆30度,缩0.9)→缩放(缩80%),每一步都基于上一步的结果,需保存中间结果用于对比。步骤1:分析实训流程组合变换需按“顺序执行”,本次实训流程:实训1:图像组合变换:平移+旋转+缩放步骤2:编写实训代码1.新建一个Python文件;2.导入必要的库;实训1:图像组合变换:平移+旋转+缩放第一步:读取图像+格式验证读取原始图像加个判断实际项目里这种容错很重要怕图像路径错了加载失败,及时提示实训1:图像组合变换:平移+旋转+缩放第二步:步骤1:平移平移操作完成向上30像素实训1:图像组合变换:平移+旋转+缩放第三步:步骤2:旋转旋转操作完成绕平移图中心实训1:图像组合变换:平移+旋转+缩放第四步:步骤3:缩放缩放操作完成缩小为旋转图的80%实训1:图像组合变换:平移+旋转+缩放第五步:添加文字标注区分各步骤实训1:图像组合变换:平移+旋转+缩放第六步:显示完整流程显示完整流程实训1:图像组合变换:平移+旋转+缩放第七步:保存最终结果保存最终结果等待按键后关闭所有窗口,释放系统资源实训1:图像组合变换:平移+旋转+缩放
1.运行代码:执行pythonexp1_combo_transform.py;
3.扩展尝试修改变换顺序,如先旋转再平移,观察最终效果是否不同,理解“变换顺序影响结果”,先旋转再平移,旋转中心为原图中心,与先平移再旋转的中心不同。
2.验证结果:平移图:图像整体向右上移动,右下角出现黑色空白;旋转图:平移后的图像绕中心逆时针旋转,边缘有轻微裁剪;缩放图:旋转后的图像缩小,无明显模糊(INTER_AREA插值效果好);运行与验证实训1:图像组合变换:平移+旋转+缩放实训结果与分析图4-7图像组合变换变换顺序关键:组合变换中,“先平移再旋转”的旋转中心是平移后的图像中心,“先旋转再平移”的旋转中心是原图中心,导致最终位置不同;缩放插值选择:缩小图像时,INTER_AREA插值能保留更多细节,避免模糊;实训结果:如图4-7所示。实训1:图像组合变换:平移+旋转+缩放实训2:照片透视校正掌握透视变换的完整流程:选点→生成矩阵→应用变换;1.能根据实际倾斜的身份证,准确选择4个角点;2.实现严重倾斜的身份证校正为正面矩形,为后续文字识别铺路。3.实训目标用手机从斜上方拍摄一张身份证,确保四个角清晰可见,保存为
“id_card_tilted.jpg”;素材方面实训准备画图工具,辅助查看身份证角点坐标,如Windows画图的“像素坐标”功能。工具方面实训2:照片透视校正读取倾斜身份证→手动选择4个角点(顺时针顺序)→定义目标矩形→生成透视矩阵→应用变换→显示保存。步骤1:分析实训流程身份证透视校正流程:实训2:照片透视校正步骤2:编写实训代码1.新建一个Python文件;2.导入必要的库;实训2:照片透视校正第一步:读取图像+格式验证读取倾斜的身份证图像加个判断绘制角点怕图像路径错了加载失败,及时提示实训2:照片透视校正第二步:手动选择身份证的4个角点手动选择身份证的4个角点顺时针顺序怕图像路径错了加载失败,及时提示实训2:照片透视校正第三步:定义目标矩形顺时针顺序身份证实际比例约为85.6×54mm,按10像素/mm估算,目标尺寸856×540实训2:照片透视校正第四步:绘制4个角点绘制4个角点标注序号实训2:照片透视校正第五步:生成透视变换矩阵生成透视变换矩阵实训2:照片透视校正第六步:应用透视变换生成透视变换矩阵dsize为目标尺寸实训2:照片透视校正第七步:添加文字标注生成透视变换矩阵dsize为目标尺寸添加文字标注实训2:照片透视校正第八步:显示对比显示对比实训2:照片透视校正第八步:显示对比显示对比保存校正后的身份证等待按键后关闭所有窗口,释放系统资源实训2:照片透视校正
1.调整角点坐标:用画图工具打开“id_card_tilted.jpg”,鼠标移动到身份证四个角,记录每个角的(x,y)坐标,x为水平像素,y为垂直像素;将记录的坐标替换代码中src_pts的示例值,确保顺序为“左上→右上→右下→左下”,顺时针;
3.异常处理:若校正后身份证变形,检查角点顺序是否正确(顺时针)或坐标是否准确,如将左上角误选为左下角。
2.运行代码:执行pythonexp2_id_card_perspective.py;验证结果:原图窗口:四个绿色圆点准确标记身份证四角,序号1-4顺时针排列;校正窗口:身份证变为正面矩形,文字水平且清晰,无倾斜;运行与验证实训2:照片透视校正实训结果与分析图4-8身份证透视校正角点选择关键:透视变换的4个点必须是“物体的四个角”且“顺时针/逆时针顺序一致”,否则会导致校正后图像颠倒或变形;目标尺寸选择:根据物体实际比例设置目标尺寸(如身份证85.6×54mm),确保校正后无拉伸;实训2:照片透视校正本章小结本章小结本模块围绕“图像几何变换”展开,系统讲解了两类核心技术:基础几何变换(平移、旋转、缩放、翻转)与复杂几何变换(仿射、透视)。本章小结基础变换:“线性变换”为核心,不改变图像形状,通过cv2.warpAffine()(平移、旋转)、cv2.resize()(缩放,需根据场景选插值方法)、cv2.flip()(翻转,按flipCode控制方向)实现,操作简单且适配日常尺寸/位置调整需求;复杂变换:则突破形状限制,仿射变换通过3个非共线点保持平行线,适合轻微倾斜校正,透视变换通过4个角点实现视角转换,适合严重倾斜,如斜拍证件校正。
课后习题一、选择题课后习题1.以下关于cv2.warpAffine()函数的说法,正确的是(
)A.仅支持图像平移,不支持旋转和缩放B.输入的变换矩阵必须是2×3的flo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026秋新教材统编版四年级上册语文 8《古诗三首》 教案
- 长沙市望城县2025届三年级数学上学期阶段教学质量检测模拟试题(含答案解析)
- (2026年)学校办公室工作总结范文
- 闪蒸罐设计计算书
- 物理AI数据筑基模型搭台拔节起势在即
- 南芯转债模拟与嵌入式芯片国内领军企业
- 月相变化测试题及答案
- 历年基础测试题及答案
- 机器学习 课件 第5章 聚类分析
- 丰林县政治试题及答案
- 自身免疫性胃炎诊疗专家共识
- 国开电大2520外国文学专题(试卷号11308)近5年期末真题题库+完整答案解析(2021-2025)
- 2026内蒙古乌海银行客户经理社会招聘15人笔试备考题库及答案详解
- 2026学年广东省中山市二年级数学期末通关高频考点卷详细参考解析详细答案和解析
- 基层医疗健康服务场景化设计
- 丁腈橡胶失效分析案例
- 教育培训机构教师劳动合同
- 2025-国家基层糖尿病防治管理指南
- 2026年顺丰速运快递员面试问题及答案详解
- 第25课《文言文二则:曹冲称象》课件 统编版语文六年级上册
- 呼吸机脱机流程规范
评论
0/150
提交评论