OpenCV学习(4.8) 图像金字塔

1.目的

在这一章当中,

  • 我们将了解图像金字塔。
  • 我们将使用图像金字塔创建一个新的水果,"Orapple"
  • 我们将看到这些功能: cv.pyrUp()cv.pyrDown()

在通常情况下我们使用大小恒定的图像。但在某些情况下,我们需要使用不同分辨率的同幅图像。例如,在搜索图像中的某些内容如脸部信息时,并不确定该内容在图像中占据的大小。在这种情况下,我们需要创建一组不同分辨率的相同图像,并在所有图像中搜索该内容。这些不同分辨率的图像被称为图像金字塔(因为当它们堆叠排列时,底部为最高分辨率图像而顶部为最低分辨率图像,看起来像金字塔)。

图像金字塔有两种: 1)高斯金字塔 和 2)拉普拉斯金字塔

通过去除较低级别图像(较高分辨率)中的连续行和列来形成高斯金字塔中的较高级别图像(较低分辨率)。较高级别图像的每个像素值由低一级别图像的 5 个像素值高斯加权得到,由此图像面积减少到原来的四分之一。这些图像被称为 Octave(组)。当我们在金字塔中上升时(即分辨率降低),重复相似的操作。同理,在金字塔中下降时,每个级别的图像面积大小为上一级的四倍。我们可以使用 cv.pyrDown()cv.pyrUp() 函数获取高斯金字塔。

2. 图像金字塔

python 复制代码
import cv2
import numpy as np
from matplotlib import pyplot as plt

# 读取原始图像
image = cv2.imread(r'D:\study\EmotionDetection_RealTime-master\data\data\te\13.jpg', cv2.IMREAD_COLOR)

# 创建图像金字塔
# 这里我们将创建三个层次的金字塔
pyramid_images = [image]
cv2.imshow('image',image)
downscaled_image = cv2.pyrDown(image)
cv2.imshow('downscaled_image',downscaled_image)

upsampled_image = cv2.pyrUp(image)

cv2.imshow('upsampled_image',upsampled_image)


# 等待按键后关闭所有窗口
cv2.waitKey(0)
cv2.destroyAllWindows()
2.1 cv2.pyrDown()

cv2.pyrDown()函数用于对图像进行下采样,即减少图像的分辨率。它通常用于创建图像金字塔的较低层次。下采样的具体过程是:

  1. 对图像进行高斯模糊。
  2. 将模糊后的图像沿水平方向和垂直方向各减半。

这样,原始图像的分辨率被降低了一半。

2.2 cv2.pyrUp()

cv2.pyrUp()函数用于对图像进行上采样,即增加图像的分辨率。它通常用于创建图像金字塔的较高层次。上采样的具体过程是:

  1. 将图像复制到一个新的尺寸更大的图像中。
  2. 在新图像的边缘填充零。
  3. 对新图像进行高斯模糊。

这样,原始图像的分辨率被提高了一倍。

原始图像的分辨率通常指的是图像在水平和垂直方向上的像素数量。这是图像的一个重要属性,因为它决定了图像的清晰度和细节水平。

例如,一个分辨率为1024x768的图像意味着图像在水平方向上有1024个像素,在垂直方向上有768个像素。这意味着图像的总面积是786432个像素(1024x768)。

分辨率通常以像素为单位表示,但也可以用其他单位,如英寸(inches)或厘米(centimeters)。在这种情况下,分辨率指的是每英寸或每厘米的像素数量。例如,一个分辨率为300dpi(dots per inch)的图像意味着每英寸有300个像素。

相关推荐
艾派森2 分钟前
大数据分析案例-基于随机森林算法的智能手机价格预测模型
人工智能·python·随机森林·机器学习·数据挖掘
hairenjing11234 分钟前
在 Android 手机上从SD 卡恢复数据的 6 个有效应用程序
android·人工智能·windows·macos·智能手机
小蜗子8 分钟前
Multi‐modal knowledge graph inference via media convergenceand logic rule
人工智能·知识图谱
SpikeKing21 分钟前
LLM - 使用 LLaMA-Factory 微调大模型 环境配置与训练推理 教程 (1)
人工智能·llm·大语言模型·llama·环境配置·llamafactory·训练框架
幼儿园老大*36 分钟前
走进 Go 语言基础语法
开发语言·后端·学习·golang·go
黄焖鸡能干四碗1 小时前
信息化运维方案,实施方案,开发方案,信息中心安全运维资料(软件资料word)
大数据·人工智能·软件需求·设计规范·规格说明书
1 小时前
开源竞争-数据驱动成长-11/05-大专生的思考
人工智能·笔记·学习·算法·机器学习
ctrey_1 小时前
2024-11-4 学习人工智能的Day21 openCV(3)
人工智能·opencv·学习
啦啦右一1 小时前
前端 | MYTED单篇TED词汇学习功能优化
前端·学习
攻城狮_Dream1 小时前
“探索未来医疗:生成式人工智能在医疗领域的革命性应用“
人工智能·设计·医疗·毕业