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")

结果如图:

相关推荐
call_me_wangcheng10 分钟前
django创建项目
python·django
北极无雪20 分钟前
Spring源码学习(拓展篇):SpringMVC中的异常处理
java·开发语言·数据库·学习·spring·servlet
VXbishe27 分钟前
(附源码)基于springboot的“我来找房”微信小程序的设计与实现-计算机毕设 23157
java·python·微信小程序·node.js·c#·php·课程设计
chusheng184029 分钟前
Python 如何使用 multiprocessing 模块创建进程池
python·信息可视化·matplotlib
猿小猴子31 分钟前
Python3 爬虫 中间人爬虫
开发语言·爬虫·python
lly20240639 分钟前
Swift 方法
开发语言
红米煮粥1 小时前
OpenCV-OCR
人工智能·opencv·ocr
YONG823_API1 小时前
电商平台数据批量获取自动抓取的实现方法分享(API)
java·大数据·开发语言·数据库·爬虫·网络爬虫
寂柒1 小时前
C++——模拟实现stack和queue
开发语言·c++·算法·list
子墨7771 小时前
Flask之Hello world 详解
python