OpenCV加载和显示图像
1. Python代码
代码的功能很基础,所以注释也很基础。具体的内容可以查看OpenCV 3的官方文档。
运行代码需要安装Python和导入OpenCV。在Python命令行输入“import cv2”,如果没有错误说明导入成功。代码如下:
################################################################################
print 'Display Image Using Matplotlib'
import cv2
import numpy as np
imgFile = 'images/face.jpg'
# load an original image
img = cv2.imread(imgFile,1)
# image type is None if image path is wrong
print type(img)
# display an original image
cv2.imshow('Original Image',img)
# load a color image
imgRgb = cv2.imread(imgFile, cv2.IMREAD_COLOR)
# load an image including alpha channel
imgAlpha = cv2.imread(imgFile, cv2.IMREAD_UNCHANGED)
# load a gray image
imgGray = cv2.imread(imgFile, cv2.IMREAD_GRAYSCALE)
# print image shape: (rows, cols, channels)
print 'RGB shape: ', imgRgb.shape
print 'ARGB shape:', imgAlpha.shape
print 'Gray shape:', imgGray.shape
# print image type
print 'img.dtype: ', img.dtype
# print image size
print 'img.size: ', img.size
# display resized square image
cv2.namedWindow('Resized Image', cv2.WINDOW_NORMAL)
cv2.imshow('Resized Image', imgGray)
k = cv2.waitKey(0)
if 27 == k: # wait for ESC key to exit
cv2.destroyAllWindows()
elif ord('s') == k: # wait for 's' key to save and exit
# write an image
cv2.imwrite('face_gray.jpg',imgGray)
cv2.destroyAllWindows()
print 'Goodbye!'
################################################################################
print 'Display Image Using Matplotlib'
# warning: opencv loads images in BGR mode, but matplotlib displays them in RGB mode
from matplotlib import pyplot as plt
# load a gray image
img = cv2.imread(imgFile,0)
plt.imshow(img, cmap = 'gray', interpolation = 'bicubic')
# hide tick values on X and Y axis
plt.xticks([]), plt.yticks([])
plt.show()
2. 运行结果
实验分两个部分,中间需要按键操作才能继续。结果如下:
结语
整个Python OpenCV跑下来真正能直接用的代码不多,大多数Demo在现实中都会引入很多不确定性的噪声。先打好基础吧。