虽然一幅图像在先后经过向下采样、向上采样后,会恢复为原始大小,但是向上采样和向 下采样不是互逆的。也就是说,虽然在经历两次采样操作后,得到的结果图像与原始图像的大 小一致,肉眼看起来也相似,但是二者的像素值并不是一致的。
【例 11.3】使用函数 cv2.pyrDown()和 cv2.pyrUp(),先后将一幅图像进行向下采样、向上采 样,观察采样的结果及结果图像与原始图像的差异。
import cv2
img = cv2.imread("/Users/zhaofeier/Desktop/源代码及图像/chapter11/lena.bmp")
down = cv2.pyrDown(img)
up = cv2.pyrUp(down)
diff = up - img
print("img.shape=",img.shape)
print("down.shape=",down.shape)
print("up.shape=",up.shape)
cv2.imshow("orginal",img)
cv2.imshow("up",up)
cv2.imshow("diff",diff)
cv2.waitKey()
cv2.destroyAllWindows()
从本例的结果可知,原始图像 o 与先后经过向下采样、向上采样得到的结果图像 up,在大 小上是相等的,在外观上是相似的,但是它们的像素值并不一致。
【例 11.4】使用函数 cv2.pyrUp()和 cv2.pyrDown(),先后将一幅图像进行向上采样、向下采 样,观察采样的结果及结果图像与原始图像的差异。
img = cv2.imread("/Users/zhaofeier/Desktop/源代码及图像/chapter11/lena.bmp")
up = cv2.pyrUp(img)
down = cv2.pyrDown(up)
diff = down - img
print("img.shape=",img.shape)
print("up.shape=",up.shape)
print("down.shape=",down.shape)
cv2.imshow("orginal",img)
cv2.imshow("down",down)
cv2.imshow("diff",diff)
cv2.waitKey()
cv2.destroyAllWindows()