重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章主要介绍了利用python怎么实现一个图像平移和旋转操作,创新互联小编觉得不错,现在分享给大家,也给大家做个参考,一起跟随创新互联小编来看看吧!
网站建设哪家好,找创新互联!专注于网页设计、网站建设、微信开发、微信小程序定制开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了固安免费建站欢迎大家使用!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怎么实现一个图像平移和旋转操作,如何觉得创新互联网站的内容还不错,欢迎将创新互联网站推荐给身边好友。