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标准日志模块logging的使用方法
Nov 01 Python
Python计算三角函数之asin()方法的使用
May 15 Python
python简单实现基数排序算法
May 16 Python
Python基于pygame实现的font游戏字体(附源码)
Nov 11 Python
Python实现针对中文排序的方法
May 09 Python
Python中摘要算法MD5,SHA1简介及应用实例代码
Jan 09 Python
python解析html提取数据,并生成word文档实例解析
Jan 22 Python
使用Python3+PyQT5+Pyserial 实现简单的串口工具方法
Feb 13 Python
解决Python设置函数调用超时,进程卡住的问题
Aug 08 Python
用pytorch的nn.Module构造简单全链接层实例
Jan 14 Python
一篇文章带你搞定Ubuntu中打开Pycharm总是卡顿崩溃
Nov 02 Python
python识别围棋定位棋盘位置
Jul 26 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
mysql_fetch_assoc和mysql_fetch_row的功能加起来就是mysql_fetch_array
2007/01/15 PHP
PHP中array_map与array_column之间的关系分析
2014/08/19 PHP
php精确的统计在线人数的方法
2015/10/21 PHP
php命令行模式代码实例详解
2021/02/26 PHP
JavaScript 面向对象之命名空间
2010/05/04 Javascript
JavaScript实现统计文本框Textarea字数增强用户体验
2012/12/21 Javascript
javascript 闭包详解
2015/02/15 Javascript
jquery验证邮箱格式并显示提交按钮
2015/11/07 Javascript
Nodejs express框架一个工程中同时使用ejs模版和jade模版
2015/12/28 NodeJs
使用Angular.js开发的注意事项
2016/10/19 Javascript
Angular如何引入第三方库的方法详解
2017/07/13 Javascript
IntersectionObserver实现图片懒加载的示例
2017/09/29 Javascript
Vue底层实现原理总结
2018/02/17 Javascript
微信小程序中使用自定义图标(阿里icon)的方法
2018/08/20 Javascript
cocos2dx+lua实现橡皮擦功能
2018/12/20 Javascript
JavaScript实现的鼠标跟随特效示例【2则实例】
2018/12/22 Javascript
详解一个小实例理解js原型和继承
2019/04/24 Javascript
React学习之受控组件与数据共享实例分析
2020/01/06 Javascript
Vue export import 导入导出的多种方式与区别介绍
2020/02/12 Javascript
[01:44]《为梦想出发》—联想杯DOTA2完美世界全国高校联赛
2015/09/30 DOTA
[00:35]DOTA2上海特级锦标赛 Newbee战队宣传片
2016/03/03 DOTA
python中的对象拷贝示例 python引用传递
2014/01/23 Python
Python编程入门的一些基本知识
2015/05/13 Python
python 获取当天每个准点时间戳的实例
2018/05/22 Python
python统计字母、空格、数字等字符个数的实例
2018/06/29 Python
pytorch实现对输入超过三通道的数据进行训练
2020/01/15 Python
Python文件读写w+和r+区别解析
2020/03/26 Python
python 爬虫爬取京东ps4售卖情况
2020/12/18 Python
使用数据结构给女朋友写个Html5走迷宫游戏
2019/11/26 HTML / CSS
Space NK英国站:英国热门美妆网站
2017/12/11 全球购物
Trench London官方网站:高级风衣和意大利皮夹克
2020/07/11 全球购物
What is view? why do we have view?
2012/06/22 面试题
八一慰问活动方案
2014/02/07 职场文书
英语一分钟演讲稿
2014/04/29 职场文书
巾帼建功标兵事迹材料
2014/05/11 职场文书
迟到检讨书
2015/01/26 职场文书