失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Python+OpenCV 图像处理系列(9)—— 图像的翻转和缩放插值

Python+OpenCV 图像处理系列(9)—— 图像的翻转和缩放插值

时间:2022-07-12 10:27:14

相关推荐

Python+OpenCV 图像处理系列(9)—— 图像的翻转和缩放插值

1. 图像的翻转

图像翻转 (Image Flip),图像翻转的本质像素映射,OpenCV 支持三种图像翻转方式:

X轴翻转,flipcode = 0Y轴翻转, flipcode = 1XY轴翻转, flipcode = -1

cv2.flip(src, flipcode) 携带两个参数,第一个是图像在内存中的映射,第二个是翻转码。

import cv2import numpy as npsrc = cv2.imread("./img/003.jpg")cv2.imshow("origin", src)dst1 = cv2.flip(src, 0)cv2.imshow("x-flip", dst1)dst2 = cv2.flip(src, 1)cv2.imshow("y-flip", dst2)dst3 = cv2.flip(src, -1)cv2.imshow("xy-flip", dst3)h, w, ch = src.shapedst = np.zeros(src.shape, src.dtype)for row in range(h):for col in range(w):b, g, r = src[row, col]dst[row, w - col - 1] = [b, g, r]cv2.imshow("custom-y-flip", dst)cv2.waitKey(0)cv2.destroyAllWindows()

效果图

2. 图像的插值

图像插值(Image Interpolation), 最常见四种插值算法

INTER_NEAREST = 0INTER_LINEAR = 1INTER_CUBIC = 2INTER_LANCZOS4 = 4

相关的应用场景有几何变换、透视变换、插值计算新像素,resize, 如果 size 有值,使用 size 做放缩插值,否则根据 fx 与 fy 卷积。

import cv2src = cv2.imread("./img/003.jpg")cv2.imshow("origin", src)h, w = src.shape[:2]print(h, w)dst = cv2.resize(src, (w*2, h*2), fx=0.75, fy=0.75, interpolation=cv2.INTER_NEAREST)cv2.imshow("INTER_NEAREST", dst)dst = cv2.resize(src, (w*2, h*2), interpolation=cv2.INTER_LINEAR)cv2.imshow("INTER_LINEAR", dst)dst = cv2.resize(src, (w*2, h*2), interpolation=cv2.INTER_CUBIC)cv2.imshow("INTER_CUBIC", dst)dst = cv2.resize(src, (w*2, h*2), interpolation=cv2.INTER_LANCZOS4)cv2.imshow("INTER_LANCZOS4", dst)cv2.waitKey(0)cv2.destroyAllWindows()

如果觉得《Python+OpenCV 图像处理系列(9)—— 图像的翻转和缩放插值》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。