【发布时间】:2015-05-28 06:24:37
【问题描述】:
我正在将 RGB 图像转换为 YCbCr,然后想要计算拉普拉斯金字塔。颜色转换后,我正在尝试使用 OpenCV 的图像金字塔教程中给出的代码来找到图像的拉普拉斯金字塔,然后重建原始图像。但是,如果我将代码中的级别数增加到更高的数字,例如 10,则重建图像(转换回 RGB 后)看起来与原始图像不同(图像看起来模糊 - 请参阅下面的链接确切的图像)。我不确定为什么会这样。当级别增加或代码有什么问题时会发生这种情况吗?
frame = cv2.cvtColor(frame_RGB, cv2.COLOR_BGR2YCR_CB)
height = 10
Gauss = frame.copy()
gpA = [Gauss]
for i in xrange(height):
Gauss = cv2.pyrDown(Gauss)
gpA.append(Gauss)
lbImage = [gpA[height-1]]
for j in xrange(height-1,0,-1):
GE = cv2.pyrUp(gpA[j])
L = cv2.subtract(gpA[j-1],GE)
lbImage.append(L)
ls_ = lbImage[0]
for j in range(1,height,1):
ls_ = cv2.pyrUp(ls_)
ls_ = cv2.add(ls_,lbImage[j])
ls_ = cv2.cvtColor(ls_, cv2.COLOR_YCR_CB2BGR)
cv2.imshow("Pyramid reconstructed Image",ls_)
cv2.waitKey(0)
参考请看重建图和原图。
【问题讨论】:
-
你为什么要创建拉普拉斯金字塔?你在用它吗?为什么不直接使用原图?
-
我想执行需要拉普拉斯分解的时间过滤。过滤后,我需要将过滤后的输出添加到原始图像(我有,不需要金字塔重建)。现在我的问题是,如果我无法从金字塔中获得好的原始图像,那么我执行的时间过滤也将不正确。因此,我需要一种方法,它可以给我一个金字塔,以便我可以正确执行过滤。
标签: python image opencv image-processing