一杯清酒邀明月
天下本无事,庸人扰之而烦耳。
posts - 3121,comments - 209,views - 578万

一:什么是二值图像

彩色图像:三个通道0-255,0-255,0-255,所以可以有2^24位空间

灰度图像:一个通道0-255,所以有256种颜色

二值图像:只有两种颜色,黑和白,1白色,0黑色

二:图像二值化

(一)先获取阈值

(二)根据阈值去二值化图像

(三)OpenCV中的二值化方法

四)补充阈值类型

原灰度图像的像素值

1.THRESH_BINARY:过门限的值为最大值,其他值为0

2.THRESH_BINARY_INV:过门限的值为0,其他值为最大值

3.THRESH_TRUNC:过门限的值为门限值,其他值不变

 

4.THRESH_TOZERO:过门限的值不变,其他设置为0

5.THRESH_TOZERO_INV:过门限的值为0,其他不变

三:代码实现全局阈值

 cv.threshold( src, thresh, maxval, type[, dst] ) 

参数说明:

src:原图像。

dst:结果图像。

thresh:当前阈值。

maxVal:最大阈值,一般为255.

thresholdType:阈值类型,主要有下面几种:

复制代码
 1 enum ThresholdTypes {
 2 THRESH_BINARY = 0,
 3 THRESH_BINARY_INV = 1,
 4 THRESH_TRUNC = 2,
 5 THRESH_TOZERO = 3,
 6 THRESH_TOZERO_INV = 4,
 7 THRESH_MASK = 7,
 8 THRESH_OTSU = 8,
 9 THRESH_TRIANGLE = 16
10 };
复制代码

 

(一)全局阈值使用THRESH_OTSU大津法

1    def threshold_demo(image):
2     gray = cv.cvtColor(image,cv.COLOR_RGB2GRAY)   #要二值化图像,要先进行灰度化处理
3     ret, binary = cv.threshold(gray,0,255,cv.THRESH_BINARY | cv.THRESH_OTSU)
4     print("threshold value: %s"%ret)  #打印阈值,前面先进行了灰度处理0-255,我们使用该阈值进行处理,低于该阈值的图像部分全为黑,高于该阈值则为白色
5     cv.imshow("binary",binary)  #显示二值化图像 

threshold value: 140.0  #获取的阈值是140

(二)全局阈值使用THRESH_TRIANGLE(三角形算法)

ret, binary = cv.threshold(gray,0,255,cv.THRESH_BINARY | cv.THRESH_TRIANGLE)

threshold value: 67.0

(三)上面使用大津法和三角形算法都是自动去获取阈值,下面我们自己直接指定阈值

(1)THRESH_BINARY_INV大于阈值的都为0

ret, binary = cv.threshold(gray,127,255,cv.THRESH_BINARY_INV)

threshold value: 127.0

(2)THRESH_TRUNC截断大于127的值都为127

ret, binary = cv.threshold(gray,127,255,cv.THRESH_TRUNC)

(3)THRESH_TOZERO小于阈值的都为0和(1)相反

ret, binary = cv.threshold(gray,127,255,cv.THRESH_TOZERO)

posted on   一杯清酒邀明月  阅读(1667)  评论(0编辑  收藏  举报
编辑推荐:
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
阅读排行:
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示