使用matplotlib和opencv将彩色图转换为灰度图

1 读取图像

  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 显示图像

  1. API cv.imshow() 注意:在调用显示图像的API后,要调用cv.waitKey()给图像绘制留下时间,否则窗口会出现无响应情况,并且图像无法显示出来

  2. 参考代码


cv.imshow("img", img)
cv.waitKey(0)

plt.imshow(img[:,:,::-1])

3 保存图像

  1. API
    cv.imwrite()
  2. 参考代码
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()

使用matplotlib和opencv将彩色图转换为灰度图
  1. 以灰度模式加载图像,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()

使用matplotlib和opencv将彩色图转换为灰度图
  1. 使用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()

使用matplotlib和opencv将彩色图转换为灰度图
  1. 正确显示灰度图的方法是显示三通道的灰度图
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()

使用matplotlib和opencv将彩色图转换为灰度图
  • 直接使用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/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球