当前位置: 首页 > news >正文

OpenCV图像处理——几何变换

目录

  • 图像缩放
  • 图像平移
  • 图像旋转
  • 图像的仿射变换
  • 透射变换
  • 图像金字塔

图像缩放

cv.resize(src,dsize,fx=0,fy=0,interpolation=cv2.INTER_LINEAR)

在这里插入图片描述

import numpy as np
import cv2 as cv
import matplotlib.pyplot as pltkids=cv.imread('./汪学长的随堂资料/4/图像操作/dog.jpg')
plt.imshow(kids[:,:,::-1])

在这里插入图片描述

# 绝对尺寸
rows,cols=kids.shape[:2]
res=cv.resize(kids,(2*cols,2*rows))
plt.imshow(res[:,:,::-1])

在这里插入图片描述

# 相对尺寸
res1=cv.resize(kids,None,fx=0.5,fy=0.5)
plt.imshow(res1[:,:,::-1])

在这里插入图片描述

图像平移

cv.warpAffine(img,M,dsize)

在这里插入图片描述
在这里插入图片描述

M=np.float32([[1,0,100],[0,1,50]])
res2=cv.warpAffine(kids,M,(cols,rows))
plt.imshow(res2[:,:,::-1])

在这里插入图片描述

图像旋转

cv.getRotationMatrix2D(center,angle,scale)

在这里插入图片描述

M=cv.getRotationMatrix2D((cols/2,rows/2),45,1)
res3=cv.warpAffine(kids,M,(cols,rows))
plt.imshow(res3[:,:,::-1])

在这里插入图片描述

图像的仿射变换

点线关系的仿射结果在原图像是一样的,但是线长度,线与线的角度会发生变化
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

# 原始位置
pts1=np.float32([[50,50],[200,50],[50,200]])
# 仿射后的位置
pts2=np.float32([[100,100],[200,50],[100,250]])
M=cv.getAffineTransform(pts1,pts2)
res4=cv.warpAffine(kids,M,(cols,rows))
plt.imshow(res4[:,:,::-1])

在这里插入图片描述

透射变换

视角的变换
在这里插入图片描述

在这里插入图片描述

pst1=np.float32([[56,65],[368,52],[28,387],[389,390]])
pst2=np.float32([[100,145],[300,100],[80,290],[310,300]])
T=cv.getPerspectiveTransform(pst1,pst2)
res5=cv.warpPerspective(kids,T,(cols,rows))
plt.imshow(res5[:,:,::-1])

在这里插入图片描述

图像金字塔

在这里插入图片描述

imgup=cv.pyrUp(kids)
plt.imshow(imgup[:,:,::-1])

在这里插入图片描述

imgdown=cv.pyrDown(kids)
plt.imshow(imgdown[:,:,::-1])

在这里插入图片描述

相关文章:

OpenCV图像处理——几何变换

目录 图像缩放图像平移图像旋转图像的仿射变换透射变换图像金字塔 图像缩放 cv.resize(src,dsize,fx0,fy0,interpolationcv2.INTER_LINEAR)import numpy as np import cv2 as cv import matplotlib.pyplot as pltkidscv.imread(./汪学长的随堂资料/4/图像操作/dog.jpg) plt.im…...

Apache JMeter:完全指南

Apache JMeter 是一款开源的性能测试工具,可以用于测试 Web 应用程序、FTP 服务器、数据库等各种类型的服务器。本文将以 JMeter 5.5 为例介绍 JMeter 的使用方法。 下载和安装 由于 JMeter 是使用 Java 开发的,因此在运行之前必须先安装 JDK。您可以在…...

js obj 生成java 实体 entity

js obj 生成java 实体 entity D:\proj\js\js-util\gen_java.js 文档:js obj 生成java 实体 entity.note 链接:http://note.youdao.com/noteshare?idc61fbd4b8684dc41c8c9ab42107d5f87&subE7484F5F277041578A2E58FDC6320BA6 添加链接描述 class S…...

【第二阶段】kotlin语言的匿名函数与具名函数

