OpenCV图像变换

一 图像的缩放

resize(src,dst,dsize,fx,fy,interpolation)
fx:x轴的缩放因子
fy:y轴的缩放因子
interpolation 插值算法

INTER_NEAREST,临近插值,速度快,效果差
INTER_LINEAR,双线性插值,原图中的4个点
INTER_CUBIC 三次插值,原图中的16个点
INTER_AREA 效果最好

import cv2
import numpy as np

girl=cv2.imread('./2037548.jpg')

new=cv2.resize(girl,(800,600))

cv2.imshow('scale',new)

cv2.waitKey(0)

二 图像翻转

flip(img,flipCode)
flipCode==0 上下
flipCode>0 左右
flipCode<0 上下+左右
import cv2
import numpy as np

girl=cv2.imread('./2037551.jpg')

new=cv2.flip(girl,0)

cv2.imshow('girl',new)

cv2.waitKey(0)

三 图像旋转

rotate(img,rotateCode)
ROTATE_90_CLOCKWISE)
ROTATE_180
ROTATE_90_COUNTERCLOCKWISE
import cv2
import numpy as np

girl=cv2.imread('./2037551.jpg')

new =cv2.rotate(girl,cv2.ROTATE_90_CLOCKWISE)

cv2.imshow('girl',new)

cv2.waitKey(0)

四 仿射变换之图像平移

仿射变换是图像旋转、缩放、平移的总称。

1 仿射API

warpAffine(src,M,dsie,flags,mode,value)
M:变换矩阵
dsize输出尺寸大小
flag:与resize中插值算法一致
Mode:边界外推法标志
value:填充边界的值

2 平移矩阵

矩阵中的每个像素由(x,y)组成。
因此,其变换矩阵是2X2的矩阵。
平移向量为2x1的向量,所在平移矩阵为2x3矩阵。

import cv2
import numpy as np

girl=cv2.imread('./2037551.jpg')
M=np.float32([[1,0,100],[0,1,100]])
h,w,ch=girl.shape

new=cv2.warpAffine(girl,M,(w,h))

cv2.imshow('girl',girl)
cv2.imshow('newgirl',new)
cv2.waitKey(0)

五 仿射变换之获取变换矩阵

getRotationMatrix2D(center,angle,scale)
center中心点
angle角度
scale缩放比例
import cv2
import numpy as np

girl=cv2.imread('./2037551.jpg')
h,w,ch=girl.shape
# 旋转的角度为逆时针
# 中心点(x,y)
M=cv2.getRotationMatrix2D((w/2,h/2),15,1.0)
# 如果想改变新图形的尺寸,需要修改dsize
new=cv2.warpAffine(girl,M,(int(w/2),int(h/2)))

cv2.imshow('girl',girl)
cv2.imshow('new',new)
cv2.waitKey(0)

六 仿射变化之变换矩阵之二

变换矩阵(二)
在这里插入图片描述

getAffineTransform(src[],dst[])
通过三个点可以确定变换的位置
import cv2
import numpy as np

girl=cv2.imread('./2037551.jpg')
h,w,ch=girl.shape
src=np.float32([[400,300],[800,300],[400,1000]])
dst=np.float32([[200,400],[600,500],[150,1100]])
M=cv2.getAffineTransform(src,dst)

new=cv2.warpAffine(girl,M,(w,h))

cv2.imshow('girl',girl)
cv2.imshow('new',new)
cv2.waitKey(0)

七 OpenCV透视变换

透视变换API

warpPerspective(img,M,dsize,..)
M是边变换矩阵
dsize是目标图像大小
getPersectiveTransform(src,dst)
四个点(图形的四个角)
import cv2
import numpy as np

img=cv2.imread('./2037551.jpg')
src=np.float32([[100,1100],[2100,1100],[0,400],[2500,2900]])
dst=np.float32([[0,0],[2300,0],[0,3000],[2300,3000]])
M=cv2.getPerspectiveTransform(src,dst)
cv2.warpPerspective(img,M,(2300,3000))

new=cv2.warpPerspective(img,M,(2300,3000))

