最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

雾看Open(10)——图像金字塔与拉普拉斯金字塔

互联网 admin 3浏览 0评论

雾看Open(10)——图像金字塔与拉普拉斯金字塔

目录

  • 前言
  • 正文
    • 图像金字塔
    • 拉普拉斯金字塔
    • code
  • 参考

前言

• 学习图像金字塔
• 使用图像创建一个新水果:“橘子苹果”
• 将要学习的函数有:cv2.pyrUp(),cv2.pyrDown()。

正文

图像金字塔

所谓图像金字塔(简单来说就是同一图像的不同分辨率的子图集合)
效果图

拉普拉斯金字塔

效果图

相当于是把膨胀后的图减去原始图所得到的图。

code

import cv2 as cv
import numpy as np
from matplotlib import pyplot as pltdef pyramid_demo(image):level = 4temp = image.copy()pyramid_images = []for i in range(level):dst = cv.pyrDown(temp)pyramid_images.append(dst)cv.imshow("pyramid_down_"+str(i+1),dst)temp = dst.copy()return pyramid_imagesdef laplace_demo(image):pyramid_images = pyramid_demo(image)level = len(pyramid_images)for i in range(level-1,-1,-1):if i-1 <0:#这个将一个减去另一个,相当于就可以得到整个图形的边界了。expand = cv.pyrUp(pyramid_images[i],dstsize=image.shape[:2])lpls = cv.subtract(image,expand)cv.imshow("laplace_demo1"+str(i),lpls)else:expand = cv.pyrUp(pyramid_images[i],dstsize=pyramid_images[i-1].shape[:2])cv.imshow("expand", expand)lpls = cv.subtract(pyramid_images[i-1],expand)cv.imshow("laplace_demo2"+str(i),lpls)if __name__ == '__main__':src = cv.imread(r"../../images/lena.jpg")  # 读入图片放进src中# cv.imshow("demo",src)  # 将src图片放入该创建的窗口中pyramid_demo(src)laplace_demo(src)cv.waitKey(0) # 等有键输入或者1000ms后自动将窗口消除,0表示只用键输入结束窗口cv.destroyAllWindows()  # 关闭所有窗口

参考

  1. OpenCV-Python-Tutorial-中文版20160814.pdf

雾看Open(10)——图像金字塔与拉普拉斯金字塔

目录

  • 前言
  • 正文
    • 图像金字塔
    • 拉普拉斯金字塔
    • code
  • 参考

前言

• 学习图像金字塔
• 使用图像创建一个新水果:“橘子苹果”
• 将要学习的函数有:cv2.pyrUp(),cv2.pyrDown()。

正文

图像金字塔

所谓图像金字塔(简单来说就是同一图像的不同分辨率的子图集合)
效果图

拉普拉斯金字塔

效果图

相当于是把膨胀后的图减去原始图所得到的图。

code

import cv2 as cv
import numpy as np
from matplotlib import pyplot as pltdef pyramid_demo(image):level = 4temp = image.copy()pyramid_images = []for i in range(level):dst = cv.pyrDown(temp)pyramid_images.append(dst)cv.imshow("pyramid_down_"+str(i+1),dst)temp = dst.copy()return pyramid_imagesdef laplace_demo(image):pyramid_images = pyramid_demo(image)level = len(pyramid_images)for i in range(level-1,-1,-1):if i-1 <0:#这个将一个减去另一个,相当于就可以得到整个图形的边界了。expand = cv.pyrUp(pyramid_images[i],dstsize=image.shape[:2])lpls = cv.subtract(image,expand)cv.imshow("laplace_demo1"+str(i),lpls)else:expand = cv.pyrUp(pyramid_images[i],dstsize=pyramid_images[i-1].shape[:2])cv.imshow("expand", expand)lpls = cv.subtract(pyramid_images[i-1],expand)cv.imshow("laplace_demo2"+str(i),lpls)if __name__ == '__main__':src = cv.imread(r"../../images/lena.jpg")  # 读入图片放进src中# cv.imshow("demo",src)  # 将src图片放入该创建的窗口中pyramid_demo(src)laplace_demo(src)cv.waitKey(0) # 等有键输入或者1000ms后自动将窗口消除,0表示只用键输入结束窗口cv.destroyAllWindows()  # 关闭所有窗口

参考

  1. OpenCV-Python-Tutorial-中文版20160814.pdf
发布评论

评论列表 (0)

  1. 暂无评论