无所谓,谁会爱上谁。。。 无所谓,不能天天更。。。 只要是,不要一直断。。。 -----------------------------------我是可爱的分割线 图像平移的意思就是将图像沿着x轴、y轴移动,我们可以进行上、下、左、右等各个方向的移动。 1、右移 如下图,是lena美女图像朝右移动了50个像素。 代码如下: import cv2 import numpy as np img = cv2.imread("E:/image/lena.jpg") cv2.imshow(“img”,img) w,h,m= img.shape dst = np.zeros((w,h,m), np.uint8) for i in range( w): for j in range( h - 50 ): dst[i, j + 50] = img[i, j] cv2.imshow('image', dst) cv2.waitKey(0) 往右移动过后,会发现左边全是黑色,原因是在创建数组时,全初化为0,故全是黑色。如果想将其改为其他颜色也是可以的,如下图所示,我将其赋了颜色为lena左上角第一个点的颜色。 代码如下: import cv2 import numpy as np img = cv2.imread("E:/image/lena.jpg") w,h,m= img.shape dst = np.zeros((w,h,m), np.uint8) for i in range( w): for j in range( h - 50 ): dst[i, j + 50] = img[i, j] dst[:,0:50]=img[0][0] cv2.imshow('image', dst) cv2.waitKey(0) 2、左移 类似右移,只要注意其行和列的变化就行。 其代码如下: import cv2 import numpy as np img = cv2.imread("E:/image/lena.jpg") cv2.imshow('img', img) w,h,m= img.shape dst = np.zeros((w,h,m), np.uint8) for i in range(w): for j in range( h - 50 ): dst[i, j] = img[i, j+50] cv2.imshow('image', dst) cv2.waitKey(0) 移动后的地方也是可以补颜色的,如下图所示,我保留了它原来的颜色: 代码如下: import cv2 import numpy as np img = cv2.imread("E:/image/lena.jpg") cv2.imshow('img', img) w,h,m= img.shape dst = np.zeros((w,h,m), np.uint8) for i in range(w): for j in range( h - 50 ): dst[i, j] = img[i, j+50] dst[:,h-50:h]=img[:,h-50:h] cv2.imshow('image', dst) cv2.waitKey(0) 3、其他方向的移动 其他方向的移动和上类似,如往上移: 往下移: 同时移: 想怎么移就怎么移,想上什么色就上什么色: 其代码如下: import cv2 import numpy as np img = cv2.imread("E:/image/lena.jpg") cv2.imshow('img', img) w,h,m= img.shape dst = np.zeros((w,h,m), np.uint8) for i in range(w-50): for j in range( h-60): dst[i+50, j+60] = img[i, j] dst[0:50,:]=img[0:50,:] dst[50:,0:60]=img[50:,0:60] cv2.imshow('image', dst) cv2.waitKey(0) |
|
来自: pythonjava学习 > 《python图像处理》