精易论坛

标题: 图片中文档的四个角点坐标提取,并进行透视变换矫正 [打印本页]

作者: 李商隐2    时间: 2025-6-11 22:55
标题: 图片中文档的四个角点坐标提取,并进行透视变换矫正
提取图片中文档四个角点坐标的需求在很多实际应用中都会出现,以下是一些常见的应用场景:

文档扫描与矫正:当用户通过手机或扫描仪拍摄文档时,照片可能不是完全正面的,可能会有角度倾斜。为了将该图像转换为一个正面视角的图像(即仿射变换或者透视变换),需要知道文档四个角的具体位置。
自动表单处理:在自动化办公环境中,有时需要从图片中识别并提取出特定的表单信息。首先需要定位到表单的位置,然后才能进行进一步的信息提取工作。四个角点坐标的确定可以帮助准确地定位表单区域。
增强现实(AR):在某些增强现实应用中,可能会需要识别物理世界中的特定平面(比如一张纸、一块广告牌等),并在此基础上叠加虚拟对象。确定这些平面的四个角可以帮助更精确地完成这一任务。
图像分析和机器视觉:在工业检测、医疗影像分析等领域,经常需要对特定形状的目标进行精确定位和测量。获取目标物体边缘的坐标有助于后续的尺寸计算、缺陷检测等操作。
证件识别:在一些需要快速录入个人信息的场景下(如银行开户、机场安检等),通过拍照的方式识别身份证、护照等证件上的信息。为了提高识别率,通常需要先对证件的图像进行校正,这就要求能够准确识别证件四角的位置。
总之,无论是为了改善用户体验、提高工作效率还是实现复杂的图像处理任务,准确定位图像中文档的四个角点都是非常关键的一步。
效果如下:

使用到易语言模块,在文章下方链接下载。
易语言源码如下:
  
窗口程序集名保 留  保 留备 注
窗口程序集_启动窗口   
变量名类 型数组备 注
结果角点二维整型4 
变换后角点二维整型4 

子程序名返回值类型公开备 注
__启动窗口_创建完毕  
画板1.底图 = #素材1
子程序名返回值类型公开备 注
_按钮1_被单击  
' 期望透视变换后二维码四个角点的坐标
变换后角点 [1]二维整型 (0, 0)
变换后角点 [2]二维整型 (705, 0)
变换后角点 [3]二维整型 (705, 461)
变换后角点 [4]二维整型 (0, 461)
' 进行透视变换
画板2.底图 = 图像_透视变换 (画板1.底图, 结果角点, 变换后角点)
子程序名返回值类型公开备 注
_按钮2_被单击  
图像_文档角点提取 (画板1.底图, 结果角点)
调试输出 (结果角点 [1].整数1, 结果角点 [1].整数2)
调试输出 (结果角点 [2].整数1, 结果角点 [2].整数2)
调试输出 (结果角点 [3].整数1, 结果角点 [3].整数2)
调试输出 (结果角点 [4].整数1, 结果角点 [4].整数2)
画板1.画椭圆 (结果角点 [1].整数1 - 2, 结果角点 [1].整数2 - 2, 结果角点 [1].整数1 + 2, 结果角点 [1].整数2 + 2)
画板1.画椭圆 (结果角点 [2].整数1 - 2, 结果角点 [2].整数2 - 2, 结果角点 [2].整数1 + 2, 结果角点 [2].整数2 + 2)
画板1.画椭圆 (结果角点 [3].整数1 - 2, 结果角点 [3].整数2 - 2, 结果角点 [3].整数1 + 2, 结果角点 [3].整数2 + 2)
画板1.画椭圆 (结果角点 [4].整数1 - 2, 结果角点 [4].整数2 - 2, 结果角点 [4].整数1 + 2, 结果角点 [4].整数2 + 2)
子程序名返回值类型公开备 注
_按钮3_被单击  
变量名类 型静态数组备 注
切换逻辑型 
如果 (切换)
画板1.底图 = #素材1
切换 = 假
画板1.底图 = #素材2
切换 = 真


i支持库列表   支持库注释   
spec特殊功能支持库

只引用一个模块:长河图像处理模块。
模块和源码都放在网盘了:
链接:https://pan.quark.cn/s/88723db7c3a0



作者: 我的yyy123    时间: 2025-6-12 08:57
怎么一运行就没了,啥提示都没有
作者: 李商隐2    时间: 2025-6-12 12:08
我的yyy123 发表于 2025-6-12 08:57
怎么一运行就没了,啥提示都没有

可能系统缺东西,换个电脑试试
作者: chenlin0808    时间: 2025-6-13 02:34
感谢分享!!!




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4