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中用format函数格式化字符串的用法
Apr 08 Python
Python中用字符串调用函数或方法示例代码
Aug 04 Python
python爬虫中get和post方法介绍以及cookie作用
Feb 08 Python
pandas groupby 分组取每组的前几行记录方法
Apr 20 Python
对python的unittest架构公共参数token提取方法详解
Dec 17 Python
Python小白必备的8个最常用的内置函数(推荐)
Apr 03 Python
python web框架Flask实现图形验证码及验证码的动态刷新实例
Oct 14 Python
Anaconda 查看、创建、管理和使用python环境的方法
Dec 03 Python
django框架auth模块用法实例详解
Dec 10 Python
python之pymysql模块简单应用示例代码
Dec 16 Python
tensorflow之变量初始化(tf.Variable)使用详解
Feb 06 Python
深入理解Python变量的数据类型和存储
Feb 01 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中Smarty模板初体验
2011/08/08 PHP
php中通过curl模拟登陆discuz论坛的实现代码
2012/02/16 PHP
php检测网页是否被百度收录的函数代码
2013/10/09 PHP
php中多维数组按指定value排序的实现代码
2014/08/19 PHP
PHP也能干大事 随机函数
2015/04/14 PHP
PHP如何实现跨域
2016/05/30 PHP
Yii Framework框架开发微信公众平台示例
2020/04/26 PHP
JavaScript 面向对象的 私有成员和公开成员
2010/05/13 Javascript
动态改变div的z-index属性的简单实例
2013/08/08 Javascript
js实现漂浮回顶部按钮实例
2015/05/06 Javascript
浅谈关于JavaScript API设计的一些建议和准则
2015/06/24 Javascript
值得分享和收藏的Bootstrap学习教程
2016/05/12 Javascript
jQuery实现智能判断固定导航条或侧边栏的方法
2016/09/04 Javascript
微信小程序 Template详解及简单实例
2017/01/05 Javascript
JS实现瀑布流布局
2017/10/21 Javascript
Angular中使用MathJax遇到的一些问题
2017/12/15 Javascript
Vue多种方法实现表头和首列固定的示例代码
2018/02/02 Javascript
AnglarJs中的上拉加载实现代码
2018/02/08 Javascript
nodejs爬虫初试superagent和cheerio
2018/03/05 NodeJs
React 组件中的 bind(this)示例代码
2018/09/16 Javascript
vue中接口域名配置为全局变量的实现方法
2018/09/20 Javascript
详解适配器在JavaScript中的体现
2018/09/28 Javascript
小试小程序云开发(小结)
2019/06/06 Javascript
js针对图片加载失败的处理方法分析
2019/08/24 Javascript
vuex实现像调用模板方法一样调用Mutations方法
2019/11/06 Javascript
Python利用itchat对微信中好友数据实现简单分析的方法
2017/11/21 Python
Python使用zip合并相邻列表项的方法示例
2018/03/17 Python
Python实现的读取/更改/写入xml文件操作示例
2018/08/30 Python
从零开始的TensorFlow+VScode开发环境搭建的步骤(图文)
2020/08/31 Python
python中用ggplot绘制画图实例讲解
2021/01/26 Python
应届生会计电算化求职信
2013/10/03 职场文书
给民警的表扬信
2014/01/08 职场文书
愚人节活动策划方案
2014/03/11 职场文书
小学先进集体事迹材料
2014/05/31 职场文书
赵乐秦在党的群众路线教育实践活动总结大会上的讲话稿
2014/10/25 职场文书
python实现web邮箱扫描的示例(附源码)
2021/03/30 Python