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

结果如图:

相关推荐
同学小张16 小时前
【端侧AI 与 C++】1. llama.cpp源码编译与本地运行
开发语言·c++·aigc·llama·agi·ai-native
DanCheng-studio16 小时前
网安毕业设计简单的方向答疑
python·毕业设计·毕设
踢球的打工仔16 小时前
PHP面向对象(7)
android·开发语言·php
轻抚酸~17 小时前
KNN(K近邻算法)-python实现
python·算法·近邻算法
独行soc18 小时前
2025年渗透测试面试题总结-264(题目+回答)
网络·python·安全·web安全·网络安全·渗透测试·安全狮
汤姆yu19 小时前
基于python的外卖配送及数据分析系统
开发语言·python·外卖分析
Yue丶越19 小时前
【C语言】字符函数和字符串函数
c语言·开发语言·算法
如何原谅奋力过但无声19 小时前
TensorFlow 1.x常用函数总结(持续更新)
人工智能·python·tensorflow
翔云 OCR API19 小时前
人脸识别API开发者对接代码示例
开发语言·人工智能·python·计算机视觉·ocr
V***u45319 小时前
MS SQL Server partition by 函数实战二 编排考场人员
java·服务器·开发语言