python实现图像高斯金字塔的示例代码


Posted in Python onDecember 11, 2020
import cv2
import numpy as np
import matplotlib.pyplot as plt

# Grayscale
def BGR2GRAY(img):
  # Grayscale
  gray = 0.2126 * img[..., 2] + 0.7152 * img[..., 1] + 0.0722 * img[..., 0]
  return gray

# Bi-Linear interpolation
def 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 pyramid
def 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 image
img = cv2.imread("../bird.png").astype(np.float)

gray = BGR2GRAY(img)

# pyramid
pyramid = 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实现图像高斯金字塔的示例代码

以上就是python实现图像高斯金字塔的示例代码的详细内容,更多关于python 图像高斯金字塔的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python中字符串的常见操作技巧总结
Jul 28 Python
浅谈Python由__dict__和dir()引发的一些思考
Oct 30 Python
Python OpenCV获取视频的方法
Feb 28 Python
解决win64 Python下安装PIL出错问题(图解)
Sep 03 Python
python使用scrapy发送post请求的坑
Sep 04 Python
Python学习笔记之Zip和Enumerate用法实例分析
Aug 14 Python
解决Python3用PIL的ImageFont输出中文乱码的问题
Aug 22 Python
python中如何使用insert函数
Jan 09 Python
如何解决tensorflow恢复模型的特定值时出错
Feb 06 Python
Pytorch 高效使用GPU的操作
Jun 27 Python
Pytorch损失函数nn.NLLLoss2d()用法说明
Jul 07 Python
python安装第三方库如xlrd的方法
Oct 31 Python
Pycharm plot独立窗口显示的操作
Dec 11 #Python
Python OpenCV中的numpy与图像类型转换操作
Dec 11 #Python
使用python操作lmdb对数据读取的实例
Dec 11 #Python
PyTorch 中的傅里叶卷积实现示例
Dec 11 #Python
python中append函数用法讲解
Dec 11 #Python
python实现图像随机裁剪的示例代码
Dec 10 #Python
python opencv图像处理(素描、怀旧、光照、流年、滤镜 原理及实现)
Dec 10 #Python
You might like
PHP stream_context_create()作用和用法分析
2011/03/29 PHP
基于PHP代码实现中奖概率算法可用于刮刮卡、大转盘等抽奖算法
2015/12/20 PHP
PHP+Apache实现二级域名之间共享cookie的方法
2019/07/24 PHP
详解Laravel服务容器的绑定与解析
2019/11/05 PHP
flash调用js中的方法,让js传递变量给flash的办法及思路
2013/08/07 Javascript
JS实现控制表格内指定单元格内容对齐的方法
2015/03/30 Javascript
JS获得图片alt信息的方法
2015/04/01 Javascript
JavaScript 对象字面量讲解
2016/06/06 Javascript
url传递的参数值中包含&时,url自动截断问题的解决方法
2016/08/02 Javascript
Node.js读写文件之批量替换图片的实现方法
2016/09/07 Javascript
概述javascript在Google IE中的调试技巧
2016/11/24 Javascript
jquery仿苹果的时间/日期选择效果
2017/03/08 Javascript
深入理解vuex2.0 之 modules
2017/11/20 Javascript
vue+element-ui+ajax实现一个表格的实例
2018/03/09 Javascript
vue webpack实用技巧总结
2018/04/24 Javascript
在vue项目中引用Iview的方法
2018/09/14 Javascript
python计算一个序列的平均值的方法
2015/07/11 Python
python3解析库lxml的安装与基本使用
2018/06/27 Python
python web自制框架之接受url传递过来的参数实例
2018/12/17 Python
解决Python 命令行执行脚本时,提示导入的包找不到的问题
2019/01/19 Python
运用PyTorch动手搭建一个共享单车预测器
2019/08/06 Python
python2.7实现复制大量文件及文件夹资料
2019/08/31 Python
对Tensorflow中tensorboard日志的生成与显示详解
2020/02/04 Python
使用Python文件读写,自定义分隔符(custom delimiter)
2020/07/05 Python
html5中去掉input type date默认样式的方法
2018/09/06 HTML / CSS
手机端用rem+scss做适配的详解
2017/11/15 HTML / CSS
Spotahome意大利:公寓和房间出租
2020/02/21 全球购物
DELPHI面试题研发笔试试卷
2015/11/08 面试题
半年思想汇报
2013/12/30 职场文书
职业生涯规划设计步骤
2014/01/12 职场文书
2015年综治维稳工作总结
2015/04/07 职场文书
结婚通知短信怎么写
2015/04/17 职场文书
2015年学校团委工作总结
2015/05/26 职场文书
收入证明申请书
2015/06/12 职场文书
格列佛游记读书笔记
2015/06/30 职场文书
导游词之南迦巴瓦峰
2019/11/19 职场文书