import numpy as npimport c<a href="https://www.knrjk.com/tag/1479" target="_blank">v</a>2 as cvimport matplotlib.pyplot as plt# 1.读取图片print("欢迎来到图像<a href="https://www.knrjk.com/tag/4449" target="_blank">放大</a>、缩小、平移、旋转、仿射、透视小程序!")pic_url = input("请输入你的图片所在文件路径(比如:./image/你的图片名.jpg):") # 个人的小创新,支持用户输入图片路径img1 = cv.imread(pic_url)print("图片导入成功!请留意弹窗转换结果!")# 2.图像缩放# 21绝对尺寸rows, cols = img1.shape[:2]res = cv.resize(img1, (2 * cols, 2 * rows), interpolation=cv.INTER_CUBIC)# 2.2相对尺寸res1 = cv.resize(img1, None, fx=0.5, fy=0.5)# 3图像显示# 3.1 使用 opencv 显示图像(不推荐)cv.imshow("orignal", img1)cv.imshow("enlarge", res)cv.imshow("shrink)", res1)cv.waitKey(0)# 3.2 使用matplotlib 显示图像plt.rc("font", family='Microsoft YaHei')fig, axes = plt.subplots(nrows=1, ncols=3, figsize=(10, 8), dpi=100)axes[0].imshow(res[:, :, ::-1])axes[0].set_title("绝对尺度 (放大)")axes[1].imshow(img1[:, :, ::-1])axes[1].set_title("原图")axes[2].imshow(res1[:, :, ::-1])axes[2].set_title("相对尺度 (缩小)")plt.show()# 1.读取图像img1 = cv.imread(pic_url)# 2.图像平移rows, cols = img1.shape[:2]M = M = np.float32([[1, 0, 100], [0, 1, 50]]) # 平移矩阵dst = cv.warpAffine(img1, M, (cols, rows))# 3.图像显示fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(10, 8), dpi=100)axes[0].imshow(img1[:, :, ::-1])axes[0].set_title("原图")axes[1].imshow(dst[:, :, ::-1])axes[1].set_title("平移后结果")plt.show()# 1读取图像img = cv.imread(pic_url)# 2图像旋转rows, cols = img.shape[:2]# 2.1生成旋转矩阵M = cv.getRotationMatrix2D((cols / 2, rows / 2), 90, 1)# 2.2进行旋转变换dst = cv.warpAffine(img, M, (cols, rows))# 3图像展示plt.rc("font", family='Microsoft YaHei')fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(10, 8), dpi=100)axes[0].imshow(img[:, :, ::-1])axes[0].set_title("原图")axes[1].imshow(dst[:, :, ::-1])axes[1].set_title("旋转后结果")plt.show()# 1图像读取img = cv.imread(pic_url)# 2仿射变换rows, cols = img.shape[:2]# 2.1创建变换矩阵pts1 = np.float32([[50, 50], [200, 50], [50, 200]])pts2 = np.float32([[100, 100], [200, 50], [100, 250]])M = cv.getAffineTransform(pts1, pts2)# 2.2完成仿射变换dst = cv.warpAffine(img, M, (cols, rows))# 3图像显示fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(10, 8), dpi=100)axes[0].imshow(img[:, :, ::-1])axes[0].set_title("原图")axes[1].imshow(dst[:, :, ::-1])axes[1].set_title("仿射后结果")plt.show()# 1读取图像img = cv.imread(pic_url)# 2透射变换rows, cols = img.shape[:2]# 2.1创建变换矩阵pts1 = np.float32([[56, 65], [368, 52], [28, 387], [389, 390]])pts2 = np.float32([[100, 145], [300, 100], [80, 290], [310, 300]])T = cv.getPerspectiveTransform(pts1, pts2)# 2.2进行变换dst = cv.warpPerspective(img, T, (cols, rows))# 3图像显示fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(10, 8), dpi=100)axes[0].imshow(img[:, :, ::-1])axes[0].set_title("原图")axes[1].imshow(dst[:, :, ::-1])axes[1].set_title("透射后结果")plt.show()# 1图像读取img = cv.imread(pic_url)# 2进行图像采样up_img = cv.pyrUp(img) # 上采样操作img_1 = cv.pyrDown(img) # 下采样操作# 3图像显示cv.imshow('enlarge', up_img)cv.imshow('original', img)cv.imshow('shrink', img_1)cv.waitKey(0)cv.destroyAllWindows()import numpy as np import c<a href="https://www.knrjk.com/tag/1479" target="_blank">v</a>2 as cv import matplotlib.pyplot as plt # 1.读取图片 print("欢迎来到图像<a href="https://www.knrjk.com/tag/4449" target="_blank">放大</a>、缩小、平移、旋转、仿射、透视小程序!") pic_url = input("请输入你的图片所在文件路径(比如:./image/你的图片名.jpg):") # 个人的小创新,支持用户输入图片路径 img1 = cv.imread(pic_url) print("图片导入成功!请留意弹窗转换结果!") # 2.图像缩放 # 21绝对尺寸 rows, cols = img1.shape[:2] res = cv.resize(img1, (2 * cols, 2 * rows), interpolation=cv.INTER_CUBIC) # 2.2相对尺寸 res1 = cv.resize(img1, None, fx=0.5, fy=0.5) # 3图像显示 # 3.1 使用 opencv 显示图像(不推荐) cv.imshow("orignal", img1) cv.imshow("enlarge", res) cv.imshow("shrink)", res1) cv.waitKey(0) # 3.2 使用matplotlib 显示图像 plt.rc("font", family='Microsoft YaHei') fig, axes = plt.subplots(nrows=1, ncols=3, figsize=(10, 8), dpi=100) axes[0].imshow(res[:, :, ::-1]) axes[0].set_title("绝对尺度 (放大)") axes[1].imshow(img1[:, :, ::-1]) axes[1].set_title("原图") axes[2].imshow(res1[:, :, ::-1]) axes[2].set_title("相对尺度 (缩小)") plt.show() # 1.读取图像 img1 = cv.imread(pic_url) # 2.图像平移 rows, cols = img1.shape[:2] M = M = np.float32([[1, 0, 100], [0, 1, 50]]) # 平移矩阵 dst = cv.warpAffine(img1, M, (cols, rows)) # 3.图像显示 fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(10, 8), dpi=100) axes[0].imshow(img1[:, :, ::-1]) axes[0].set_title("原图") axes[1].imshow(dst[:, :, ::-1]) axes[1].set_title("平移后结果") plt.show() # 1读取图像 img = cv.imread(pic_url) # 2图像旋转 rows, cols = img.shape[:2] # 2.1生成旋转矩阵 M = cv.getRotationMatrix2D((cols / 2, rows / 2), 90, 1) # 2.2进行旋转变换 dst = cv.warpAffine(img, M, (cols, rows)) # 3图像展示 plt.rc("font", family='Microsoft YaHei') fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(10, 8), dpi=100) axes[0].imshow(img[:, :, ::-1]) axes[0].set_title("原图") axes[1].imshow(dst[:, :, ::-1]) axes[1].set_title("旋转后结果") plt.show() # 1图像读取 img = cv.imread(pic_url) # 2仿射变换 rows, cols = img.shape[:2] # 2.1创建变换矩阵 pts1 = np.float32([[50, 50], [200, 50], [50, 200]]) pts2 = np.float32([[100, 100], [200, 50], [100, 250]]) M = cv.getAffineTransform(pts1, pts2) # 2.2完成仿射变换 dst = cv.warpAffine(img, M, (cols, rows)) # 3图像显示 fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(10, 8), dpi=100) axes[0].imshow(img[:, :, ::-1]) axes[0].set_title("原图") axes[1].imshow(dst[:, :, ::-1]) axes[1].set_title("仿射后结果") plt.show() # 1读取图像 img = cv.imread(pic_url) # 2透射变换 rows, cols = img.shape[:2] # 2.1创建变换矩阵 pts1 = np.float32([[56, 65], [368, 52], [28, 387], [389, 390]]) pts2 = np.float32([[100, 145], [300, 100], [80, 290], [310, 300]]) T = cv.getPerspectiveTransform(pts1, pts2) # 2.2进行变换 dst = cv.warpPerspective(img, T, (cols, rows)) # 3图像显示 fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(10, 8), dpi=100) axes[0].imshow(img[:, :, ::-1]) axes[0].set_title("原图") axes[1].imshow(dst[:, :, ::-1]) axes[1].set_title("透射后结果") plt.show() # 1图像读取 img = cv.imread(pic_url) # 2进行图像采样 up_img = cv.pyrUp(img) # 上采样操作 img_1 = cv.pyrDown(img) # 下采样操作 # 3图像显示 cv.imshow('enlarge', up_img) cv.imshow('original', img) cv.imshow('shrink', img_1) cv.waitKey(0) cv.destroyAllWindows()import numpy as np import cv2 as cv import matplotlib.pyplot as plt # 1.读取图片 print("欢迎来到图像放大、缩小、平移、旋转、仿射、透视小程序!") pic_url = input("请输入你的图片所在文件路径(比如:./image/你的图片名.jpg):") # 个人的小创新,支持用户输入图片路径 img1 = cv.imread(pic_url) print("图片导入成功!请留意弹窗转换结果!") # 2.图像缩放 # 21绝对尺寸 rows, cols = img1.shape[:2] res = cv.resize(img1, (2 * cols, 2 * rows), interpolation=cv.INTER_CUBIC) # 2.2相对尺寸 res1 = cv.resize(img1, None, fx=0.5, fy=0.5) # 3图像显示 # 3.1 使用 opencv 显示图像(不推荐) cv.imshow("orignal", img1) cv.imshow("enlarge", res) cv.imshow("shrink)", res1) cv.waitKey(0) # 3.2 使用matplotlib 显示图像 plt.rc("font", family='Microsoft YaHei') fig, axes = plt.subplots(nrows=1, ncols=3, figsize=(10, 8), dpi=100) axes[0].imshow(res[:, :, ::-1]) axes[0].set_title("绝对尺度 (放大)") axes[1].imshow(img1[:, :, ::-1]) axes[1].set_title("原图") axes[2].imshow(res1[:, :, ::-1]) axes[2].set_title("相对尺度 (缩小)") plt.show() # 1.读取图像 img1 = cv.imread(pic_url) # 2.图像平移 rows, cols = img1.shape[:2] M = M = np.float32([[1, 0, 100], [0, 1, 50]]) # 平移矩阵 dst = cv.warpAffine(img1, M, (cols, rows)) # 3.图像显示 fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(10, 8), dpi=100) axes[0].imshow(img1[:, :, ::-1]) axes[0].set_title("原图") axes[1].imshow(dst[:, :, ::-1]) axes[1].set_title("平移后结果") plt.show() # 1读取图像 img = cv.imread(pic_url) # 2图像旋转 rows, cols = img.shape[:2] # 2.1生成旋转矩阵 M = cv.getRotationMatrix2D((cols / 2, rows / 2), 90, 1) # 2.2进行旋转变换 dst = cv.warpAffine(img, M, (cols, rows)) # 3图像展示 plt.rc("font", family='Microsoft YaHei') fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(10, 8), dpi=100) axes[0].imshow(img[:, :, ::-1]) axes[0].set_title("原图") axes[1].imshow(dst[:, :, ::-1]) axes[1].set_title("旋转后结果") plt.show() # 1图像读取 img = cv.imread(pic_url) # 2仿射变换 rows, cols = img.shape[:2] # 2.1创建变换矩阵 pts1 = np.float32([[50, 50], [200, 50], [50, 200]]) pts2 = np.float32([[100, 100], [200, 50], [100, 250]]) M = cv.getAffineTransform(pts1, pts2) # 2.2完成仿射变换 dst = cv.warpAffine(img, M, (cols, rows)) # 3图像显示 fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(10, 8), dpi=100) axes[0].imshow(img[:, :, ::-1]) axes[0].set_title("原图") axes[1].imshow(dst[:, :, ::-1]) axes[1].set_title("仿射后结果") plt.show() # 1读取图像 img = cv.imread(pic_url) # 2透射变换 rows, cols = img.shape[:2] # 2.1创建变换矩阵 pts1 = np.float32([[56, 65], [368, 52], [28, 387], [389, 390]]) pts2 = np.float32([[100, 145], [300, 100], [80, 290], [310, 300]]) T = cv.getPerspectiveTransform(pts1, pts2) # 2.2进行变换 dst = cv.warpPerspective(img, T, (cols, rows)) # 3图像显示 fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(10, 8), dpi=100) axes[0].imshow(img[:, :, ::-1]) axes[0].set_title("原图") axes[1].imshow(dst[:, :, ::-1]) axes[1].set_title("透射后结果") plt.show() # 1图像读取 img = cv.imread(pic_url) # 2进行图像采样 up_img = cv.pyrUp(img) # 上采样操作 img_1 = cv.pyrDown(img) # 下采样操作 # 3图像显示 cv.imshow('enlarge', up_img) cv.imshow('original', img) cv.imshow('shrink', img_1) cv.waitKey(0) cv.destroyAllWindows()




THE END