以下参照OpenCV官网进行OpenCV的学习。使用的环境为jupyter notebook. 代码注释中已经有了详细的说明,因此不再进行文字赘述。
import numpy as np
import cv2
# Load an color image in grayscale
# -1 represents IMREAD_COLOR -- Loads a clore image neglecting any transparency.
# 0 represents IMREAD_GRAYSCALE -- Loads image in grayscale mode.
# 1 represents IMREAD_UNCHANGED -- Loads image as such including alpha channel.
img1 = cv2.imread('download.jpg', -1)
img2 = cv2.imread('download.jpg', 0)
img3 = cv2.imread('download.jpg', 1)
cv2.imshow('image1', img1)
cv2.imshow('image2', img2)
cv2.imshow('image3', img3)
cv2.waitKey(0)
cv2.destroyAllWindows()
# Change the window size instead of automatic fitting
cv2.namedWindow('image', cv2.WINDOW_NORMAL) # WINDOW_AUTOSIZE is Default
cv2.imshow('image', img1)
cv2.waitKey(0)
cv2.destroyAllWindows()
# Write an image named wimage.png
cv2.imwrite('wimage.png', img1)
img4 = cv2.imread('wimage.png', 0)
cv2.imshow('wimage', img4)
cv2.waitKey(0)
cv2.destroyAllWindows()
# Sum them up
# Load an image in grayscale, display it, save the iamge if you press 's' and exit
# or simply exit without saving if you press ESC key
img = cv2.imread('download.jpg', 0)
cv2.imshow('image', img)
k = cv2.waitKey(0) & 0xFF
if k == 27:
cv2.destroyAllWindows()
elif k == ord('s'):
cv2.imwrite('down-gray.png', img)
cv2.destroyAllWindows()
# Using matplotlib
# Color image loaded by OpenCV is in BGR mode while Matplotlib displays in RGB mode.
import numpy as np
import cv2
import matplotlib.pyplot as plt
img = cv2.imread('download.jpg', 0)
plt.imshow(img, cmap='gray', interpolation = 'bicubic')
plt.xticks([]), plt.yticks([]) # to hide tick values on X and Y axis
plt.show()
# Convertion of color image between OpenCV and Matplotlib
img5 = cv2.imread('download.jpg', 1)
cv2.imshow('original image', img5)
#print(img5)
# img6 = img5[::,::-1]
img6 = img5[:,:,::-1]
#print()
#print(img6)
plt.subplot(121); plt.imshow(img5)
plt.subplot(122); plt.imshow(img6)
plt.show()
cv2.waitKey(0)
cv2.destroyAllWindows()