基本操作2

Similarity Transform相似变换

Similarity Transform相似变换:图像形状大小不变,位置发生变化。比如:做平移、旋转。相似变换具有保角性、保比例性,经过相似变换以后原有的角度和比例保持不变。确定一个相似变换矩阵需要2对点(原图像2个点,对应变换后图像2个点)。OpenCV中相似变换的API如下。

import cv2IMG = cv2.imread('lena.jpg', 1)
# 获取旋转矩阵,旋转中心、角度、缩放值
M = cv2.getRotationMatrix2D((IMG.shape[1] / 2, IMG.shape[0] / 2), 30, 0.7)
# 再通过旋转矩阵M求得变换后的图像
IMG_ROTATE = cv2.warpAffine(IMG, M, (IMG.shape[1], IMG.shape[0]))
cv2.imshow('lena', IMG)
cv2.imshow('lena_rotation', IMG_ROTATE)
key = cv2.waitKey()
if key == 27:cv2.destroyAllWindows()pass

Affine Transform仿射变换

Affine Transform仿射变换:图像形状变为平行四边形、旋转的平行四边形。还是在一个平面内的变换。确定一个仿射变换矩阵需要3对点(原图像3个不在同一直线上的点、对应变换后图像3个点)。OpenCV中仿射变换的API如下。

import cv2
import numpy as npIMG = cv2.imread('lena.jpg', 1)
height = IMG.shape[0]
width = IMG.shape[1]
# 变换前图像上3个点pts1和对应的变换后图像上3个点pts2
pts1 = np.float32([[0, 0], [width - 1, 0], [0, height - 1]])
pts2 = np.float32([[width * 0.2, height * 0.1], [width * 0.9, height * 0.2], [width * 0.1, height * 0.9]])
# 获取放射变换矩阵
M = cv2.getAffineTransform(pts1, pts2)
IMG_AFFINE = cv2.warpAffine(IMG, M, (width, height))cv2.imshow('image', IMG)
cv2.imshow('image_affine', IMG_AFFINE)
key = cv2.waitKey()
if key == 27:cv2.destroyAllWindows()pass

Perspective Transform透视变换

Perspective Transform透视变换:在3D条件下的变换,图像变为平行四边形或旋转的平行四边形,但图片与屏幕呈现角度。确定一个透视变换需要4对点。OpenCV中API调用如下。

import cv2
import numpy as npIMG = cv2.imread('lena.jpg', 1)
height = IMG.shape[0]
width = IMG.shape[1]pts1 = np.float32([[0, 0],[0, width - 1],[height - 1, 0],[height - 1, width - 1]])
pts2 = np.float32([[height * 0.1, width * 0.15],[height * 0.2, width * 0.73],[height * 0.78, width * 0.11],[height * 0.82, width * 0.86]])
M = cv2.getPerspectiveTransform(pts1, pts2)
IMG_PERSPECTIVE = cv2.warpPerspective(IMG, M, (height, width))cv2.imshow('image', IMG)
cv2.imshow('image_perspective', IMG_PERSPECTIVE)
key = cv2.waitKey()
if key == 27:cv2.destroyAllWindows()pass

