时间:2021-05-22
import cv2import numpy as npimport matplotlib.pyplot as plt# Grayscaledef BGR2GRAY(img): # Grayscale gray = 0.2126 * img[..., 2] + 0.7152 * img[..., 1] + 0.0722 * img[..., 0] return gray# Bi-Linear interpolationdef bl_interpolate(img, ax=1., ay=1.): if len(img.shape) > 2: H, W, C = img.shape else: H, W = img.shape C = 1 aH = int(ay * H) aW = int(ax * W) # get position of resized image y = np.arange(aH).repeat(aW).reshape(aW, -1) x = np.tile(np.arange(aW), (aH, 1)) # get position of original position y = (y / ay) x = (x / ax) ix = np.floor(x).astype(np.int) iy = np.floor(y).astype(np.int) ix = np.minimum(ix, W-2) iy = np.minimum(iy, H-2) # get distance dx = x - ix dy = y - iy if C > 1: dx = np.repeat(np.expand_dims(dx, axis=-1), C, axis=-1) dy = np.repeat(np.expand_dims(dy, axis=-1), C, axis=-1) # interpolation out = (1-dx) * (1-dy) * img[iy, ix] + dx * (1 - dy) * img[iy, ix+1] + (1 - dx) * dy * img[iy+1, ix] + dx * dy * img[iy+1, ix+1] out = np.clip(out, 0, 255) out = out.astype(np.uint8) return out# make image pyramiddef make_pyramid(gray): # first element pyramid = [gray] # each scale for i in range(1, 6): # define scale a = 2. ** i # down scale p = bl_interpolate(gray, ax=1./a, ay=1. / a) # add pyramid list pyramid.append(p) return pyramid# Read imageimg = cv2.imread("../bird.png").astype(np.float)gray = BGR2GRAY(img)# pyramidpyramid = make_pyramid(gray)for i in range(6): cv2.imwrite("out_{}.jpg".format(2**i), pyramid[i].astype(np.uint8)) plt.subplot(2, 3, i+1) plt.title('1/' + str((i+1)**2) ) plt.imshow(pyramid[i], cmap='gray') plt.axis('off') plt.xticks(color="None") plt.yticks(color="None")plt.show()
以上就是python实现图像高斯金字塔的示例代码的详细内容,更多关于python 图像高斯金字塔的资料请关注其它相关文章!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
前言上一篇文章,我们讲解了边缘梯度计算函数,这篇文章我们来了解图像金字塔。图像金字塔?图像金字塔被广泛用于计算机视觉应用中。图像金字塔是一个图像集合,集合中所有
for循环语句打印金字塔完整的金字塔复制代码代码如下://打印金字塔$n=25;for($i=1;$icontinue语句:跳过本次循环后面的代码。可以指定跳出
这里首先先讲一下金字塔的原理:影像金字塔就是把一个原始图像处理成一个类似于塔状的影像结构(请不要纠结于这个概念)在影像金字塔中最精细层的分辨率为16*16,下一
作为在淘宝开业的电器商品,谁不想拥有更高的交易量呢?但是,高交易量需要足够的流量作为支持,就像金字塔一样,淘宝流量是金字塔的底部,交易量是金字塔的顶部。提高淘宝
本文实例讲述了php输出金字塔的2种实现方法。分享给大家供大家参考。具体分析如下:下面给大家总结了两种实现金字塔打印的方法,一种是利用了自定义函数,另一种是利用