cv2.imshow('orgin',img)
cv2.imshow('new',new)
cv2.waitKey(0)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/707595.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【原创】springboot+mysql社区住户综合管理系统设计与实现

个人主页&#xff1a;程序猿小小杨 个人简介&#xff1a;从事开发多年&#xff0c;Java、Php、Python、前端开发均有涉猎 博客内容&#xff1a;Java项目实战、项目演示、技术分享 文末有作者名片&#xff0c;希望和大家一起共同进步&#xff0c;你只管努力&#xff0c;剩下的交…

Java接口实现与类继承

学习初期发现接口实现与类继承很像&#xff0c;随着学习深入发现它们之间的联系与区别&#xff0c;整理如下&#xff1a; 经实验发现&#xff0c;实现接口的类中含有接口中的所有属性和方法&#xff0c;继承父类的子类中也含有父类中所有的属性和方法&#xff0c;可以说接口实…

【SpringBoot + Vue 尚庭公寓实战】公寓杂费接口实现(八)

【SpringBoot Vue 尚庭公寓实战】公寓杂费接口实现&#xff08;八&#xff09; 文章目录 【SpringBoot Vue 尚庭公寓实战】公寓杂费接口实现&#xff08;八&#xff09;1、公寓杂费业务介绍2、公寓杂费逻辑模型介绍3、接口实现3.1、保存或更新杂费值3.2、保存或更新杂费名称3…

Python学习之旅:你的大学计算机专业宝藏路线图

在信息时代的浪潮中&#xff0c;Python以其强大的功能和极简的语法成为了无数程序员心中的白月光。作为大学计算机专业的学生&#xff0c;掌握Python不仅能够为未来的职业生涯铺路&#xff0c;更能让您在学术研究和实际应用中如鱼得水。今天&#xff0c;我将与大家分享一套实用…

南京观海微电子-----PCB设计怎样降低EMI

开关模式电源是AC-DC或DC-DC电源的通用术语&#xff0c;这些电源使用具有快速开关动作的电路进行电压转换/转换(降压或升压)。随着每天开发出更多的设备(潜在的EMI受害者)&#xff0c;克服EMI成为工程师面临的主要挑战&#xff0c;并且实现电磁兼容性(EMC)与使设备正常运行同等…

使用高级SQL向量查询增强您的 RAG 应用程序

通过使用 MyScale 和 LangChain 创建 AI 助手来克服 RAG 的限制&#xff0c;以提高数据检索过程的准确性和效率。 让我们讨论一下如何使用 [MyScale]创建 AI 助手来克服这些 RAG 限制&#xff0c;从而提高数据检索过程的准确性和效率。我们将抓取 Hacker News 的最新故事&#…

鸿蒙轻内核A核源码分析系列七 进程管理 (2)

本文先熟悉下进程管理的文件kernel\base\core\los_process.c中的内部接口&#xff0c;读读代码&#xff0c;做些记录。 1、LiteOS-A内核进程全局变量 ⑴是进程池&#xff0c;存放各个进程控制块LosProcessCB的信息。⑵处开始的g_freeProcess是空闲进程链表&#xff0c;挂载各…

DevExpress WPF中文教程:Grid - 如何完成列和编辑器配置(设计时)?

DevExpress WPF拥有120个控件和库&#xff0c;将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序&#xff0c;这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 无论是Office办公软件…

【GreenHills】如何使用GHS对于不同的文件进行文档内容对比

【更多软件使用问题请点击亿道电子官方网站】 1、 文档目标 利用GHS对于不同的文件进行对比。 2、 问题场景 在项目开发过程中&#xff0c;会对于工程进行版本管理&#xff0c;对于没有项目管理工具的客户&#xff0c;想要对于当前版本的源文件和上一版或其他版本的源文件进行…

RT-DETR那么火,如何使用它、如何改进它?热滚滚的使用攻略出炉了

前言 RT-DETR是百度出品的新一代检测器&#xff0c;属于DETR系列&#xff0c;即基于Transformer的目标检测框架。官方代码是基于Paddle平台的&#xff0c;当然也有Pytorch版本的&#xff0c;对于习惯使用Pytorch平台和YOLO风格的研究人员而言&#xff0c;调试和改进RT-DETR是比…

