python opencv 图像处理 - 使用opencv图像二值化(完整代码体验)

最近继续学习了 python opencv 图像二值化处理的方法。
在这里插入图片描述

同时做了 h5 版本的,如上图。可以随时预览,分享一下,希望多少有些帮助吧。

点击在线体验

目前只是个Demo,后面会逐步完善的 :)

.

完整代码

import cv2
# 读取图片。
img = cv2.imread("007.jpeg");
# 转成灰度图片
img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY);
# 二值化
ret,img=cv2.threshold(img, 127, 255, cv2.THRESH_BINARY);

# 显示图像
cv2.imshow("title", img);
# 进程不结束,一直保持显示状态
cv2.waitKey(0);
#销毁所有窗口
cv2.destroyAllWindows();

.

图像二值化

一般可以简单理解,就是把图像转换成黑白两种颜色。(提取图像特征)
在这里插入图片描述

实现步骤

1)转成灰色图片(一般在图像二值化前,需要对图像进行灰度处理)

在这里插入图片描述

img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY);
参数 说明
参数1 img 需要处理的图片
参数2 cv2.COLOR_BGR2GRAY 转换类型

常用的基本转换类型
cv2.COLOR_BGR2BGRA = 0
cv2.COLOR_BGRA2BGR = 1
cv2.COLOR_BGR2RGBA = 2
cv2.COLOR_RGBA2BGR = 3
cv2.COLOR_BGR2RGB = 4
cv2.COLOR_BGRA2RGBA = 5
cv2.COLOR_BGR2GRAY = 6
cv2.COLOR_RGB2GRAY = 7
cv2.COLOR_GRAY2BGR = 8
cv2.COLOR_GRAY2BGRA = 9
cv2.COLOR_BGRA2GRAY = 10
cv2.COLOR_RGBA2GRAY = 11
(主要是彩色图片RGB BGR格式与灰色图片相互转换)

.

2)进行二值化在这里插入图片描述
ret,img=cv2.threshold(img, 127, 255, cv2.THRESH_BINARY);
参数 说明
参数1 img 需要处理的图片
参数2 127 阀值(0-255)与图像像素值进行对比
参数3 255 默认赋值(根据阀值和像素对比,决定是否赋值为该值)
参数4 cv2.THRESH_BINARY 阀值类型

常用的阀值类型
cv2.THRESH_BINARY 当像素值 > 阀值时,为默认值;否则为 0
cv2.THRESH_BINARY_INV 与 cv2.THRESH_BINARY 相反
cv2.THRESH_TRUNC 当像素值 > 阀值时,为默认值;否则为原图片值
cv2.THRESH_TOZERO 当像素值 > 阀值时,为原图片值;否则为 0
cv2.THRESH_TOZERO_INV 与 cv2.THRESH_TOZERO 相反

.

一些实现的效果

最后分享一些二值化后的效果
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/fujian87232/article/details/115712763