python opencv 放射变换和图像缩放-实现图像平移旋转缩放

python opencv 放射变换和图像缩放-实现图像平移旋转缩放

我们实现这次实验主要用到cv2.resize和cv2.warpAffine

cv2.warpAffine主要是传入一个图像矩阵,一个M矩阵,输出一个dst结果矩阵,计算公式如下:

cv2.resize则主要使用fx,fy按照比例对图像进行缩放:

直接看一下代码:

python 复制代码
import copy
import math
import matplotlib.pyplot as plt
import matplotlib as mpl
import numpy as np
import os

import cv2

plt.rcParams['font.family'] = 'Microsoft YaHei'
def cv_show(name,img):
    cv2.imshow(name,img)
    #cv2.waitKey(0),接收0,表示窗口暂停
    cv2.waitKey(0)
    #销毁所有窗口
    cv2.destroyAllWindows()


path=r'D:\learn\photo\cv\lena.jpg'



img=cv2.imread(path)


im_resize=cv2.resize(img,None,fx=0.5,fy=0.8)

#cv_show('img',img)

#cv_show('im_resize',im_resize)
w,h=img.shape[0:2]
#cv_show('im_resize',im_resize)
#平移


h,w,c = img.shape
M = np.float32([[1,0,10],[0,1,10]])
img_s= cv2.warpAffine(img,M,(w,h))


#旋转
M=cv2.getRotationMatrix2D(
    (w/2,h/2),
    60,0.9
    )

img_r=cv2.warpAffine(img,M,(w,h))


#cv_show('img_r',img_r)

#cv_show('img_s',img_s)

plt.figure(figsize=(400,600))

plt.subplot(221)
plt.imshow(img)
plt.title('原图')

plt.subplot(222)
plt.imshow(im_resize)
plt.title('缩放')
plt.subplot(223)
plt.imshow(img_r)
plt.title('平移')
plt.subplot(224)
plt.imshow(img_s)
plt.title('旋转')
plt.show()
os.system("pause")

结果如图:

相关推荐
网安_秋刀鱼3 分钟前
【java安全】shiro鉴权绕过
java·开发语言·安全
白昼流星!10 分钟前
C++内存四区与new操作符详解
开发语言·c++
tyatyatya11 分钟前
MATLAB三维绘图教程:plot3/mesh/surf/contour函数详解与实例
开发语言·matlab
十五年专注C++开发12 分钟前
标准C++操作文件方法总结
开发语言·c++·文件操作·ifstream
LitchiCheng15 分钟前
Mujoco 使用 Pinocchio 进行逆动力学及阻抗力矩控制维持当前位置
人工智能·python
浔川python社19 分钟前
《C++ 小程序编写系列》(第四部):实战:简易图书管理系统(类与对象篇)
java·开发语言·apache
浔川python社22 分钟前
《C++ 小程序编写系列》(第五部):实战:多角色图书管理系统(继承与多态篇)
开发语言·c++
CC.GG38 分钟前
【Qt】信号和槽
开发语言·数据库·qt
是席木木啊38 分钟前
基于MinIO Java SDK实现ZIP文件上传的方案与实践
java·开发语言
殇者知忧38 分钟前
凯斯西储(CWRU)数据集解读与数据读取
python·凯斯西储(cwru)数据集