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中的生成器及其与迭代器的差异
Jun 20 Python
Python算法应用实战之栈详解
Feb 04 Python
Python实现输出程序执行进度百分比的方法
Sep 16 Python
Python 窗体(tkinter)按钮 位置实例
Jun 13 Python
python opencv 批量改变图片的尺寸大小的方法
Jun 28 Python
Python-copy()与deepcopy()区别详解
Jul 12 Python
python GUI库图形界面开发之PyQt5布局控件QHBoxLayout详细使用方法与实例
Mar 06 Python
django的autoreload机制实现
Jun 03 Python
Python导入数值型Excel数据并生成矩阵操作
Jun 09 Python
keras的backend 设置 tensorflow,theano操作
Jun 30 Python
Django怎么在admin后台注册数据库表
Nov 14 Python
Python图片检索之以图搜图
May 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
paypal即时到账php实现代码
2010/11/28 PHP
php使用百度ping服务代码实例
2014/06/19 PHP
php中get_meta_tags()、CURL与user-agent用法分析
2014/12/16 PHP
PHP在线调试执行的实现方法(附demo源码)
2016/04/28 PHP
PHP简单计算两个时间差的方法示例
2017/06/20 PHP
php自动加载代码实例详解
2021/02/26 PHP
Js组件的一些写法
2010/09/10 Javascript
js内置对象 学习笔记
2011/08/01 Javascript
window.open的页面如何刷新(父页面)上层页面
2012/12/28 Javascript
jQuery 关于伪类选择符的使用说明
2013/04/24 Javascript
js图片实时加载提供网页打开速度
2014/09/11 Javascript
再谈javascript原型继承
2014/11/10 Javascript
AJAX和jQuery动态加载数据的实现方法
2016/12/05 Javascript
jQuery中get方法用法分析
2016/12/07 Javascript
原生JS实现简单放大镜效果
2017/02/08 Javascript
vue实现点击当前标签高亮效果【推荐】
2018/06/22 Javascript
Vue2.5学习笔记之如何在项目中使用和配置Vue
2018/09/26 Javascript
在layui中对table中的数据进行判断(0、1)转换为提示信息的方法
2019/09/28 Javascript
解决vue安装less报错Failed to compile with 1 errors的问题
2020/10/22 Javascript
[47:48]DOTA2上海特级锦标赛D组小组赛#2 Liquid VS VP第三局
2016/02/28 DOTA
[41:52]2018DOTA2亚洲邀请赛3月29日 小组赛A组 TNC VS OpTic
2018/03/30 DOTA
Python实现带百分比的进度条
2016/06/28 Python
将Python字符串生成PDF的实例代码详解
2019/05/17 Python
利用Python实现斐波那契数列的方法实例
2020/07/26 Python
Python中的特殊方法以及应用详解
2020/09/20 Python
Python类型转换的魔术方法详解
2020/12/23 Python
基于css3仿造window7的开始菜单
2010/06/17 HTML / CSS
戴森英国官网:Dyson英国
2019/05/07 全球购物
美国眼镜网站:LensCrafters
2020/01/19 全球购物
js正则匹配markdown里的图片标签的实现
2021/03/24 Javascript
大气污染防治方案
2014/05/19 职场文书
买房协议书范本
2014/10/23 职场文书
见习报告怎么写
2014/10/31 职场文书
2014普法依法治理工作总结
2014/12/18 职场文书
党员证明模板
2015/06/19 职场文书
mysql自增长id用完了该怎么办
2022/02/12 MySQL