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中AND、OR的一个使用小技巧
Feb 18 Python
使用SAE部署Python运行环境的教程
May 05 Python
python验证码识别的实例详解
Sep 09 Python
python 3.6 +pyMysql 操作mysql数据库(实例讲解)
Dec 20 Python
浅谈Python2获取中文文件名的编码问题
Jan 09 Python
利用python求积分的实例
Jul 03 Python
如何在Django配置文件里配置session链接
Aug 06 Python
使用python将最新的测试报告以附件的形式发到指定邮箱
Sep 20 Python
python文件读写代码实例
Oct 21 Python
Python 中判断列表是否为空的方法
Nov 24 Python
Python SSL证书验证问题解决方案
Jan 13 Python
python基于socket函数实现端口扫描
May 28 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
不用iconv库的gb2312与utf-8的互换函数
2006/10/09 PHP
PHP获取MAC地址的函数代码
2011/09/11 PHP
利用PHP如何统计Nginx日志的User Agent数据
2019/03/06 PHP
Ext javascript建立超链接,进行事件处理的实现方法
2009/03/22 Javascript
一个选择最快的服务器转向代码
2009/04/27 Javascript
用JS判断IE版本的代码 超管用!
2011/08/09 Javascript
解决遍历时Array.indexOf产生的性能问题
2012/07/03 Javascript
Javascript浅谈之引用类型
2013/12/18 Javascript
js触发select onchange事件的小技巧
2014/08/05 Javascript
PHPExcel中的一些常用方法汇总
2015/01/23 Javascript
JavaScript运算符小结
2015/06/03 Javascript
15个非常实用的JavaScript代码片段
2016/12/18 Javascript
jQuery插件版本冲突的处理方法分析
2017/01/16 Javascript
教你用十行node.js代码读取docx的文本
2017/03/08 Javascript
vue 和vue-touch 实现移动端左右导航效果(仿京东移动站导航)
2017/04/22 Javascript
JS实现简单拖拽效果
2017/06/21 Javascript
ECMAScript6变量的解构赋值实例详解
2017/09/19 Javascript
微信小程序实现添加手机联系人功能示例
2017/11/30 Javascript
jquery学习笔记之无new构建详解
2017/12/07 jQuery
Vue 幸运大转盘实现思路详解
2019/05/06 Javascript
详解react组件通讯方式(多种)
2020/05/06 Javascript
JS PHP字符串截取函数实现原理解析
2020/08/29 Javascript
python生成随机图形验证码详解
2017/11/08 Python
Python读csv文件去掉一列后再写入新的文件实例
2017/12/28 Python
Python实现读取字符串按列分配后按行输出示例
2018/04/17 Python
canvas生成带二维码海报的踩坑记录
2019/09/11 HTML / CSS
澳大利亚买卖正宗二手奢侈品交易平台:Luxe.It.Fwd
2019/10/16 全球购物
法国在线药房:Shop Pharmacie
2019/11/26 全球购物
美国手机支架公司:PopSockets
2019/11/27 全球购物
会议主持词
2014/03/17 职场文书
卫生标语大全
2014/06/21 职场文书
英语系本科生求职信
2014/07/15 职场文书
信仰纪录片观后感
2015/06/08 职场文书
企业催款函范本
2015/06/24 职场文书
详解Mysql和Oracle之间的误区
2021/05/18 MySQL
OpenCV-Python实现人脸美白算法的实例
2021/06/11 Python