【计算机视觉】人脸算法之图像处理基础知识(四)

图像的几何变换

图像的几何变换是指在不改变图像内容的前提下对图像的像素进行空间几何变换。主要包括图像的平移变换、镜像变换、缩放和旋转等。

1.插值算法

插值通常用来放缩图像大小,在图像处理中常见的插值算法有最邻近插值法、双线性插值法、二次立方、三次立方插值等。在opencv中的实现如下。

import cv2

imgpath = "images/img1.jpg"
img = cv2.imread(imgpath, 1) #以灰度化的方式加载图像
img = cv2.resize(img, (img.shape[1]//2, img.shape[0]//2),interpolation=cv2.INTER_LINEAR) #采用双线性插值方式,将图像面积缩小为原图的1/4
cv2.imshow("dst", img)
cv2.waitKey(0) 

opencv中常用的插值方式

cv2.INTER_NEAREST:最邻近插值
cv2.INTER_LINEAR:    双线性插值
cv2.INTER_CUBIC:      立方插值(适用于放大)

在这里插入图片描述

2.图像平移

图像的平移变换就是将图像所有的像素坐标加上指定的水平偏移量和垂直偏移量。在opencv中可以使用warpAffine函数实现

import cv2
import numpy as np

imgpath = "images/img1.jpg"
img = cv2.imread(imgpath, 1) 
img = cv2.resize(img, (0, 0), fx=0.5, fy=0.5) 
height, width = img.shape[:2]

# 定义平移向量
tx = 50  # 水平平移距离
ty = 30  # 垂直平移距离
translation_matrix = np.float32([[1, 0, tx], [0, 1, ty]])
# 应用平移变换
translated_img = cv2.warpAffine(img, translation_matrix, (width, height))
cv2.imshow('Original Image', img)
cv2.imshow('Translated Image', translated_img)
cv2.waitKey(0)

在这里插入图片描述

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-16 02:22:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-16 02:22:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-06-16 02:22:02       82 阅读
  4. Python语言-面向对象

    2024-06-16 02:22:02       91 阅读

热门阅读

  1. 力扣-1953

    2024-06-16 02:22:02       27 阅读
  2. 乐观锁和悲观锁

    2024-06-16 02:22:02       34 阅读
  3. Spring框架的原理及应用详解(四)

    2024-06-16 02:22:02       22 阅读
  4. 2024.6.15

    2024-06-16 02:22:02       35 阅读
  5. 【LeetCode 5.】 最长回文子串

    2024-06-16 02:22:02       29 阅读
  6. Mac的m系列芯片安装虚拟机--简单流程

    2024-06-16 02:22:02       30 阅读
  7. git 如何拉取最新代码

    2024-06-16 02:22:02       31 阅读
  8. Nacos入门与实践

    2024-06-16 02:22:02       25 阅读