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()
相关推荐
xiaohouzi1122332 天前
OpenCV的cv2.VideoCapture如何加GStreamer后端
人工智能·opencv·计算机视觉
小关会打代码2 天前
计算机视觉案例分享之答题卡识别
人工智能·计算机视觉
天天进步20152 天前
用Python打造专业级老照片修复工具:让时光倒流的数字魔法
人工智能·计算机视觉
荼蘼2 天前
答题卡识别改分项目
人工智能·opencv·计算机视觉
2303_Alpha2 天前
SpringBoot
笔记·学习
萘柰奈2 天前
Unity学习----【进阶】TextMeshPro学习(三)--进阶知识点(TMP基础设置,材质球相关,两个辅助工具类)
学习·unity
沐矢羽2 天前
Tomcat PUT方法任意写文件漏洞学习
学习·tomcat
好奇龙猫2 天前
日语学习-日语知识点小记-进阶-JLPT-N1阶段蓝宝书,共120语法(10):91-100语法+考え方13
学习
IT古董2 天前
【第五章:计算机视觉-项目实战之图像分类实战】1.经典卷积神经网络模型Backbone与图像-(4)经典卷积神经网络ResNet的架构讲解
人工智能·计算机视觉·cnn
向阳花开_miemie2 天前
Android音频学习(十八)——混音流程
学习·音视频