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 npgirl=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 npgirl=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 npgirl=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 npgirl=cv2.imread('./2037551.jpg')
M=np.float32([[1,0,100],[0,1,100]])
h,w,ch=girl.shapenew=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 npgirl=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 npgirl=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 npimg=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)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis通用命令

Redis是一种高性能的开源内存数据结构存储&#xff0c;用作数据库、缓存和消息代理。它支持多种数据结构&#xff0c;如字符串&#xff08;strings&#xff09;、哈希&#xff08;hashes&#xff09;、列表&#xff08;lists&#xff09;、集合&#xff08;sets&#xff09;及有…

selenium execute_script常用方法汇总

driver.execute_script() 是 Selenium WebDriver 中非常强大且灵活的功能&#xff0c;可以用来执行任意的 JavaScript 代码在浏览器上下文中。以下是一些常用的 execute_script() 方法的例子和用法&#xff1a; 修改元素的属性和值 python# 修改输入框的值 driver.execute_sc…

ABB 和PLC ProfinN 通信

1,设置IP 地址 2&#xff0c; 设置站名称 3&#xff0c; 修改传送区大小 4,配置DI DO 5,导出 6&#xff0c;安装gsd 文件 7&#xff0c;建立通信

深度学习笔记: 最详尽估算送达时间系统设计

欢迎收藏Star我的Machine Learning Blog:https://github.com/purepisces/Wenqing-Machine_Learning_Blog。如果收藏star, 有问题可以随时与我交流, 谢谢大家&#xff01; 估算送达时间 1. 问题陈述 构建一个模型来估算在给定订单详情、市场条件和交通状况下的总送达时间。 为…

LeetCode | 168.Excel表列名称

这道题一开始以为是简单的进制转换问题&#xff0c;用的以往的思路&#xff0c;对于一般性的进制转换题目&#xff0c;只需要不断地对 columnNumber 进行 % 运算取得最后一位&#xff0c;然后对 columnNumber 进行 / 运算&#xff0c;将已经取得的位数去掉&#xff0c;直到 col…

Web前端编辑器:探索其深度与广度

Web前端编辑器&#xff1a;探索其深度与广度 在数字时代的浪潮中&#xff0c;Web前端编辑器作为开发者手中的得力工具&#xff0c;扮演着至关重要的角色。它们不仅提供了丰富的功能和便捷的界面&#xff0c;还帮助开发者提升了工作效率和创造力。本文将深入探讨Web前端编辑器的…

ZYNQ7 Processing System IP核中PS侧Uart的用法

在ZYNQ7 Processing System IP核中集成的UART控制器是一个中全双工异步接收器和发送器&#xff0c;支持广泛的可编程波特率和I/O信号格式&#xff0c;可以适应自动奇偶校验生成和多主机检测模式。 UART操作由配置和模式寄存器控制。使用状态寄存器、中断状态寄存器和调制解调器…

JVM原理之运行时数据区域

Java运行时数据区(Runtime Data Area)是Java虚拟机(JVM)在运行Java程序时内部维护的一系列数据区域。这些区域共同协作,确保Java程序能够高效、稳定地运行。本文将详细介绍Java运行时数据区的结构和作用。 java虚拟机运行时数据区域 根据《Java虚拟机规范》规定,jvm内存…

数据库的隔离级别

读未提交&#xff1a;指一个事务读取另一个事务未提交的修改。&#xff0c;会发生脏读、不可重复读、幻读。 读提交&#xff1a;指只能读到已经提交的内容。会发生不可重复读和幻读。是SQL Server和Oracle的默认隔离级别。 可重复读&#xff1a;指当数据被读取时&#xff0c;不…

【网安AIGC专题】46篇前沿代码大模型论文、24篇论文阅读笔记汇总

