Python:利用cv2模块对图片进行灰度转换

前言:2021曾使用pillow库,即Python Imaging Library处理过彩色照片转黑白的攻略。python:彩色照转黑白照。PIL和opencv不是一个级别的同类型工具,推荐学习使用功能更加强大的opencv。

源码:安装参考上一篇。Python:利用cv2模块识别手势

import cv2

img = cv2.imread("city.png")  # 读取图片
gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)  # 灰度转换

# cv2.imshow("read_img", gray_img)
cv2.waitKey()
cv2.destroyAllWindows()
cv2.imwrite('new_city.png', gray_img)  # 保存图片

最终运行效果:

在这里插入图片描述
微信公众号:玩转测试开发
欢迎关注,共同进步,谢谢!

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我明白了。首先,cv2模块Python中的一个基于OpenCV库的图像处理模块。以下是cv2模块的成员函数和成员属性: 成员函数: - cv2.imread():读取图像文件,返回一个numpy数组表示的图像。 - cv2.imshow():显示一张图像。 - cv2.imwrite():保存一张图像。 - cv2.cvtColor():转换图像颜色空间。 - cv2.GaussianBlur():对图像进行高斯模糊处理。 - cv2.Sobel():计算图像的梯度。 - cv2.threshold():对图像进行阈值化处理。 - cv2.erode():腐蚀图像。 - cv2.dilate():膨胀图像。 - cv2.findContours():查找图像的轮廓。 成员属性: - cv2.IMREAD_COLOR:以RGB格式读取彩色图像。 - cv2.IMREAD_GRAYSCALE:以灰度格式读取图像。 - cv2.IMREAD_UNCHANGED:以原始格式读取图像。 这些函数和属性都是用来处理图像的,以下是一些详细介绍: cv2.imread(): 该函数接受一个图像文件名作为输入,并将其转换为numpy数组表示的图像。它可以读取多种格式的图像文件,如jpeg、png、bmp等。具体使用方法如下: ``` import cv2 # 读取图像 img = cv2.imread('lena.jpg', cv2.IMREAD_COLOR) ``` cv2.imshow(): 该函数用来显示一张图像,将图像显示在一个名为“窗口”的窗口中。具体使用方法如下: ``` import cv2 # 读取图像 img = cv2.imread('lena.jpg', cv2.IMREAD_COLOR) # 显示图像 cv2.imshow('window', img) # 等待按键按下 cv2.waitKey(0) # 销毁窗口 cv2.destroyAllWindows() ``` cv2.imwrite(): 该函数用来保存一张图像,将图像保存为指定格式和名称的文件。具体使用方法如下: ``` import cv2 # 读取图像 img = cv2.imread('lena.jpg', cv2.IMREAD_COLOR) # 保存图像 cv2.imwrite('new_lena.jpg', img) ``` cv2.cvtColor(): 该函数用来转换图像的颜色空间。具体使用方法如下: ``` import cv2 # 读取图像 img = cv2.imread('lena.jpg', cv2.IMREAD_COLOR) # 转换颜色空间 gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) ``` cv2.GaussianBlur(): 该函数用来对图像进行高斯模糊处理,是一种平滑图像的方法。具体使用方法如下: ``` import cv2 # 读取图像 img = cv2.imread('lena.jpg', cv2.IMREAD_COLOR) # 高斯模糊处理 blur_img = cv2.GaussianBlur(img, (5, 5), 0) ``` cv2.Sobel(): 该函数用来计算图像的梯度,可以用来检测图像中的边缘。具体使用方法如下: ``` import cv2 import numpy as np # 读取图像 img = cv2.imread('lena.jpg', cv2.IMREAD_GRAYSCALE) # 计算梯度 sobel_img = cv2.Sobel(img, cv2.CV_32F, 1, 1, ksize=3) ``` cv2.threshold(): 该函数用来对图像进行阈值化处理,可以用来分割图像。具体使用方法如下: ``` import cv2 # 读取图像 img = cv2.imread('lena.jpg', cv2.IMREAD_GRAYSCALE) # 阈值化处理 ret, thresh_img = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY) ``` cv2.erode()和cv2.dilate(): 这两个函数分别用来腐蚀和膨胀图像,可以用来过滤噪声和连接分离的图像区域。具体使用方法如下: ``` import cv2 import numpy as np # 读取图像 img = cv2.imread('lena.jpg', cv2.IMREAD_GRAYSCALE) # 定义结构元素 kernel = np.ones((5, 5), np.uint8) # 腐蚀图像 erode_img = cv2.erode(img, kernel, iterations=1) # 膨胀图像 dilate_img = cv2.dilate(img, kernel, iterations=1) ``` cv2.findContours(): 该函数用来查找图像的轮廓,可以用来检测图像中的物体。具体使用方法如下: ``` import cv2 # 读取图像 img = cv2.imread('lena.jpg', cv2.IMREAD_GRAYSCALE) # 阈值化处理 ret, thresh_img = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY) # 查找轮廓 contours, hierarchy = cv2.findContours(thresh_img, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) ``` cv2.IMREAD_COLOR、cv2.IMREAD_GRAYSCALE和cv2.IMREAD_UNCHANGED: 这三个属性用来控制cv2.imread()函数读取图像的颜色空间。具体使用方法如下: ``` import cv2 # 以RGB格式读取图像 img_color = cv2.imread('lena.jpg', cv2.IMREAD_COLOR) # 以灰度格式读取图像 img_grayscale = cv2.imread('lena.jpg', cv2.IMREAD_GRAYSCALE) # 以原始格式读取图像 img_unchanged = cv2.imread('lena.jpg', cv2.IMREAD_UNCHANGED) ``` 以上就是cv2模块的全部成员函数和成员属性,希望对您有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值