文档章节

Python OpenCV学习笔记之:图像几何变换

IOTService
 IOTService
发布于 2016/12/06 23:40
字数 210
阅读 82
收藏 1
# -*- coding: utf-8 -*-
# 图像几何变换

import cv2
import numpy as np

# 大小变换
img = cv2.imread('../../../datas/images/fish.jpg')
res = cv2.resize(img,None,fx=2, fy=2, interpolation = cv2.INTER_CUBIC)
# 第二种大小变换方法
height, width = img.shape[:2]
res = cv2.resize(img,(2*width, 2*height), interpolation = cv2.INTER_CUBIC)

# 平移变换
gray = cv2.cvtColor(img,cv2.COLOR_RGB2GRAY)
rows,cols = gray.shape
M = np.float32([[1,0,100],[0,1,50]])
dst = cv2.warpAffine(gray,M,(cols,rows))
cv2.imshow("image",dst)

# 旋转
M = cv2.getRotationMatrix2D((cols/2,rows/2),90,1)
dst = dst = cv2.warpAffine(gray,M,(cols,rows))
cv2.imshow("rotate",dst)

# 仿射变换
rows,cols,ch = img.shape
pts1 = np.float32([[50,50],[200,50],[50,200]])
pts2 = np.float32([[10,100],[200,50],[100,250]])

M = cv2.getAffineTransform(pts1,pts2)
dst = cv2.warpAffine(img,M,(cols,rows))
cv2.imshow("image",img)
cv2.imshow("affine transform",dst)

# 透视变换
pts1 = np.float32([[56,65],[368,52],[28,387],[389,390]])
pts2 = np.float32([[0,0],[300,0],[0,300],[300,300]])

M = cv2.getPerspectiveTransform(pts1,pts2)

dst = cv2.warpPerspective(img,M,(300,300))

cv2.imshow("perspective transform",dst)

cv2.waitKey()
cv2.destroyAllWindows()

© 著作权归作者所有

共有 人打赏支持
IOTService
粉丝 16
博文 146
码字总数 32874
作品 0
广州
程序员
1- OpenCV+TensorFlow 入门人工智能图像处理-课程介绍

人工智能最火的两个方向,自然语言处理和计算机视觉 OpenCV的图像处理 TensorFlow的使用 供需关系理论,有需求所以才有提供 招聘网站: 图像算法两万以上 都需要的技能: OpenCV TensorFlow 人...

天涯明月笙
04/04
0
0
(三)OpenCV中的图像处理之改变色彩空间及图像的几何变换

注释:本文翻译自OpenCV3.0.0 document->OpenCV-Python Tutorials,包括对原文档种错误代码的纠正 3.1 改变色彩空间 3.1.1 目标: 这章节,学会如何转换图像的色彩空间,如BGR与Gray之间的转...

u014403318
05/28
0
0
OpenCV中几何形状识别与测量

经常看到有学习OpenCV不久的人提问,如何识别一些简单的几何形状与它们的颜色,其实通过OpenCV的轮廓发现与几何分析相关的函数,只需不到100行的代码就可以很好的实现这些简单几何形状识别与...

gloomyfish
04/16
0
0
python深度学习库pytorch::transforms练习:opencv,scikit-image,PIL图像处理库比较

进行深度学习时,对图像进行预处理的过程是非常重要的,使用pytorch或者TensorFlow时需要对图像进行预处理以及展示来观看处理效果,因此对python中的图像处理框架进行图像的读取和基本变换的...

oldpan
2017/11/24
0
0
基于OpenCV和Python的文件操作——捕获摄像头的帧,在窗口显示图像,在窗口显示摄像头帧和视频文件的读/写

0 写在前面 这篇博客主要参考资料为《OpenCV 3计算机视觉Python语言实现》(Learning OpenCV 3 Computer Vison with Python)。 因为之前用Faster R-CNN做过一个红绿灯检测的小实践,但是Git...

learning_tortosie
04/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

arts-week10

Algorithm 905. Sort Array By Parity - LeetCode Review Who’s Afraid of the Big Bad Preloader? 一文读懂前端缓存 一个网络请求3个步骤:请求,处理,响应,而前端缓存主要在请求处响应这两步...

yysue
51分钟前
0
0
00.编译OpenJDK-8u40的整个过程

前言 历经2天的折腾总算把OpenJDK给编译成功了,要说为啥搞这个,还得从面试说起,最近出去面试经常被问到JVM的相关东西,总感觉自己以前学的太浅薄,所以回来就打算深入学习,目标把《深入理...

凌晨一点
今天
4
0
python: 一些关于元组的碎碎念

初始化元组的时候,尤其是元组里面只有一个元素的时候,会出现一些很蛋疼的情况: def checkContentAndType(obj): print(obj) print(type(obj))if __name__=="__main__": tu...

Oh_really
昨天
6
2
jvm crash分析工具

介绍一款非常好用的jvm crash分析工具,当jvm挂掉时,会产生hs_err_pid.log。里面记录了jvm当时的运行状态以及错误信息,但是内容量比较庞大,不好分析。所以我们要借助工具来帮我们。 Cras...

xpbob
昨天
126
0
Qt编写自定义控件属性设计器

以前做.NET开发中,.NET直接就集成了属性设计器,VS不愧是宇宙第一IDE,你能够想到的都给你封装好了,用起来不要太爽!因为项目需要自从全面转Qt开发已经6年有余,在工业控制领域,有一些应用...

飞扬青云
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部