博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python3与OpenCV3.3 图像处理(十六)--图像金字塔
阅读量:6416 次
发布时间:2019-06-23

本文共 1236 字,大约阅读时间需要 4 分钟。

一、什么是图像金字塔

图像金字塔是图像多尺度表达的一种,是一种以多分辨率来解释图像的有效但概念简单的结构。一幅图像的金字塔是一系列以金字塔形状排列的分辨率逐步降低,且来源于同一张原始图的图像集合。其通过梯次向下采样获得,直到达到某个终止条件才停止采样。我们将一层一层的图像比喻成金字塔,层级越高,则图像越小,分辨率越低。(来源于百度)

二、图像金字塔类型

  • 高斯金字塔
  • 拉普拉斯金字塔

 

三、示例代码

 

 

import cv2 as cvimport numpy as npdef pyramin(img):    """高斯金字塔"""    #图像金字塔层数    level=3    #复制图片    tmp=img.copy()    pyramin_img=[]    for i in range(level):        dst=cv.pyrDown(tmp)        pyramin_img.append(dst)        cv.imshow("pyramid_down_"+str(i),dst)        tmp=dst.copy();    return pyramin_imgdef lapalian(img):    """拉普拉斯金字塔"""    pyramid_images=pyramin(img)    level=len(pyramid_images)    #从高到低进行循环    for i in range(level-1,-1,-1):        if (i-1)<0:            #如果是第一幅图,则用原图进行计算            exapand = cv.pyrUp(pyramid_images[i], dstsize=img.shape[:2])            lpls = cv.subtract(img, exapand)            cv.imshow("lpls_down_" + str(i), lpls)        else:            exapand=cv.pyrUp(pyramid_images[i],dstsize=pyramid_images[i-1].shape[:2])            lpls=cv.subtract(pyramid_images[i-1],exapand)            cv.imshow("lpls_down_"+str(i),lpls)#图像长宽必须是2的倍数,即2的n次方,如果不是将会报错src=cv.imread('15.jpg')cv.imshow("def",src)cv.waitKey(0)cv.destroyAllWindows()
 

 

觉得不错打赏一下

 

转载于:https://www.cnblogs.com/BMFramework/p/10017279.html

你可能感兴趣的文章
ES6 的功能侦测库 ES-Checker
查看>>
从DML角度看ADS和ORACLE的区别
查看>>
ruby on rails 入门注意事项
查看>>
关于LRU算法
查看>>
JS URL工具类
查看>>
不要轻易评判别人
查看>>
图像处理------基于阈值模糊
查看>>
PostgreSQL新手入门
查看>>
[汇编] 在屏幕中央显示时钟
查看>>
8天玩转并行开发——第二天 Task的使用
查看>>
Hadoop使用(二)
查看>>
如何写gdb命令脚本
查看>>
小心使用DCOM
查看>>
Android ListView展示不同的布局
查看>>
oracle 表(下)
查看>>
iOS宏(自己使用,持续更新)
查看>>
瀑布流效果
查看>>
手把手玩转win8开发系列课程(3)
查看>>
NGINX引入线程池 性能提升9倍
查看>>
一次CMS GC的调优工作
查看>>