开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 333|回复: 1
收起左侧

[图文资料] 4.OpenCV5.0.0正式版发布了,易语言示例—仿射变换与透视变换

[复制链接]
发表于 2026-6-29 23:43:10 | 显示全部楼层 |阅读模式   河北省衡水市
图像的仿射变换与透视变换
  
窗口程序集名保 留  保 留备 注
程序集1   
子程序名返回值类型公开备 注
_启动子程序整数型 本子程序在程序启动后最先执行
变量名类 型静态数组备 注
图像1矩阵型 
整数型 
整数型 
中心X整数型 
中心Y整数型 
旋转矩阵1矩阵型 
旋转图矩阵型 
旋转矩阵2矩阵型 
旋转放大图矩阵型 
源点1点型 
源点2点型 
源点3点型 
目标点1点型 
目标点2点型 
目标点3点型 
平移矩阵矩阵型 
平移图矩阵型 
缩放倍数整数型 
新半宽整数型 
新半高整数型 
缩放矩阵矩阵型 
缩放图矩阵型 
剪切矩阵矩阵型 
剪切图矩阵型 
组合矩阵矩阵型 
组合图矩阵型 
源4_1点型 
源4_2点型 
源4_3点型 
源4_4点型 
目4_1点型 
目4_2点型 
目4_3点型 
目4_4点型 
透视矩阵矩阵型 
透视图矩阵型 
图像1 = cv_图像解码 ( #测试图像, #图像_彩色 )
宽 = 图像1.取宽度 ()
高 = 图像1.取高度 ()
调试输出 (宽, 高)
中心X = 宽 ÷ 2
中心Y = 高 ÷ 2
' ============================================================
' 一、旋转(旋转矩阵 + 仿射变换)
' ============================================================
' 以图像中心为旋转中心,逆时针旋转30度,不缩放
旋转矩阵1 = cv_旋转矩阵 (中心X, 中心Y, 30, 1)
旋转图 = cv_仿射变换 (图像1, 旋转矩阵1, 宽, 高)
' 顺时针旋转45度,同时放大1.5倍
旋转矩阵2 = cv_旋转矩阵 (中心X, 中心Y, -45, 1.5)
旋转放大图 = cv_仿射变换 (图像1, 旋转矩阵2, 宽, 高)
' ============================================================
' 二、平移(三点映射,整体偏移)
' ============================================================
' 源点: 原图左上、右上、左下
' 目标点: 全部向右下平移80像素
源点1.x = 0
源点1.y = 0
源点2.x = 宽
源点2.y = 0
源点3.x = 0
源点3.y = 高
目标点1.x = 80
目标点1.y = 80
目标点2.x = 宽 + 80
目标点2.y = 80
目标点3.x = 80
目标点3.y = 高 + 80
平移矩阵 = cv_取仿射变换矩阵 (源点1, 源点2, 源点3, 目标点1, 目标点2, 目标点3)
平移图 = cv_仿射变换 (图像1, 平移矩阵, 宽, 高)
' ============================================================
' 三、缩放(三点映射,等比放大2倍)
' ============================================================
' 源点: 原图三个角
' 目标点: 从中心向外放大2倍
缩放倍数 = 2
新半宽 = 宽 ÷ 2 × 缩放倍数
新半高 = 高 ÷ 2 × 缩放倍数
目标点1.x = 中心X - 新半宽
目标点1.y = 中心Y - 新半高
目标点2.x = 中心X + 新半宽
目标点2.y = 中心Y - 新半高
目标点3.x = 中心X - 新半宽
目标点3.y = 中心Y + 新半高
缩放矩阵 = cv_取仿射变换矩阵 (源点1, 源点2, 源点3, 目标点1, 目标点2, 目标点3)
缩放图 = cv_仿射变换 (图像1, 缩放矩阵, 宽, 高)
' ============================================================
' 四、剪切(三点映射,X方向剪切)
' ============================================================
' 源点: 原图三个角
' 目标点: 顶部不动,底部向右偏移100像素(平行四边形效果)
目标点1.x = 0
目标点1.y = 0
目标点2.x = 宽
目标点2.y = 0
目标点3.x = 100
目标点3.y = 高
剪切矩阵 = cv_取仿射变换矩阵 (源点1, 源点2, 源点3, 目标点1, 目标点2, 目标点3)
剪切图 = cv_仿射变换 (图像1, 剪切矩阵, 宽, 高)
' ============================================================
' 五、组合变换: 旋转+缩放(用旋转矩阵一步完成)
' ============================================================
' 逆时针旋转15度,放大1.2倍(旋转矩阵自带缩放参数)
组合矩阵 = cv_旋转矩阵 (中心X, 中心Y, 15, 1.2)
组合图 = cv_仿射变换 (图像1, 组合矩阵, 宽, 高)
' ============================================================
' 六、透视变换(四点映射)
' ============================================================
' 模拟从斜视角校正到正视方向
源4_1.x = 宽 ÷ 4
源4_1.y = 0
源4_2.x = 宽 × 3 ÷ 4
源4_2.y = 0
源4_3.x = 宽
源4_3.y = 高
源4_4.x = 0
源4_4.y = 高
目4_1.x = 0
目4_1.y = 0
目4_2.x = 宽
目4_2.y = 0
目4_3.x = 宽
目4_3.y = 高
目4_4.x = 0
目4_4.y = 高
透视矩阵 = cv_取透视变换矩阵 (源4_1, 源4_2, 源4_3, 源4_4, 目4_1, 目4_2, 目4_3, 目4_4)
透视图 = cv_透视变换 (图像1, 透视矩阵, 宽, 高)
' ============================================================
' 显示结果
' ============================================================
cv_图像显示 (“原图”, 图像1)
cv_图像显示 (“旋转30度”, 旋转图)
cv_图像显示 (“旋转45度放大1.5倍”, 旋转放大图)
cv_图像显示 (“平移80像素”, 平移图)
cv_图像显示 (“缩放2倍”, 缩放图)
cv_图像显示 (“X方向剪切”, 剪切图)
cv_图像显示 (“组合(旋转15度+放大1.2倍)”, 组合图)
cv_图像显示 (“透视变换”, 透视图)
cv_等待按键 (0)
返回 (0)  ' 可以根据您的需要返回任意数值



i支持库列表   支持库注释   
OpenCV500(未知支持库)
spec特殊功能支持库

4.初级例程_仿射变换与透视变换.e (125 KB, 下载次数: 1)
QQ20260629-233924.png

签到天数: 15 天

发表于 2026-6-30 09:43:49 | 显示全部楼层   河北省石家庄市
感谢分享
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备2025452707号) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表