opencv 使用高斯金字塔和拉普拉斯金字塔出错
import cv2 as cv
import numpy as np
#构建金字塔
def gauss_image(image):
#设置采样次数
level = 3
img = image.copy()
gauss_images = []
gauss_images.append(G0)
cv.imshow('Gauss_0',G0)
for i in range(level):
dst = cv.pyrDown(img)
gauss_images.append(dst)
cv.imshow(f'Gauss_{i + 1}',dst)
img = dst.copy()
return gauss_images
#构建拉普拉斯金字塔
def laplian_image(image):
gauss_images = gauss_image(image)
level = len(gauss_images)
for i in range(level-1,0,-1):
expand = cv.pyrUp(gauss_images[i],dstsize=gauss_images[i-1].shape[:2])
lpls = cv.subtract(gauss_images[i-1],expand)
cv.imshow(f'Laplacian_{level-i}',lpls)
#为了构建最上面一层,需要先进行下采样再进行上采样
expand = cv.pyrUp(cv.pyrDown(gauss_images[3]),dstsize=gauss_images[3].shape[:2])
lpls = cv.subtract(gauss_images[3],expand)
cv.imshow(f'Laplacian_{0}',lpls)
G0 = cv.imread("E:\Python Exercise\pictures\wen.png")
laplian_image(G0)
cv.waitKey(0)
cv.destroyAllWindows()
error: (-215:Assertion failed) std::abs(dsize.width - ssize.width2) == dsize.width % 2 && std::abs(dsize.height - ssize.height2) == dsize.height % 2 in function 'cv::pyrUp_'
搜出来说图像金字塔所选用的图像必须是正方形,上传非正方形时就会报错,但是我刚入门不知道改哪个地方
希望在各位指导下能够成果运行程序