目录
这个项目是我在GitHub上看到的,和我之前的
Python+OpenCV实时图像处理
,异曲同工,只不过是我对实时视频的处理,这个是图像处理,功能上感觉这个项目更加全面一些,特学习并分享~
该项目可实现图像的多样化处理,基本上包含了OpenCV模块常用的图像处理功能,非常适合初学者理解和应用,包括:灰度化功能、反转功能、通道分离功能、噪音滤波功能、高斯双边滤波功能、均值偏移滤波功能、图像二值化功能、Canny边缘检测功能、直线检测功能、圆形检测功能、轮廓发现功能和人脸检测功能。
1、灰度化功能
灰度化功能,效果如下所示:
实现代码如下所示:
# 灰度化
def to_gray(self):
src = self.cv_read_img(self.src_file)
if src is None:
return
gray = cv.cvtColor(src, cv.COLOR_BGR2GRAY)
# print("类型", type(gray))
# get_image_info(gray)
self.decode_and_show_dst(gray)
2、反转功能
反转功能,按位取反,白变黑,黑变白,效果如下所示:
实现代码如下所示:
# 反转
def bitwise_not(self):
src = self.cv_read_img(self.src_file)
if src is None:
return
dst = cv.bitwise_not(src)
self.decode_and_show_dst(dst)
3、通道分离功能
通道分离功能,效果如下所示:
实现代码如下所示:
# 通道分离
def channels_split(self):
src = self.cv_read_img(self.src_file)
if src is None:
return
b, g, r = cv.split(src)
merge_image = cv.merge([b, g, r])
"""创建三维数组,0维为B,1维为G,2维为R"""
height, width, channels = src.shape
img = np.zeros([height*2, width*2, channels], np.uint8)
img[0:height, 0:width] = np.expand_dims(b, axis=2)
img[0:height, width:width*2] = np.expand_dims(g, axis=2)
img[height:height*2, 0:width]