1 读取图像
- API
cv.imread()
参数:
- 读取方式的标志
- cv.IMREAD*COLOR:以彩色模式加载图像,任何图像的透明度都将被忽略。这是默认参数。
- cv.IMREAD*GRAYSCALE:以灰度模式加载图像
- cv.IMREAD_UNCHANGED:包括alpha通道的加载图像模式。 可以使用1,0,-1来代替上面三个标志
- 参考代码
import numpy as np
import matplotlib.pyplot as plt
import cv2 as cv
img = cv.imread("20201226153641.jpg", 0)
注意:如果加载的路径有错误,不会报错,会返回一个None值
2 显示图像
-
API
cv.imshow()
注意:在调用显示图像的API后,要调用cv.waitKey()给图像绘制留下时间,否则窗口会出现无响应情况,并且图像无法显示出来 -
参考代码
cv.imshow("img", img)
cv.waitKey(0)
plt.imshow(img[:,:,::-1])
3 保存图像
- API
cv.imwrite()
- 参考代码
cv.imwrite('pp.png',img)
4 总结
-
*加载灰度图像,显示图像。使用matplotlib进行显示,转换过程如下:
-
使用matplotlib显示的原始图片
import numpy as np
import matplotlib.pyplot as plt
import cv2 as cv
img = cv.imread("20201226153641.jpg")
plt.imshow(img[:, :, ::-1])
plt.show()
- 以灰度模式加载图像,cv.IMREAD*GRAYSCALE(0),此方法色泽存在问题。
import numpy as np
import matplotlib.pyplot as plt
import cv2 as cv
img = cv.imread("20201226153641.jpg", 0)
plt.imshow(img)
plt.show()
- 使用cmap=’gray’进行更改,存在问题
import numpy as np
import matplotlib.pyplot as plt
import cv2 as cv
img = cv.imread("20201226153641.jpg")
plt.imshow(img, cmap='gray')
plt.show()
- 正确显示灰度图的方法是显示三通道的灰度图
import numpy as np
import matplotlib.pyplot as plt
import cv2 as cv
img = cv.imread("20201226153641.jpg", 0)
plt.imshow(img, cmap='gray')
plt.show()
- 直接使用opencv转换灰度图
import numpy as np
import matplotlib.pyplot as plt
import cv2 as cv
img = cv.imread("20201226153641.jpg", 0)
cv.imshow("img", img)
cv.waitKey(0)
Original: https://blog.csdn.net/m0_45325271/article/details/116118247
Author: 谁偷了我的小可爱
Title: 使用matplotlib和opencv将彩色图转换为灰度图
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/766815/
转载文章受原作者版权保护。转载请注明原作者出处!