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查询mysql中文乱码问题
Nov 09 Python
python中enumerate函数用法实例分析
May 20 Python
Python自定义主从分布式架构实例分析
Sep 19 Python
Python3 适合初学者学习的银行账户登录系统实例
Aug 08 Python
python selenium UI自动化解决验证码的4种方法
Jan 05 Python
使用python根据端口号关闭进程的方法
Nov 06 Python
python代理工具mitmproxy使用指南
Jul 04 Python
Python3 实现减少可调用对象的参数个数
Dec 20 Python
Pytorch 高效使用GPU的操作
Jun 27 Python
基于python实现可视化生成二维码工具
Jul 08 Python
Python 中如何写注释
Aug 28 Python
OpenCV读取与写入图片的实现
Oct 13 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
支持oicq头像的留言簿(一)
2006/10/09 PHP
PHP 代码规范小结
2012/03/08 PHP
PHP 抽象方法与抽象类abstract关键字介绍及应用
2014/10/16 PHP
两种php给图片加水印的实现代码
2020/04/18 PHP
input 高级限制级用法
2009/03/26 Javascript
Javascript 中文字符串处理额外注意事项
2009/11/15 Javascript
利用jQuery操作对象数组的实现代码
2011/04/27 Javascript
简单的Jquery全选功能
2013/11/07 Javascript
xmlhttp缓存清除的2种解决方法
2013/12/13 Javascript
JavaScript实现班级随机点名小应用需求的具体分析
2014/05/12 Javascript
JavaScript制作windows经典扫雷小游戏
2015/03/31 Javascript
初步了解javascript面向对象
2015/11/09 Javascript
js模糊查询实例分享
2016/12/26 Javascript
vue.js源代码core scedule.js学习笔记
2017/07/03 Javascript
Angular CLI 安装和使用教程
2017/09/13 Javascript
XMLHttpRequest对象_Ajax异步请求重点(推荐)
2017/09/28 Javascript
详解如何在react中搭建d3力导向图
2018/01/12 Javascript
在vue项目中使用sass的配置方法
2018/03/20 Javascript
浅谈JavaScript 代码简洁之道
2019/01/09 Javascript
vue element-ui中table合计指定列求和实例
2020/11/02 Javascript
python下os模块强大的重命名方法renames详解
2017/03/07 Python
查看Django和flask版本的方法
2018/05/14 Python
浅谈pytorch、cuda、python的版本对齐问题
2020/01/15 Python
python3使用Pillow、tesseract-ocr与pytesseract模块的图片识别的方法
2020/02/26 Python
通过Python扫描代码关键字并进行预警的实现方法
2020/05/24 Python
sklearn线性逻辑回归和非线性逻辑回归的实现
2020/06/09 Python
美国专业级皮肤病和spa品质护肤品的高级零售网站:SkinCareRx
2017/02/06 全球购物
Ashford台湾:以折扣价提供奢华的男女用表款
2019/12/04 全球购物
俄罗斯GamePark游戏商店网站:购买游戏、游戏机和配件
2020/03/13 全球购物
怎样建立和理解非常复杂的声明?例如定义一个包含N 个指向返回 指向字符的指针的函数的指针的数组?
2013/03/19 面试题
《微笑着面对生活》优秀演讲稿范文
2014/09/23 职场文书
试用期转正工作总结2015
2015/05/28 职场文书
党校培训学习心得体会
2016/01/06 职场文书
大学生各类奖学金申请书
2019/06/24 职场文书
2019年描写人生经典诗句大全
2019/07/08 职场文书
Python中request的基本使用解决乱码问题
2022/04/12 Python