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

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)

相关文章:

  • React的State和setState
  • Flink——最流批的大数据框架(流批一体)
  • 【Unity学习笔记】第十八 基于物理引擎的日月地系统简单实现
  • java智慧工地系统源码 智慧工地标准之一:环境监测 告别灰头土脸、智慧工地环境监测系统都包括哪些功能?
  • ThinkPHP6图书借阅管理系统
  • 基于uni-app和图鸟UI的智慧农业综合管控平台小程序技术实践
  • vue实现的商品列表网页
  • 第二篇: 掌握Docker的艺术:深入理解镜像、容器和仓库
  • 华为HCIP Datacom H12-821 卷10
  • 2024年华为OD机试真题-万能字符单词拼写-C++-OD统一考试(C卷D卷)
  • Admin
  • 公共网络IP地址不正确?别担心,这里有解决方案
  • 【R语言】地理探测器模拟及分析(Geographical detector)
  • 计算机网络 交换机的VLAN配置
  • 从零到一学FFmpeg:avformat_alloc_output_context2 函数详析与实战
  • 分享一款快速APP功能测试工具
  • CAP理论的例子讲解
  • GitUp, 你不可错过的秀外慧中的git工具
  • javascript 总结(常用工具类的封装)
  • Laravel Mix运行时关于es2015报错解决方案
  • Python爬虫--- 1.3 BS4库的解析器
  • supervisor 永不挂掉的进程 安装以及使用
  • Unix命令
  • windows下使用nginx调试简介
  • 读懂package.json -- 依赖管理
  • 互联网大裁员:Java程序员失工作,焉知不能进ali?
  • 算法---两个栈实现一个队列
  • 验证码识别技术——15分钟带你突破各种复杂不定长验证码
  • ​用户画像从0到100的构建思路
  • #### golang中【堆】的使用及底层 ####
  • (1)(1.11) SiK Radio v2(一)
  • (1)STL算法之遍历容器
  • (13)DroneCAN 适配器节点(一)
  • (22)C#传智:复习,多态虚方法抽象类接口,静态类,String与StringBuilder,集合泛型List与Dictionary,文件类,结构与类的区别
  • (27)4.8 习题课
  • (阿里云在线播放)基于SpringBoot+Vue前后端分离的在线教育平台项目
  • (十六)串口UART
  • (十七)devops持续集成开发——使用jenkins流水线pipeline方式发布一个微服务项目
  • (十一)图像的罗伯特梯度锐化
  • (四)opengl函数加载和错误处理
  • (最全解法)输入一个整数,输出该数二进制表示中1的个数。
  • .bat批处理出现中文乱码的情况
  • .NET下ASPX编程的几个小问题
  • .vue文件怎么使用_我在项目中是这样配置Vue的
  • [51单片机] 简单介绍 (一)
  • [8-23]知识梳理:文件系统、Bash基础特性、目录管理、文件管理、文本查看编辑处理...
  • [AI 大模型] 百度 文心一言
  • [AIR] NativeExtension在IOS下的开发实例 --- IOS项目的创建 (一)
  • [Android]竖直滑动选择器WheelView的实现
  • [C/C++]关于C++11中的std::move和std::forward
  • [C语言][PTA基础C基础题目集] strtok 函数的理解与应用
  • [DAU-FI Net开源 | Dual Attention UNet+特征融合+Sobel和Canny等算子解决语义分割痛点]
  • [Django 0-1] Core.Checks 模块
  • [flask]http请求//获取请求头信息+客户端信息
  • [FreeRTOS 基础知识] 保存现场与恢复现场