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使用scrapy采集数据时为每个请求随机分配user-agent的方法
Apr 08 Python
Python实现PS滤镜的万花筒效果示例
Jan 23 Python
windows下pycharm安装、创建文件、配置默认模板
Jul 31 Python
使用pandas把某一列的字符值转换为数字的实例
Jan 29 Python
选择Python写网络爬虫的优势和理由
Jul 07 Python
Python脚本操作Excel实现批量替换功能
Nov 20 Python
Python Scrapy框架第一个入门程序示例
Feb 05 Python
python实现滑雪者小游戏
Feb 22 Python
python数据分析:关键字提取方式
Feb 24 Python
Python 使用 environs 库定义环境变量的方法
Feb 25 Python
基于打开pycharm有带图片md文件卡死问题的解决
Apr 24 Python
Python制作简单的剪刀石头布游戏
Dec 10 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 购物车的例子
2009/05/04 PHP
7个超级实用的PHP代码片段
2011/07/11 PHP
php出现web系统多域名登录失败的解决方法
2014/09/30 PHP
ThinkPHP5&5.1框架关联模型分页操作示例
2019/08/03 PHP
JS限制Textarea文本域字符个数的具体实现
2013/08/02 Javascript
js获取下拉列表框中的value和text的值示例代码
2014/01/11 Javascript
仿淘宝TAB切换搜索框搜索切换的相关内容
2014/09/21 Javascript
jQuery 实现自动填充邮箱功能(带下拉提示)
2014/10/14 Javascript
node.js中的fs.unlink方法使用说明
2014/12/15 Javascript
ES6 Promise对象概念与用法分析
2017/04/01 Javascript
vue购物车插件编写代码
2017/11/27 Javascript
node作为中间服务层如何发送请求(发送请求的实现方法详解)
2018/01/02 Javascript
通过 JS 判断页面是否有滚动条的实现方法
2018/04/05 Javascript
Angular 5.x 学习笔记之Router(路由)应用
2018/04/08 Javascript
promise和co搭配生成器函数方式解决js代码异步流程的比较
2018/05/25 Javascript
微信小程序画布圆形进度条显示效果
2020/11/17 Javascript
vue中使用axios post上传头像/图片并实时显示到页面的方法
2018/09/27 Javascript
JS匿名函数内部this指向问题详析
2019/05/10 Javascript
jQuery实现input[type=file]多图预览上传删除等功能
2019/08/02 jQuery
用python写asp详细讲解
2013/12/16 Python
Django中实现一个高性能计数器(Counter)实例
2014/07/09 Python
python实现单向链表详解
2018/02/08 Python
python常见字符串处理函数与用法汇总
2019/10/30 Python
Python Gluon参数和模块命名操作教程
2019/12/18 Python
tensorflow实现测试时读取任意指定的check point的网络参数
2020/01/21 Python
python简单利用字典破解zip文件口令
2020/09/07 Python
python代码实现猜拳小游戏
2020/11/30 Python
pip install命令安装扩展库整理
2021/03/02 Python
python 求两个向量的顺时针夹角操作
2021/03/04 Python
html5小技巧之通过document.head获取head元素
2014/06/04 HTML / CSS
大学军训通讯稿
2014/01/13 职场文书
防灾减灾活动总结
2014/08/30 职场文书
廉政教育的心得体会
2014/09/01 职场文书
英语邀请函范文
2015/02/02 职场文书
员工辞职信范文
2015/03/02 职场文书
Kubernetes部署实例并配置Deployment、网络映射、副本集
2022/04/01 Servers