open cv学习 (四)图像的几何变换

图像的几何变换

demo1
python 复制代码
# dsize实现缩放
import cv2
img = cv2.imread("./cat.jpg")
dst1 = cv2.resize(img, (100, 100))
dst2 = cv2.resize(img, (400, 400))
# cv2.imshow("img", img)
# cv2.imshow("dst1", dst1)
# cv2.imshow("dst2", dst2)
cv2.imwrite("./cat01.png", dst1)
cv2.waitKey()
cv2.destroyAllWindows()
demo2
python 复制代码
# fx 和 fy 参数实现缩放
import cv2
img = cv2.imread("./cat.jpg")
dst3 = cv2.resize(img, None, fx=1/3, fy=1/2)
dst4 = cv2.resize(img, None, fx=2, fy=2)
cv2.imshow("img", img)
cv2.imshow("dst3", dst3)
cv2.imshow("dst4", dst4)
cv2.waitKey()
cv2.destroyAllWindows()
demo3
python 复制代码
# 翻转
import cv2
img = cv2.imread("./cat01.png")
dst1 = cv2.flip(img, 0)
dst2 = cv2.flip(img, 1)
dst3 = cv2.flip(img, -1)
cv2.imshow("dst1", dst1)
cv2.imshow("dst2", dst2)
cv2.imshow("dst3", dst3)
cv2.waitKey()
cv2.destroyAllWindows()
demo4
python 复制代码
# 图像平移
import cv2
import numpy as np
img = cv2.imread("./cat01.png")
# 读取像素行数
rows = len(img)
# 读取像素列数
cols = len(img[0])

M = np.float32([[1, 0, 0], [0, 1, -50]])
dst = cv2.warpAffine(img, M, (cols, rows))
cv2.imshow("img", img)
cv2.imshow("dst", dst)
cv2.waitKey()
cv2.destroyAllWindows()
demo5
复制代码
import cv2
img = cv2.imread("./cat01.png")
# 读取像素行数
rows = len(img)
# 读取像素列数
cols = len(img[0])

center = (rows/2, cols/2)
M = cv2.getRotationMatrix2D(center, 30, 0.8)
dst = cv2.warpAffine(img, M, (cols, rows))
cv2.imshow("img", img)
cv2.imshow("dst", dst)
cv2.waitKey()
cv2.destroyAllWindows()
demo6
python 复制代码
import cv2
import numpy as np
img = cv2.imread("./cat01.png")
# 读取像素行数
rows = len(img)
# 读取像素列数
cols = len(img[0])
p1 = np.zeros((3, 2), np.float32)
# 左上角坐标
p1[0] = [0, 0]
# 右上角坐标
p1[1] = [cols - 1, 0]
# 左下角坐标
p1[2] = [0, rows - 1]

p2 = np.zeros((3, 2), np.float32)
p2[0] = [50, 0]
p2[1] = [cols - 1, 0]
p2[2] = [0, rows - 1]
M = cv2.getAffineTransform(p1, p2)
dst = cv2.warpAffine(img, M, (cols, rows))
cv2.imshow("img", img)
cv2.imshow("dst", dst)
cv2.waitKey()
cv2.destroyAllWindows()
demo7
python 复制代码
import cv2
import numpy as np
img = cv2.imread("./cat01.png")

rows = len(img)
cols = len(img[0])

p1 = np.zeros((4, 2), np.float32)
p1[0] = [0, 0]
p1[1] = [cols - 1, 0]
p1[2] = [0, rows - 1]
p1[3] = [cols - 1, rows - 1]
p2 = np.zeros((4, 2), np.float32)
M = cv2.getPerspectiveTransform(p1, p2)
dst = cv2.warpPerspective(img, M, (cols, rows))
cv2.imshow("img", img)
cv2.imshow("dst", dst)
cv2.waitKey()
cv2.destroyAllWindows()
相关推荐
麦麦在写代码9 分钟前
前端学习4
前端·学习
千里飞刀客1 小时前
aruco位姿检测
人工智能·opencv·计算机视觉
ITC小浪花、2 小时前
WGL波形生成语言—新手入门学习(例子篇1)
学习·wgl
XINVRY-FPGA2 小时前
XCVU9P-2FLGC2104I Xilinx AMD Virtex UltraScale+ FPGA
嵌入式硬件·机器学习·计算机视觉·fpga开发·硬件工程·dsp开发·fpga
不羁的木木2 小时前
【开源鸿蒙跨平台开发学习笔记】Day03:React Native 开发 HarmonyOS-GitCode口袋工具开发-1
笔记·学习·harmonyos
wuk9983 小时前
MATLAB双树复小波变换(DTCWT)工具包详解
人工智能·计算机视觉·matlab
im_AMBER5 小时前
AI井字棋项目开发笔记
前端·笔记·学习·算法
zxguan6 小时前
Springboot 学习 之 下载接口 HttpMessageNotWritableException
spring boot·后端·学习
IT阳晨。7 小时前
【神经网络与深度学习(吴恩达)】神经网络基础学习笔记
深度学习·神经网络·学习
CoovallyAIHub8 小时前
只改一个后缀,环境冲突全消失?这个“.onnx”魔法文件做到了
深度学习·算法·计算机视觉