【SQL边干边学系列】08高级问题-4

文章目录 前言回顾高级问题48.客户分组49.客户分组-修复null50.使用百分比的客户分组51.灵活的客户分组 答案48.客户分组49.客户分组-修复null50.使用百分比的客户分组51.灵活的客户分组 未完待续 前言 该系列教程&#xff0c;将会从实际问题出发&#xff0c;边干边学&#xff…

c++异常处理-漏洞利用

文章目录 参考异常处理顺序eh_frame段的作用编译过程中的.eh_frame生成运行时异常处理 堆栈展开简单劫持rbpret chop1. 异常发生时的堆栈保存2. 查找.eh_frame信息3. 解析FDE并恢复CFA4. 恢复寄存器5. 堆栈展开6. 转向异常处理逻辑 先忙awd了以后补 参考 https://xz.aliyun.co…

LeetCode刷题之HOT100之二叉树的遍历

2024/6/14 这几天总是下雨&#xff0c;天气预报上面显示这个月都要持续下雨&#xff0c;下雨天了怎么办&#xff1f;我好想你&#xff0c;不敢打给你&#xff0c;我找不到原因。说着说着唱起来了哈哈&#xff01;Anyway&#xff0c;昨天晚上打开了《涅朵奇卡一个女人的一生》&a…

Vue3:解决在main.ts 中调用自定义的js文件会报错的问题

案例&#xff1a;Vue3 &#xff0c;使用的是main.ts &#xff0c;在main.ts 中调用自定义的ruoComment.js文件会报错&#xff0c; 页面报错&#xff1a; main.ts文件引用报错&#xff1a; 解决报错&#xff1a;找到tsconfig.json文件 加上如下代码&#xff1a;即可解决问题 &q…

IDC最新报告,7大维度11家大模型厂商比拼,唯一全优是谁?

如果考试题太简单&#xff0c;学渣也能拿一百昏。在 AI 圈&#xff0c;我们应该拿怎样的「试卷」来检验一直处于流量 C 位的大模型的真实水平&#xff1f;是高考题吗&#xff1f;当然不是&#xff01; 也有些人认为&#xff0c;在各种 Benchmark 榜单上&#xff0c;谁排第一谁…

ai 人工智能免费网站免费生成图片生成ppt

豆包 Kimi.ai - 帮你看更大的世界 生成ppt 讯飞智文 - AI在线生成PPT、Word 大家如有其它免费的欢迎推荐!!!

动力学仿真平台:让模型配置与仿真测试更高效!

背景概述 动力学仿真平台是一种基于计算机技术的模拟工具&#xff0c;旨在模拟和分析物理系统中的动力学行为。通过建立数学模型&#xff0c;并借助高效的数值计算方法来模拟复杂系统的运动规律&#xff0c;为科研、设计、工程等领域提供重要的决策支持。动力学仿真平台的重要性…

图像算法之镜头畸变

桶形畸变&#xff08;Barrel Distortion&#xff09;&#xff1a; 桶形畸变是一种常见于广角镜头的畸变类型。在桶形畸变中&#xff0c;图像的中心区域被向外拉伸&#xff0c;使得直线在图像边缘部分显得向内弯曲&#xff0c;看起来像一个桶。这种畸变之所以发生&#xff0c;是…

Linux操作系统学习路线

本文来自Qwen2大模型&#xff1a; Linux操作系统的全面学习是一个渐进的过程&#xff0c;涵盖从基础知识到高级特性的多个阶段。以下是一份详细的Linux操作系统学习路线图&#xff0c;包括各个阶段的学习目标、建议的学习资源和实践步骤。 1. Linux 基础知识与安装 学习目标&a…

CD工具awx之清单Inventory,管理应用与主机的多对多关系

一、什么是清单 它决定的是一个应用部署到哪些目标机&#xff0c;清单管理的是应用&#xff08;组&#xff09;关联了哪些主机&#xff08;目标机&#xff09;。 1、新建清单 2、新建组 3、关联主机 新增主机或关联已有的主机 新主机 现有主机 服务关联主机完成&#xf…