月光魔草

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

平移:

  遍历像素即可,也可以用函数[ : , m:n ]

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,:]

放大缩小:

  依靠函数:cv2.resize(InputArray src, OutputArray dst, Size, fx, fy, interpolation)

img_test = cv.resize(img, (int(y / 2), int(x / 2)))
cv.namedWindow(
'OriginalPicture',cv.WINDOW_FREERATIO)
w,h
=img.shape[0:2]
test
= cv.resize(img,((2*w,2*h)))
cv.namedWindow(
'resize',cv.WINDOW_FREERATIO)

旋转:

rows,cols = img.shape
center
=((cols-1)/2,(rows-1)/2)
M
= cv2.getRotationMatrix2D(center,45,1)
#定义旋转矩阵,第一个参数是中心点,第二个参数是旋转角度,第三个参数是缩放比例
dst = cv2.warpAffine(img,M,(cols,rows),borderValue=200)
#进行变换,第一个参数是原图,第二个参数是变换矩阵,第三个参数是变换后的图像尺寸大小,第四个参数可省,为边界填充值,默认为0

变换矩阵法(理论上可以实现本文所有的几何变换):

def change_jvzhen(src1):
    rows,cols = src1.shape
    M = np.float32([[1,0,100],
                    [0,1,500]])#定义变换矩阵,先列再行
    dst = cv2.warpAffine(src1,M,(cols,rows))#仿射变换函数进行变换,第一个参数是原图,第二个参数是变换矩阵,第三个是输出图像的大小

镜像变换:

img1 = cv2.flip(img,1)  #镜像
0表示绕×轴翻转;
1表示绕y轴翻转;
-1表示绕×轴、y轴两个轴翻转。
参数3:
  可选参数。用于设置输出数组

参考链接:https://mp.weixin.qq.com/s/rBROWai8xHh3OtTthFOpsA

 

posted on 2020-06-10 22:12  月光魔草  阅读(353)  评论(0编辑  收藏  举报