opencv-图像基础变换

1,缩放

缩放是对图像的大小进行调整

缩放矩阵,相当于x和y乘一个常数

例如将图像放大两倍

python 复制代码
import cv2
img = cv2.imread('1.jpg')
img = cv2.resize(img, (400,400))
img = cv2.resize(img, (0,0), fx=3, fy=1)#表示x方向扩大三倍,y方向不变

2,平移

对每一个像素点坐标平移,可以让每一个像素点的x,y坐标都加一个变量

3,旋转

图像旋转是指图像按照某一个位置转动一定角度的过程,旋转中图像仍保持原始尺寸。图像旋转后图像的水平对称轴,垂直对称轴及中心坐标原点都可能会发生变换,因此需要对图像旋转中的坐标进行相应变换

如下图,坐标轴旋转θ,(x,y)与原点连线形成的直线相对于原始x轴旋转α,旋转后的x到旋转后的x'轴的垂直距离即为要求的在旋转后坐标系下的横坐标,同理求纵坐标 。最后将(x,y)点的图像数据用原图像(x',y')位置上的数据替换即可

将其均带入即可得到x,y和x',y'的关系式,如下

写成矩阵形式

如果旋转时以旋转中心为原点,旋转结束后还需要将坐标原点移动到图像左上角,也就是还要进行一次变换

变换后的坐标原点在图像中心 。左上角坐标为(left,top)

在opencv中图像旋转首先根据旋转角度和旋转中心获得选抓矩阵,然后根据旋转矩阵进行变换,即可实现任意角度和任意中心的旋转效果

4,错切

图像的错切是一种基于几何变换的图像处理技术,用于对图像进行非垂直投影,从而在水平或垂直方向上引入扭曲效果。错切变换可以通过改变像素点在投影平面上的坐标来实现图像的扭曲。

图像错切变换属于图像的几何变换。图像错切错切变换包括水平方向错切变换和竖直方向错切变换。水平方向错切就相当于有一摞书,保持高度不变的情况下,从上层到下层,整体按照一定的比例(其实就是斜率)向左侧或者右侧移动。而竖直方向则可以看做是水平方向旋转了90°的结果而已。错切示意图如下图所示。由矩形变为平行四边形

另一种表达方式:

沿y轴错切

沿x轴错切

相关推荐
铁手飞鹰1 分钟前
[深度学习]Vision Transformer
人工智能·pytorch·python·深度学习·transformer
Web3VentureView4 分钟前
目标:覆盖全网主流公链,SYNBO 正式开启公链生态媒体合作矩阵计划
大数据·网络·人工智能·区块链·媒体·加密货币
香芋Yu6 分钟前
【深度学习教程——02_优化与正则(Optimization)】09_为什么Dropout能防止过拟合?正则化的本质
人工智能·深度学习
易营宝7 分钟前
Yandex广告投放效果怎么样?B2B外贸品牌实测报告
人工智能·seo
会飞的老朱9 分钟前
专精特新科技企业,如何用数智化打通管理全链路?
人工智能·科技·oa协同办公
AI_56789 分钟前
Git冲突治理白皮书:智能标记与可视化协同的下一代解决方案
大数据·人工智能·git·机器学习
InfiSight智睿视界19 分钟前
当老字号遇上AI:阳坊涮肉的数字化运营转型之路
大数据·人工智能·连锁店智能巡检
张3蜂21 分钟前
OpenClaw 深度解析:从个人 AI 助理到开源智能体平台
人工智能·开源
程序员欣宸22 分钟前
LangChain4j实战之十六:RAG (检索增强生成),Naive RAG
java·人工智能·ai·langchain4j
Dingdangcat8622 分钟前
轮胎缺陷检测与分类系统基于solov2_r101_fpn_ms-3x_coco模型实现_fulltyre专项识别_1
人工智能·分类·数据挖掘