采集到的彩色图像一般不会直接使用,为了加快处理速度,会转换成灰度图,二值图后再使用,处理后的效果如下:
下面是实现的代码:
# -*- coding: utf-8 -*-
"""
Created on Wed Aug 28 16:39:08 2019
运行环境 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()
领取专属 10元无门槛券
私享最新 技术干货