C# 基于OpenCv的视觉工作流-章20-仿射变换

C# 基于OpenCv的视觉工作流-章20-仿射变换

本章目标:
一、数学原理;
二、设置变换矩阵;
三、仿射变换;

仿射变换包含了图像的平移、旋转、缩放,原理是通是设置的矩阵与原图像素坐标进行计算,得到新的图像。

一、数学原理;

下图为平移矩阵数学原理,一个点平移到另一个点,即该点坐标值加上或减去平移量,可用线性方程描述平移过程,也可用矩阵描述。

二、设置变换矩阵;

1、平移矩阵

//平移矩阵编写3*3

Mat matM = new Mat(2, 3, MatType.CV_32FC1);

matM.At(0, 0) = 1;

matM.At(0, 1) = 0;

matM.At(0, 2) = xVal; //x坐标平移量

matM.At(1, 0) = 0;

matM.At(1, 1) = 1;

matM.At(1, 2) = yVal; //y坐标平移量

matM.At(2, 0) = 0;

matM.At(2, 1) = 0;

matM.At(2, 2) = 1;

2、旋转矩阵

OpenCv提供了旋转矩阵的获取算子

//旋转矩阵获取

Mat matM = Cv2.GetRotationMatrix2D(new OpenCvSharp.Point(centerX, centerY), angle, scale);

其中:参数centerX、centerY,为旋转的中心点坐标;

参数angle,为旋转角度;

参数scale,为缩放比例;

三、仿射变换;

OpenCv仿射变换可如下使用:

Mat matDst = new Mat();

Cv2.WarpAffine(image, matDst, matM, image.Size());

其中:参数1,为输入图像;

参数2,为输出图像;

参数3,为变换矩阵;

参数4,为输出图像尺寸;

效果如下

参考链接

https://www.bilibili.com/video/BV1RFtpeJE6h?spm_id_from=333.788.videopod.episodes\&vd_source=3f9438f03abb9d3e91fda0640164d626\&p=25

"VisionTool 探迹"免费视觉工具

下载地址:https://pan.baidu.com/s/11tktKOSnepLNIEqNbvnv6w?pwd=qv5i

"VisionTool Halcon"付费视觉工具

下载地址:https://pan.baidu.com/s/1v832KTonDYS6oNnWG2iZtQ?

对应系列文章"C# 基于Halcon的视觉工作流",欢迎前往阅读。

上述内容需要一定的技术功底,本章至此已结束,欢迎阅读下章,谢谢!

相关推荐
Easy_API4 小时前
2.8万亿参数,编程反超GPT-6 Astra:Kimi K3.1 Pro把开源模型推到了哪一步
大数据·人工智能·gpt·深度学习
GlobalInfo4 小时前
2026年机器人多指灵巧手市场分析报告——涵盖行业调查、趋势分析与发展前景
大数据·人工智能·microsoft·微服务·机器人
紧跟先前的步伐4 小时前
Go AI Agent 实战 24|工具系统工程化收尾与阶段验收
人工智能·ai·golang·1024程序员节
释厄6235 小时前
AI学习层更新与跨体转移律——人类社会同构·不缺理解缺 U
人工智能·学习
老金带你玩AI6 小时前
集万家所长,一键复制的Agent.md!
人工智能
ZhuoAIStage6 小时前
舞台工艺多专业审图提速:用 AI 智能体编排 A+B+C+G 四段读图流水线
人工智能·自动化·工作流编排·舞台工艺·审图智能体
小奶包他干奶奶6 小时前
AI学习——1、机器学习概念
人工智能·机器学习
展讯快报6 小时前
悬浮提词器免费App评估报告:说得AI的免费策略与可用性分析
人工智能
Yuzhiyuxia6 小时前
【AI Agent面试系列】AI Agent记忆机制知识点1
人工智能·面试·职场和发展
2601_965448876 小时前
AI视频制作:做系列历史人物视频音色不搭,AI 音色克隆的方法实测
人工智能·音视频