网安AIGC专题 写在最前面一些碎碎念课程简介 0、课程导论1、应用 - 代码生成2、应用 - 漏洞检测3、应用 - 程序修复4、应用 - 生成测试5、应用 - 其他6、模型介绍7、模型增强8、数据集9、模型安全 &#x1f308;你好呀&#xff01;我是 是Yu欸 &#x1f30c; 2024每日百字篆刻…

EasyGBS服务器和终端配置

服务器配置 修改easygbs.ini sip/host为本机IP&#xff0c;否则终端能登录&#xff0c;无法视频。 [sip] host192.168.3.190 终端用于登录的用户名和密码 default_usertest default_passwordtest1234 default_guest_userguest default_guest_passwordtest1234终端配置 关…

【Postman的接口测试工具介绍】

&#x1f308;个人主页: 程序员不想敲代码啊 &#x1f3c6;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f44d;点赞⭐评论⭐收藏 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共…

Excel最基本的常用函数

最基本最常用的函数&#xff0c;掌握了可以解决大部分问题。 (笔记模板由python脚本于2024年06月11日 19:05:56创建&#xff0c;本篇笔记适合熟悉excel的coder翻阅) 【学习的细节是欢悦的历程】 Python 官网&#xff1a;https://www.python.org/ Free&#xff1a;大咖免费“圣…

OpenCV之cv::Scalar

在 OpenCV 中&#xff0c;cv::Scalar 是一个模板类&#xff0c;用于表示多通道的值。常用来表示颜色或其他具有多个分量的数据。在图像处理中&#xff0c;cv::Scalar 经常用于指定颜色。 cv::Scalar(255, 255, 255) 具体如何理解&#xff0c;取决于图像的颜色空间&#xff1a;…

前端开发之HTTP3

上一篇&#x1f449;: 前端开发之HTTP协议 HTTP3 介绍及其与 HTTP2 的区别 特性HTTP/2HTTP/3协议层TCPUDP (基于QUIC)连接复用多路复用 (Stream Multiplexing)多路复用 (Stream and Connection Multiplexing)错误恢复依赖TCP重传内置重传和拥塞控制首部压缩HPACKQPACK安全性可…

原型模式(大话设计模式)C/C++版本

原型模式 C 参考&#xff1a;https://www.cnblogs.com/Galesaur-wcy/p/15924300.html #include <iostream> #include <string> using namespace std;class WorkExprerience { private:string workDate;string company;public:WorkExprerience() {}~WorkExprerie…

14.基于人类反馈的强化学习(RLHF)技术详解

基于人类反馈的强化学习&#xff08;RLHF&#xff09;技术详解 RLHF 技术拆解 RLHF 是一项涉及多个模型和不同训练阶段的复杂概念&#xff0c;我们按三个步骤分解&#xff1a; 预训练一个语言模型 (LM) &#xff1b;训练一个奖励模型 (Reward Model&#xff0c;RM) &#xf…

主题切换之CSS文件篇

动态加载CSS: 利用HTML的标签&#xff0c;可以通过JavaScript动态改变其href属性来加载不同的CSS文件。这意味着我们可以在运行时切换整个页面的样式表&#xff0c;从而实现主题的变化。 分离样式: 将不同主题的样式分别放在不同的CSS文件中。例如&#xff0c;default_styles.…

React小记——如何理解 props 单向数据流?

通俗来讲&#xff0c;就是 props 传递的数据只能由父组件流向子组件&#xff0c;子组件对接收到的 props 数据不可以直接修改 &#xff01; 但是可以由父组件传递 状态 的同时传递 修改状态的方法&#xff0c;然后由子组件调用该方法&#xff0c;达到修改 props 的目的&#xf…

Non-zero exit code pycharm

目录 windows 设置conda代理&#xff1a; linux Conda 使用代理 4. 修改 Conda SSL 验证 pycharm 报错 exceted command pip 设置代理 Non-zero exit code 科学上网后&#xff0c;pip安装时警告报错 WARNING: Retrying (Retry(total0, connectNone, readNone, redirectNo…