首页 > 编程 > Python > 正文

python 图像平移和旋转的实例

2019-11-25 13:30:23
字体:
来源:转载
供稿:网友

如下所示:

import cv2import mathimport numpy as npdef 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 cv2import mathimport numpy as npdef 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 图像平移和旋转的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持武林网。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表