4 用python进行OpenCV实战之图像变换1(平移)

前言

到目前为止,经过前几节的介绍,我们已经有了一个坚实的基础去做一些图像处理,在本节我们先将介绍图像变换中的平移,为后面几节学习图像变换中的旋转、改变大小、镜像、裁剪打下一个好的基础

1 平移

1.1 平移基本操作

新建

translation.py

平移的意思就是将图像沿着x轴、y轴移到,我们可以进行上下左右等各个方向的移动。

# -*- coding: utf-8 -*-
import numpy as np #1
import argparse #2
import imutils #3
import cv2 #4

ap = argparse.ArgumentParser() #5
ap.add_argument("-i", "--image", required=True,
                help="Path to the image") #6
args = vars(ap.parse_args())  #7

image = cv2.imread(args["image"]) #8
cv2.imshow("原始图片", image) #9

M = np.float32([[1, 0
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
1. 缩放 缩放指的是将原始图像按比例缩小或放大。OpenCV中提供了resize()函数来实现缩放操作。 语法: dst = cv2.resize(src, dsize[, dst[, fx[, fy[, interpolation]]]]) 参数说明: - src:原始图像。 - dsize:输出图像大小。 - fx:水平方向缩放比例。 - fy:垂直方向缩放比例。 - interpolation:插值方法。常用的有cv2.INTER_LINEAR(双线性插值)和cv2.INTER_NEAREST(最近邻插值)。 示例代码: import cv2 img = cv2.imread('lena.png') # 缩小图像 dst = cv2.resize(img, None, fx=0.5, fy=0.5, interpolation=cv2.INTER_LINEAR) cv2.imshow('dst', dst) cv2.waitKey(0) cv2.destroyAllWindows() 2. 平移 平移指的是将原始图像沿着水平或垂直方向移动一定的距离。OpenCV中提供了warpAffine()函数来实现平移操作。 语法: dst = cv2.warpAffine(src, M, dsize[, dst[, flags[, borderMode[, borderValue]]]]) 参数说明: - src:原始图像。 - M:变换矩阵,可以通过cv2.getAffineTransform()或cv2.getPerspectiveTransform()函数获取。 - dsize:输出图像大小。 - flags:插值方法和变换标志。常用的有cv2.INTER_LINEAR和cv2.WARP_FILL_OUTLIERS。 - borderMode:边界填充方法。常用的有cv2.BORDER_CONSTANT和cv2.BORDER_REPLICATE。 - borderValue:边界填充颜色。 示例代码: import cv2 import numpy as np img = cv2.imread('lena.png') rows, cols = img.shape[:2] # 定义平移矩阵 M = np.float32([[1, 0, 100], [0, 1, 50]]) # 平移图像 dst = cv2.warpAffine(img, M, (cols, rows)) cv2.imshow('dst', dst) cv2.waitKey(0) cv2.destroyAllWindows() 3. 翻转 翻转指的是将原始图像沿着水平或垂直方向翻转。OpenCV中提供了flip()函数来实现翻转操作。 语法: dst = cv2.flip(src, flipCode[, dst]) 参数说明: - src:原始图像。 - flipCode:翻转方式。0表示沿x轴翻转(水平翻转),1表示沿y轴翻转(垂直翻转),-1表示沿x轴和y轴同时翻转(水平垂直翻转)。 示例代码: import cv2 img = cv2.imread('lena.png') # 水平翻转 dst1 = cv2.flip(img, 0) # 垂直翻转 dst2 = cv2.flip(img, 1) # 水平垂直翻转 dst3 = cv2.flip(img, -1) cv2.imshow('dst1', dst1) cv2.imshow('dst2', dst2) cv2.imshow('dst3', dst3) cv2.waitKey(0) cv2.destroyAllWindows()

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值