"""
视觉:基本API应用(OPENCV)
"""
import cv2
import numpy as np
"""
图像读取方式3. 1.cv2.imread(filename or path, flags)
flags=0:灰度图像;flags=1表示RGB图像;flags=-1表示alpha透明通道图像
"""
import cv2
import numpy as np
"""
图像读取方式3. 1.cv2.imread(filename or path, flags)
flags=0:灰度图像;flags=1表示RGB图像;flags=-1表示alpha透明通道图像
"""
img = cv2.imread('000000005620.jpg')
# Gray是灰度图像;除以255是将像素转为0-1区间的值
Gray = img[:, :, 2]*0.3 + img[:, :, 1] * 0.59 + img[:, :, 0] * 0.11
gray = Gray/255
imgray = cv2.imread('000000005620.jpg', 0)
# 加载透明通道图像
imalpha = cv2.imread('000000005620.jpg', -1)
print(gray)
if img is None:
print('Image read error!')
else:
# 图像可视化
cv2.imshow('RGB of image', img)
# 保存RGB图像
cv2.imwrite('RGB.png', img)
cv2.imshow('Gray of image', imgray)
# 保存灰度图像
cv2.imwrite('hd.png', imgray)
cv2.imshow('alpha of image', imalpha)
# 保存透明通道图像
cv2.imwrite('alpha.png', imalpha)
# cv2.imshow('Gray of image', gray)
print(type(imalpha), imalpha.shape)
# 等待读者操作:让图像显示暂停delay毫秒,当delay秒设置为0的时候,表示永远,当键盘任意输入的时候,结束暂停
cv2.waitKey(0)
# 窗口对象销毁
cv2.destroyAllWindows()
RGB:

Gray:

alpha(透明通道图像只有加载.png格式并带有净色的图像才会显示透明):

E:\myprogram\anaconda\envs\python3.6\python.exe E:/XXX/OPENCV/CV.py
\[0.96862745 0.96078431 0.96470588 ... 0.97254902 0.97254902 0.97254902
0.96862745 0.96078431 0.96078431 ... 0.94901961 0.95686275 0.96078431
0.97254902 0.96470588 0.96470588 ... 0.98431373 0.98431373 0.98431373
...
0.94117647 0.94117647 0.94117647 ... 0.95686275 0.95686275 0.95686275
0.94901961 0.94901961 0.94901961 ... 0.95294118 0.95294118 0.95294118
0.96078431 0.96078431 0.96078431 ... 0.9372549 0.9372549 0.9372549 \]
<class 'numpy.ndarray'> (612, 612, 3)
Process finished with exit code 0
import matplotlib.pyplot as plt
import cv2
import numpy as np
"""
图像显示除了使用opencv,还可以采用matplotlib.pyplot
"""
img = cv2.imread('000000005620.jpg', 1)
img2 = np.zeros_like(img, dtype=img.dtype)
# 将opencv读取图像的方式转化为plt读取图像方式--->
# BGR---RGB
img2[:,:,0] = img[:,:,2]
img2[:,:,1] = img[:,:,1]
img2[:,:,2] = img[:,:,0]
print(img2.shape)
plt.imshow(img)
plt.show()
RGB & BGR
