代码:
import cv2 as cv
import matplotlib.pyplot as plt
#读取图像
img = cv.imread("../data/images/zidane.jpg")
#显示图像
#2.1 OpenCV
cv.imshow("dili",img)
cv.waitKey(0)
cv.destroyAllWindows()
#2.2 matplotlib
plt.imshow(img[:,:,::-1])
plt.show()
用opencv展示的结果:
用matplotlib展示的结果:
以上是读取彩色图,读取灰度图👇👇:
import cv2
import cv2 as cv
import matplotlib.pyplot as plt
#读取图像
img = cv.imread("../data/images/zidane.jpg",0) #设置成灰度图
#显示图像
#2.1 OpenCV
cv.imshow("dili",img)
cv.waitKey(0)
cv.destroyAllWindows()
#2.2 matplotlib
plt.imshow(img,cmap=plt.cm.gray)#灰度图只有一个通道,不需要翻转
plt.show()
保存灰度图:
cv.imwrite("../data/images/dili.jpg",img)
关于翻转问题:
一般情况下的存储方式:【RGB】
这三个值是不一样的,每个通道是一个独立的灰度图,他们的参数是不一样的。如果是图像,里面的值都是0~255的,图上不是0~255是因为这是随便截的一个三维数组
等opencv(cv.imread)读出来是一个BGR通道,因此需要翻转(plt.imshow(img[:,:,::-1]))。