python opencv 图像灰度化_Opencv-Python彩图转化为灰度图-二值图

采集到的彩色图像一般不会直接使用,为了加快处理速度,会转换成灰度图,二值图后再使用,处理后的效果如下:

b219ebc4b74543a9ed3f7dd07340fa87b9011466.jpeg?token=4c2444f2755f8c3db7c8fbef25a2fb81&s=528264ACECD68DF91AB9F08A0300D0A1彩图-灰度图-二值图.jpg

下面是实现的代码:

# -*- coding: utf-8 -*-

"""

运行环境 python==3.6 opencv-contrib-python== 4.1 win10系统

第一行 “ # -*- coding: utf-8 -*- ” 告诉Python解释器,按照UTF-8编码读取源代码

"""

#图像获取

import cv2

import numpy as np

dir1='lena.jpg' #读取要处理的图片

image=cv2.imread(dir1)

image1 = cv2.bitwise_not(image) #函数cv2.bitwise_not可以实现像素点各通道值取反

cv2.imshow("image", image)

cv2.imshow("image1", image1)

#

#灰度化

# 将彩图转化为灰度图。彩图是三通道的,灰度图是单通道的,因而使用灰度图可以减少计算量,提高图像处理速度。

imgray = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY) #彩色转灰度

cv2.imshow("imgray", imgray)

#二值化

# 将图像上的像素点的灰度值设置为0或255,整个图像呈现出明显的黑白效果,使图像中数据量大为减少,从而能凸显出目标的轮廓。

thresh=120

ret,binary = cv2.threshold(imgray,thresh,255,cv2.THRESH_BINARY) #输入灰度图,输出二值图

cv2.imshow('binary',binary)

binary1 = cv2.bitwise_not(binary) #取反

cv2.imshow('binary1',binary1)

cv2.waitKey(0)

cv2.destroyAllWindows()

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值