fun main() {//匿名函数val niminginfoniming("kotlin",20,{"$it"})println(niminginfo)//具名函数 理解:showResult:(String)->String):StringshowResultImpl(result:String):Stringval juminginfoniming("c ",20,::showResultI…...

P1123 取数游戏

取数游戏 题目描述 一个 N M N\times M NM 的由非负整数构成的数字矩阵,你需要在其中取出若干个数字,使得取出的任意两个数字不相邻(若一个数字在另外一个数字相邻 8 8 8 个格子中的一个即认为这两个数字相邻),求…...

JavaScript高级:原型与原型链继承方式

在 JavaScript 中,继承是一种重要的概念,它使得对象可以从其他对象继承属性和方法,实现代码的重用和扩展。原型与原型链是 JavaScript 中实现继承的核心机制,虽然听起来有些高深,但我们可以通过通俗易懂的方式来理解它…...

使用vue-grid-layout时 You may need an appropriate loader to handle this file type.

使用vue-grid-layout时 You may need an appropriate loader to handle this file type. node版本不匹配 我的node v14.16.0 vue-gride-layout 需要用 v 2.3.7的版本 卸载后重新安装即可...

C# 2048小游戏核心算法

文章目录 01.程序结构划分02.去零03.合并04.上移05.下移/左移/右移&#xff0c;只是取数据的方向不同06.提高可读性 01.程序结构划分 02.去零 有序向量“唯一化”的思路。 /// <summary>/// 去零/// </summary>/// <param name"row">对于一行或一…...

设计模式(5)代理模式

一、介绍&#xff1a; 【Subject/抽象角色】定义了RealSubject和Proxy的共用接口&#xff0c;这样就可以在任何使用RealSubject的地方都可以使用Proxy 【RealSubject/真实角色】定义Proxy所代表的真实实体 【Proxy/代理角色】保存一个引用使得代理可以访问实体&#xff0c;并…...

Django配置(部署环境较乱,暂时启用)

django配置 web服务器中部署项目及WSGI简介 web服务器 WSGI 在IIS中部署django项目 安装 wfastcgi &#xff1a;pip install wfastcgi安装IIS&#xff1a; 以上选择项勾选后确定 将CGI文件复制到项目中&#xff0c; 将项目复制到IIS默认目录中 部署IIS 添加变量信息如下…...

【设计模式】桥接模式

桥接&#xff08;Bridge&#xff09;是用于把抽象化与实现化解耦&#xff0c;使得二者可以独立变化。这种类型的设计模式属于结构型模式&#xff0c;它通过提供抽象化和实现化之间的桥接结构&#xff0c;来实现二者的解耦。 这种模式涉及到一个作为桥接的接口&#xff0c;使得…...

ol问题总结二

一、加载坐标系是4326格式的&#xff0c;使用wfsServer发布的服务&#xff0c;图层加载失败&#xff1b;坐标系是3857格式的。图层加载正常 原因&#xff1a;4326格式的&#xff0c;发布出来的&#xff0c;经纬度是颠倒的 解决方案一&#xff1a;将经纬度进行反转 <templa…...

批量打印-----jsPDF将图片转为pdf,并合并pdf

安装依赖并引入 import jsPDF from jspdf; import { PDFDocument, } from pdf-lib;注意一、 使用jspdf将图片&#xff08;jpg/jpeg/png/bmp&#xff09;转pdf&#xff08;记为pdfA&#xff09;&#xff0c;得到的pdf&#xff08;pdfA&#xff09;和需要合并的pdf(记为pdfB)类…...

【Git】版本控制器详解之git的概念和基本使用

版本控制器git 初始Gitgit的安装git的基本使用初始化本地仓库配置本地仓库三区协作添加---add修改文件--status|diff版本回退--reset撤销修改删除文件 初始Git 为了能够更⽅便我们管理不同版本的⽂件&#xff0c;便有了版本控制器。所谓的版本控制器&#xff0c;就是⼀个可以记…...

C语言 棱形图案

目录 一、问题分析 上部分&#xff1a; 下部分&#xff1a; 二、代码演示 一、问题分析 如上图所示&#xff0c;我们可以将棱形进行拆解&#xff0c;分为上下两个部分。 上部分&#xff1a; 通过观察&#xff0c;我们得到 单边空格数 上半部分总行数 - 行数 - 1 …...

在idea使用GitHub账号、Copilot异常

登录GitHub显示这样的信息&#xff1a; Invalid authentication data.Connection refused: connect Failed to initiate the GitHub login process. Please try again. 修改hosts&#xff08;C:\Windows\System32\drivers\etc\hosts&#xff09;&#xff0c;添加以下参数即可…...

面试热题(反转字符串中的单词)

给你一个字符串 s &#xff0c;请你反转字符串中 单词 的顺序。 单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。 返回 单词 顺序颠倒且 单词 之间用单个空格连接的结果字符串。 注意&#xff1a;输入字符串 s中可能会存在前导空格、尾随空格…...

Stable Diffusion WebUI 从零基础到入门

本文主要介绍Stable Diffusion WebUI的实际操作方法&#xff0c;涵盖prompt推导、lora模型、vae模型和controlNet应用等内容&#xff0c;并给出了可操作的文生图、图生图实战示例。适合对Stable Diffusion感兴趣&#xff0c;但又对Stable Diffusion WebUI使用感到困惑的同学&am…...

【uniapp】一文读懂app端安装包升级

一、前言 首先&#xff0c;在app端开发上线的过程中&#xff0c;会面临一个问题&#xff0c;就是关于app端的版本升级的问题。如果不做相关处理来引导用户的话&#xff0c;那么app就会出现版本没有更新出现的各种问题&#xff0c;我们常见的有在线升级和去指定地址下载安装两种…...

【算法题】2518. 好分区的数目

题目&#xff1a; 给你一个正整数数组 nums 和一个整数 k 。 分区 的定义是&#xff1a;将数组划分成两个有序的 组 &#xff0c;并满足每个元素 恰好 存在于 某一个 组中。如果分区中每个组的元素和都大于等于 k &#xff0c;则认为分区是一个好分区。 返回 不同 的好分区的…...

TDengine 的 AI 应用实战——电力需求预测

作者&#xff1a; derekchen Demo数据集准备 我们使用公开的UTSD数据集里面的电力需求数据&#xff0c;作为预测算法的数据来源&#xff0c;基于历史数据预测未来若干小时的电力需求。数据集的采集频次为30分钟&#xff0c;单位与时间戳未提供。为了方便演示&#xff0c;按…...

精美的软件下载页面HTML源码:现代UI与动画效果的完美结合

精美的软件下载页面HTML源码&#xff1a;现代UI与动画效果的完美结合 在数字化产品推广中&#xff0c;一个设计精良的下载页面不仅能提升品牌专业度&#xff0c;还能显著提高用户转化率。本文介绍的精美软件下载页面HTML源码&#xff0c;通过现代化UI设计与丰富的动画效果&…...

【iOS安全】使用LLDB调试iOS App | LLDB基本架构 | LLDB安装和配置

LLDB基本架构 参考&#xff1a; https://crifan.github.io/ios_re_dynamic_debug/website/debug_code/lldb_debugserver.html https://book.crifan.org/books/ios_re_debug_debugserver_lldb/website/ LLDB安装和配置 1. 让iPhone中出现/Developer/usr/bin/debugserver 最初…...

bert扩充或者缩小词表

在BERT模型中添加自己的词汇&#xff08;pytorch版&#xff09; - 知乎 输入 1. 扩充词表 替换bert词表中的【unused】 2. 缩小词表 因为要使用预训练的模型&#xff0c;词id不能变&#xff0c;词向量矩阵大小不变 要做的是将减少的那一部分词全部对应为unk&#xff0c;即可…...

鸿蒙OSUniApp内存管理优化实战:从入门到精通#三方框架 #Uniapp

UniApp内存管理优化实战&#xff1a;从入门到精通 在开发 UniApp 应用时&#xff0c;特别是针对鸿蒙设备的开发过程中&#xff0c;内存管理往往成为影响应用性能的关键因素。本文将结合实际项目经验&#xff0c;深入探讨 UniApp 应用的内存优化策略&#xff0c;帮助开发者构建…...

Go 语言中的 panic 详解

Go 语言中的 panic 详解 在 Go 语言中&#xff0c;panic 是一种用于处理​​不可恢复错误​​的机制。当程序遇到无法继续执行的严重错误时&#xff0c;会自动或手动触发 panic&#xff0c;终止当前函数的执行&#xff0c;并开始进行​​堆栈展开​​&#xff08;stack unwind…...

苹果应用开发详细教程(2025最新版)

苹果应用开发详细教程(2025最新版) 第一阶段:开发环境搭建 硬件准备 Mac电脑(macOS Monterey 12或更高版本)iPhone/iPad(真机调试建议iOS 16+)软件安装 # 通过App Store安装Xcode xcode-select --installXcode 15+(包含Swift 5.9编译器)安装CocoaPods(依赖管理工具)…...

[mcu]系统频率

系统主频的选择直接影响性能、功耗和成本&#xff0c;不同厂商的芯片会根据应用场景设计不同的运行频率。 低频段80MHZ~160MHz 典型频率&#xff1a; 80MHz、120MHz、160MHz 特点&#xff1a; 低功耗&#xff0c;适合电池供电设备 处理能力有限&#xff0c;通常仅支持 单天线…...

vs中添加三方库的流程

在Visual Studio&#xff08;VS&#xff09;中添加第三方库&#xff08;如OpenCV、PCL等&#xff09;的流程可以分为以下几个步骤&#xff1a;安装库、配置项目、编写代码。以下是详细的步骤说明&#xff1a; 1. 安装第三方库 首先&#xff0c;需要下载并安装所需的第三方库。…...

初识PS(Photoshop)

初识PS&#xff08;Photoshop&#xff09; 1、Photoshop界面 2、常用快捷键...