如下所示:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
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 ) |
旋转:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
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 图像平移和旋转的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/u010096025/article/details/53780602