在使用OpenCV显示图像时,直接使用cv2.imshow()可能会使图像显示不全。如下所示:
import cv2
image = cv2.imread('image.jpg')
cv2.imshow('Image', image)
cv2.waitKey(0)
cv2.destroyAllWindows()
自然,可以选择使用缩放图像,来使图像按特定大小显示:
import cv2
image = cv2.imread('image.jpg')
cv2.namedWindow('Image', cv2.WINDOW_NORMAL)
cv2.resizeWindow('Image', 800, 600)
cv2.imshow('Image', image)
cv2.waitKey(0)
cv2.destroyAllWindows()
图像就变成了这么大:
这种方式在指定图像大小的时候,可能会使图像失真。
也可以使用自适应窗口大小:
import cv2
image = cv2.imread('image.jpg')
cv2.namedWindow('Image', cv2.WINDOW_NORMAL)
cv2.imshow('Image', image)
cv2.waitKey(0)
cv2.destroyAllWindows()
显示效果如下:
除了OpenCV,还可以使用matplotlib等库进行显示,但是,由于OpenCV读取时是BGR模型,在显示时要转换为RGB。示例如下:
import cv2
from pylab import imshow, show
image = cv2.imread('image.jpg')
b, g, r = cv2.split(image)
image = cv2.merge([r, g, b])
imshow(image, cmap='viridis')
show()