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

图像的几何变换

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

1.插值算法

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

python 复制代码
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函数实现

python 复制代码
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)
相关推荐
hoiii18718 分钟前
孤立森林 (Isolation Forest) 快速异常检测系统
算法
hans汉斯1 小时前
计算机科学与应用|基于大模型深度语义理解的智能内容纠错系统
人工智能·计算机视觉·视觉检测·数据·病虫害检测
c++之路1 小时前
适配器模式(Adapter Pattern)
java·算法·适配器模式
吴声子夜歌2 小时前
Java——接口的细节
java·开发语言·算法
myheartgo-on2 小时前
Java—方 法
java·开发语言·算法·青少年编程
宝贝儿好3 小时前
【LLM】第三章:项目实操案例:智能输入法项目
人工智能·python·深度学习·算法·机器人
雪碧聊技术4 小时前
上午题_算法
算法·软考·软件设计师
naturerun4 小时前
从数组中删除元素的算法
数据结构·c++·算法
斯内科5 小时前
四胞胎素数:找出‌个位数分别是 1、3、7、9‌,且‌十位及更高位数字完全相同‌的质数,例如 11、13、17、19
算法·质数·素数·四胞胎素数