python opencv将图片转为灰度图的方法示例

 更新时间:2019年07月31日 10:23:39   作者:修炼之路  
这篇文章主要介绍了python opencv将图片转为灰度图的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

使用opencv将图片转为灰度图主要有两种方法,第一种是将彩色图转为灰度图,第二种是在使用OpenCV读取图片的时候直接读取为灰度图

将彩色图转为灰度图

import cv2
import numpy as np

if __name__ == "__main__":
  img_path = "timg.jpg"
  img = cv2.imread(img_path)
  #获取图片的宽和高
  width,height = img.shape[:2][::-1]
  #将图片缩小便于显示观看
  img_resize = cv2.resize(img,
  (int(width*0.5),int(height*0.5)),interpolation=cv2.INTER_CUBIC)
  cv2.imshow("img",img_resize)
  print("img_reisze shape:{}".format(np.shape(img_resize)))

  #将图片转为灰度图
  img_gray = cv2.cvtColor(img_resize,cv2.COLOR_RGB2GRAY)
  cv2.imshow("img_gray",img_gray)
  print("img_gray shape:{}".format(np.shape(img_gray)))
  cv2.waitKey()

img_reisze shape:(337, 600, 3)
img_gray shape:(337, 600)

使用opencv读取图片的时候,默认使用的是BGR来读取图片的,可以看到原始读取的图片是3通道的,经过转换之后变成了单通道。

直接将图片采用灰度图的方式进行读取

import cv2
import numpy as np

if __name__ == "__main__":
  img_path = "timg.jpg"
  img = cv2.imread(img_path)
  #获取图片的宽和高
  width,height = img.shape[:2][::-1]
  #将图片缩小便于显示观看
  img_resize = cv2.resize(img,
  (int(width*0.5),int(height*0.5)),interpolation=cv2.INTER_CUBIC)
  cv2.imshow("img",img_resize)
  print("img_reisze shape:{}".format(np.shape(img_resize)))

  #读取灰度图
  img_gray = cv2.imread(img_path,cv2.IMREAD_GRAYSCALE)
  #将图片缩小便于显示观看
  img_gray = cv2.resize(img_gray,
  (int(width*0.5),int(height*0.5)),interpolation=cv2.INTER_CUBIC)
  cv2.imshow("img_gray",img_gray)
  print("img_gray shape:{}".format(np.shape(img_gray)))
  cv2.waitKey()

img_reisze shape:(337, 600, 3)
img_gray shape:(337, 600)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Python的Flask框架中web表单的教程

    Python的Flask框架中web表单的教程

    这篇文章主要介绍了Python的Flask框架中web表单的教程,表单是学习各个web框架中的基础知识,需要的朋友可以参考下
    2015-04-04
  • Python通过Selenium获取Web页面信息的全指南

    Python通过Selenium获取Web页面信息的全指南

    Selenium 是一个功能强大的自动化测试工具,但它也可以用于 web 页面信息的抓取和分析,下面小编就来和大家详细介绍一下具体是实现方法吧
    2025-04-04
  • Python利用字典树实现猎词游戏

    Python利用字典树实现猎词游戏

    猎词(word hunt)是一类很常见的游戏,给你一张字母组成的表,然后让你在这些字母中尽可能多的去寻找单词。这类游戏用字典树就能轻松完成,本文就来具体讲讲实现步骤,需要的可以参考一下
    2022-06-06
  • python 使用enumerate()函数详解

    python 使用enumerate()函数详解

    enumerate()是python的内置函数,将一个可遍历iterable数据对象,组合为一个索引序列,同时列出数据和数据下标,一般用在for循环当中,这篇文章主要介绍了python 使用enumerate()函数,需要的朋友可以参考下
    2022-11-11
  • 详解使用pymysql在python中对mysql的增删改查操作(综合)

    详解使用pymysql在python中对mysql的增删改查操作(综合)

    本篇文章主要介绍了使用pymysql在python中对mysql的增删改查操作,通过pymysql向数据库进行查删增改,具有一定的参考价值,有兴趣的可以了解一下。
    2017-01-01
  • Python对列表中的各项进行关联详解

    Python对列表中的各项进行关联详解

    这篇文章主要给大家介绍了关于Python对列表中各项进行关联的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面跟着小编来一起学习学习吧。
    2017-08-08
  • python实现区间合并的方法

    python实现区间合并的方法

    区间合并是指将重叠的区间合并为一个或多个不重叠的区间,本文主要介绍了python实现区间合并的方法,文中通过代码介绍的很详细,感兴趣的可以了解一下
    2024-02-02
  • Python制作微信好友背景墙教程(附完整代码)

    Python制作微信好友背景墙教程(附完整代码)

    这篇文章主要介绍了Python制作微信好友背景墙教程(附完整代码),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • Python urlopen()函数 示例分享

    Python urlopen()函数 示例分享

    urlopen(url, data=None, proxies=None) 即创建一个表示远程url的类文件对象,然后像本地文件一样操作这个类文件对象来获取远程数据。参数url表示远程数据的路径,一般是网址;参数data表示以post方式提交到url的数据;参数proxies用于设置代理。
    2014-06-06
  • 聊聊Pytorch torch.cat与torch.stack的区别

    聊聊Pytorch torch.cat与torch.stack的区别

    这篇文章主要介绍了Pytorch torch.cat与torch.stack的区别说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05

最新评论