重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

如何在python中利用opencv把图片转为灰度图-创新互联

这篇文章主要为大家详细介绍了如何在python中利用opencv把图片转为灰度图,文中示例代码介绍的非常详细,具有一定的参考价值,发现的小伙伴们可以参考一下:

创新互联建站专注于钦南网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供钦南营销型网站建设,钦南网站制作、钦南网页设计、钦南网站官网定制、小程序开发服务,打造钦南网络公司原创品牌,更为您提供钦南网站排名全网营销落地服务。python是什么意思

Python是一种跨平台的、具有解释性、编译性、互动性和面向对象的脚本语言,其最初的设计是用于编写自动化脚本,随着版本的不断更新和新功能的添加,常用于用于开发独立的项目和大型项目。

使用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通道的,经过转换之后变成了单通道。

如何在python中利用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.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中利用opencv把图片转为灰度图,如何觉得创新互联网站的内容还不错,欢迎将创新互联网站推荐给身边好友。


名称栏目:如何在python中利用opencv把图片转为灰度图-创新互联
标题来源:http://cqcxhl.cn/article/dsodes.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP