def BGR2GRAY(img):
# Grayscale
gray = 0.2126 * img[..., 2] + 0.7152 * img[..., 1] + 0.0722 * img[..., 0]
return g...
一、高斯金字塔:
高斯金子塔的思路非常简单,就是讲原始图像当作金子塔的最底层,然后进行按图像长宽各减少二分之一,面积减少四分之一,进行下采样。在进行下采样之前需要进行高斯滤波。
import numpy as np
import cv2
import matplotlib.pyplot as plt
def gaussian(original_image,down_times=5):
temp = original_image.copy()
gaussian_pyramid = [temp]
1、从opencv函数的金字塔函数和尺度缩放函数说起
Opencv里面金字塔和resize函数都是有关图像分辨率的问题。我们经常会将某种尺寸的图像转换为其他尺寸的图像,如果放大或者缩小图片的尺寸,笼统来说的话,可以使用OpenCV为我们提供的如下两种方式:1>
resize函数。这是最直接的方式,2>
pyrUp( )、pyrDown( )函数。即图像金字塔相关的两个函数,对图像进行
高斯金字塔 ( Gaussianpyramid):向下采样,层级越高,则图像越小,分辨率越低。要从金字塔第i层生成第i+1层,我们先要用高斯核对第i层进行卷积,然后进行下采样,即删除所有偶数行和列。
拉普拉斯金字塔:拉普拉斯金字塔的第i层为高斯金字塔的第i层减去先经过上采样(每个方向扩大两倍,即新增的行和列用0填充)再经过卷积操作的第i+1层高斯金字塔。从而获得由降采样操作丢失的信息
图像金字塔是由一幅图像的多个不同分辨率的子图所构成的图像集合。这个图像集合是由原图像不断下采样;产生的,最底层是原图像,该层的上层图像是该层图像下采样产生,因此,图像的大小就是 : NN —N/2N/2----…一直到顶点1*1。
根据下采样前使用的卷积核操作的不同,图像金字塔可以分为高斯金字塔、拉普拉斯金字塔等等。下采样的一般步骤为:先将图片滤波,然后将滤波后的图像去掉其偶数行和偶数列,在滤波器的选择上我们有多种方式,cv包中使用的默认滤波器为高斯滤波器。
由于采样后的图像将越来越小,因此可以
图像金字塔介绍
图像金字塔是多尺度表达的一种,是一种以多分辨率来解释图像的有效但概念简单的结构。。一幅图像的金字塔是一系列以金字塔形状排列的分辨率逐渐降低并且来源于同一张原始图像的集合。通过梯次向下采样获得,直到某个终止条件才停止采样。
图像金字塔说白了就是披着金字塔外衣的图像缩放。一般有高斯图像金字塔、拉普拉斯图像金字塔。
两种金字塔介绍
高斯金字塔(低通)
高斯金字塔:用于下采样。高斯金字...
import cv2 as cv
import numpy as np
# 高斯金字塔和拉普拉斯金字塔的原理和python构建:https://zhuanlan.zhihu.com/p/94014493
# 高斯金字塔
def pyramid_image(image):
level = 3 # 金字塔的层数
temp = image.copy() # 拷贝图像
pyramid_images =
前文传送门:
「Python 图像处理 OpenCV (1):入门」
「Python 图像处理 OpenCV (2):像素处理与 Numpy 操作以及 Matplotlib 显示图像」
「Python 图像处理 OpenCV (3):图像属性、图像感兴趣 ROI 区域及通道处理」
「Python 图像处理 OpenCV (4):图像算数运算以及修改颜色空间」
「Python 图像处理 OpenCV (5):图像的几何变换」
「Python 图像处理 OpenCV (6):图像的阈值处理」
「Python .
高斯金字塔是一种图像金字塔,用于图像的降采样和高斯模糊。在Python中,可以使用OpenCV库来实现高斯金字塔。具体实现方法是通过cv2.pyrDown()函数进行降采样,通过cv2.GaussianBlur()函数进行高斯模糊。下面是一个简单的Python代码示例,用于生成高斯金字塔图像:
import cv2
# 读取图像
img = cv2.imread('image.jpg')
# 生成高斯金字塔
gaussian_pyramid = [img]
for i in range(3):
img = cv2.pyrDown(img)
gaussian_pyramid.append(img)
# 显示金字塔图像
for i in range(4):
cv2.imshow('Gaussian Pyramid {}'.format(i), gaussian_pyramid[i])
cv2.waitKey(0)
cv2.destroyAllWindows()
在这个示例中,我们首先读取了一张图像,然后使用cv2.pyrDown()函数生成了一个高斯金字塔。最后,我们使用cv2.imshow()函数显示了金字塔图像。