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

结果如图:

相关推荐
ZC跨境爬虫1 分钟前
LeetCode 13. 罗马数字转整数(多解法详解 + Java Python 实现)
java·python·leetcode
machnerrn15 分钟前
智慧交通系列(一)-十字路口车辆闯红灯检测告警抓拍系统(附含数据+源码+模型)
人工智能·python·深度学习
现代野蛮人16 分钟前
【深度学习实验】—— 利用 RNN 模型进行心脏病预测
pytorch·python·tensorflow·ml
2601_9563198836 分钟前
2026年用示例、拆解和练习提升量化理解效率
人工智能·python
城管不管1 小时前
重生——第十次面试之开源中国一面挂
java·linux·开发语言·算法·面试·职场和发展·开源
王志来137944730081 小时前
从分散到集成:工控服务器机箱采购如何实现“一站式”破局
运维·服务器·人工智能·python
霸道流氓气质1 小时前
Java开发者AI编程常用MCP、Skills、Rules全景汇总
java·开发语言·ai编程
三十岁老牛再出发1 小时前
08.18每日总结
c++·python·numpy·pandas
️学习的小王1 小时前
Anaconda国内镜像配置与conda常用命令
ide·经验分享·python·conda
Zane19942 小时前
daemon 线程说没就没?一文讲透 threading 的适用场景与线程安全
后端·python