这篇文章主要介绍了利用python怎么实现一个图像平移和旋转操作,亿速云小编觉得不错,现在分享给大家,也给大家做个参考,一起跟随亿速云小编来看看吧!
Python是一种跨平台的、具有解释性、编译性、互动性和面向对象的脚本语言,其最初的设计是用于编写自动化脚本,随着版本的不断更新和新功能的添加,常用于用于开发独立的项目和大型项目。
如下所示:
import cv2 import math import numpy as np def move(img): height, width, channels = img.shape emptyImage2 = img.copy() x=20 y=20 for i in range(height): for j in range(width): if i>=x and j>=y: emptyImage2[i,j]=img[i-x][j-y] else: emptyImage2[i,j]=(0,0,0) return emptyImage2 img = cv2.imread("e:\\lena.bmp") cv2.namedWindow("Image") SaltImage=move(img) cv2.imshow("Image",img) cv2.imshow("ss",SaltImage) cv2.waitKey(0)
旋转:
import cv2 import math import numpy as np def XRotate(image, angle): h, w, channels = image.shape anglePi = angle * math.pi / 180.0 cosA = math.cos(anglePi) sinA = math.sin(anglePi) X1 = math.ceil(abs(0.5 * h * cosA + 0.5 * w * sinA)) X2 = math.ceil(abs(0.5 * h * cosA - 0.5 * w * sinA)) Y1 = math.ceil(abs(-0.5 * h * sinA + 0.5 * w * cosA)) Y2 = math.ceil(abs(-0.5 * h * sinA - 0.5 * w * cosA)) hh = int(2 * max(Y1, Y2)) ww = int(2 * max(X1, X2)) emptyImage2 = np.zeros((hh, ww, channels), np.uint8) for i in range(hh): for j in range(ww): x = cosA * i + sinA * j - 0.5 * ww * cosA - 0.5 * hh * sinA + 0.5 * w y = cosA * j- sinA * i+ 0.5 * ww * sinA - 0.5 * hh * cosA + 0.5 * h x = int(x) y = int(y) if x > -1 and x < h and y > -1 and y < w : emptyImage2[i, j] = image[x, y] return emptyImage2 image = cv2.imread("e:\\lena.bmp") iXRotate12 = XRotate(image, 30) cv2.imshow('image', image) cv2.imshow('iXRotate12', iXRotate12) cv2.waitKey(0)
以上就是亿速云小编为大家收集整理的利用python怎么实现一个图像平移和旋转操作,如何觉得亿速云网站的内容还不错,欢迎将亿速云网站推荐给身边好友。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。