CV00-03-CV基本操作2相关推荐

  1. python opencv cv.applyColorMap()函数(颜色映射)ColormapTypes【将Intel Realsense D435深度图的黑白图映射为彩色图】

    文章目录 API ColormapTypes 完整应用代码[将深度图的黑白图映射为彩色图] map原理 能否map CV_24UC3的? API def applyColorMap(src, colo ...

  2. OpenCV(25)轮廓检测(轮廓提取、属性、近似轮廓、外接矩形和外接圆)

    目录 一.轮廓检测基础理论 1.轮廓概述 2.API介绍 1.cv.findContours函数(查找轮廓) 2.cv.drawContours函数(画出轮廓) 检测轮廓并画出:(用二值图检测轮廓) ...

  3. Datawhale组队学习周报(第038周)

    本周报总结了从 11月01日至11月07日,Datawhale组队学习的运行情况,我们一直秉承"与学习者一起成长的理念",希望这个活动能够让更多的学习者受益. 第 30 期组队学习 ...

  4. Prewitt 边缘检测

    #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include "o ...

  5. 【AI白身境】Linux干活三板斧,shell、vim和git

    文章首发于微信公众号<与有三学AI> [AI白身境]Linux干活三板斧,shell.vim和git 今天是专栏<AI白身境>的第二篇,所谓白身,就是什么都不会,还没有进入角色 ...

  6. Intel Realsense D435 将深度图的灰度图映射为彩色图,打印输出灰度图或彩色图

    # -*- encoding: utf-8 -*- """ @File : test_191123_将深度图打印成黑白图.py @Time : 2019/11/24 15 ...

  7. Intel RealsenseD435 color图与depth图的两种对齐(align)方式

    import pyrealsense2 as rs import cv2 as cv import numpy as nppipeline = rs.pipeline()cfg = rs.config ...

  8. python opencv 4.1.0 cv2.convertScaleAbs()函数 (通过线性变换将数据转换成8位[uint8])(用于Intel Realsense D435显示depth图像)

    文章目录 API文档 代码示例:Intel Realsense图像的两种对齐方式 验证猜想 完整示例代码 API文档 def convertScaleAbs(src, dst=None, alpha= ...

  9. 【Qt】数据库实战之QSqlTableModel模型

    00. 目录 文章目录 00. 目录 01. 概述 02. 开发环境 03. QSqlTableModel基本操作 04. QSqlTableModel修改操作 05. QSqlTableModel查 ...

  10. lightGBM简述

    lightGBM简介 xgboost的出现,让数据民工们告别了传统的机器学习算法:RF.GBM.SVM --..  现在微软推出了一个新的boosting框架,想要挑战xgboost的江湖地位. 顾名 ...

最新文章

  1. 在VMware15中创建虚拟机安装ubuntu系统(超详细教程)
  2. 日期减三个月oracle_Oracle如何对日期时间进行加减操作呢?
  3. LeetCode:Count Primes
  4. js 保留两位小数(四舍五入)
  5. 活动预告丨openGauss西安Meetup来啦!本周五见!
  6. 从Ruby中删除数组中的重复元素
  7. java mp4转码 h264_10分钟学会Jave视频转码avi--gt;mp4(h264编码格式)!_Java_七九推...
  8. 2008 r2 server sql 中文版补丁_sql server 2008 r2 sp4
  9. Windows CMD常用命令大全(值得收藏)
  10. zzulioj1039答案C语言,ZZULIOJ 1037~1045(C语言)
  11. 中国大学MOOC-陈越、何钦铭-数据结构-习题解答-02 线性结构
  12. 魔百盒CM201-2_YS(易视腾代工)_MV300/300H芯片_蓝牙语音版_卡刷通刷_刷机固件
  13. autocad2014 转pdf并保存多页
  14. 鸡和兔放在一起,一共有20个头和56只脚,问鸡和兔各几只?
  15. Layaverse掌舵人谢成鸿在上海静安国际设计节的主题分享
  16. 探讨Linux CPU的上下文切换原由
  17. 好书推荐:《商贸与文明》
  18. Java按回车键继续代码
  19. 操作系统(Operation System,OS)
  20. 图文并茂详尽剖析圆排列问题

热门文章

  1. python处在哪个阶段_python 基础复习
  2. Jrebel 热部署插件的使用和破解
  3. 在线翻译系统属于计算机应用领域中,【单选题】网状物编织物和机件上的滚花部分,可以在轮廓线附件用( )线示意画出...
  4. iOS NSObject对象内存大小
  5. iOS OpenCV 图像灰度处理
  6. 程序员笔记|如何编写优雅的Dockerfile
  7. linux sar 命令详解
  8. Hibernate 异常org.hibernate.LazyInitializationException: could not initialize prox
  9. 广船国际股份有限公司OA项目
  10. POJO、VO、PO、FormBean区别: