opencv最全图像阈值threshold处理方式汇总Python实现

不点赞白嫖的都是流氓

本文从一个简单的例子进行扩展解释opencv实现的基础阈值处理的所有方式,用的图片是三通道彩色图片,单通道当然也可以进行阈值处理,很多教程都是处理单通道彩色图片,所以我给大家换个口味
原图
在这里插入图片描述
请看代码

import cv2

img = cv2.imread("../data/1.jpg")
t, dst = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY)  # t表示返回的阈值
# 这个函数的使用关键是第四个参数的理解上面,第四个参数表示阈值分割的类型,
# 不同的方式有不同的分割效果,接下来会一一解释
cv2.imshow('img', img)
cv2.imshow('dst', dst)
cv2.waitKey()
cv2.destroyAllWindows()
cv2.imwrite('../data/thre.jpg', dst)

方式一,二值化阈值处理(cv2.THRESH_BINARY),定义如下
将图像内所有像素值大于阈值的像素点的值设为255;将图像内所有像素值小于或等于阈值的像素点的值设为0
示例结果
在这里插入图片描述

方式二,反二值化阈值处理(cv2.THRESH_BINARY_INV),定义如下
将图像内所有像素值大于阈值的像素点的值设为0;将图像内所有像素值小于或等于阈值的像素点的值设为255
示例结果
在这里插入图片描述
方式三,截断阈值化处理(cv2.THRESH_TRUNC),定义如下
将图像中大于阈值的像素点的值设定为阈值,小于或者等于该阈值的像素点的值保持不变
效果图
在这里插入图片描述
方式四,超阈值零处理(cv2.THRESH_TOZERO_INV),定义如下
将图像中大于阈值的像素点的值设定为0,小于或者等于该阈值的像素点的值保持不变
效果图
在这里插入图片描述
方式五,低阈值零处理(cv2.THRESH_TOZERO),定义如下
将图像中大于阈值的像素点的值保持不变,小于或者等于该阈值的像素点的值设定为0
效果图如下
在这里插入图片描述

该阈值处理的方式就有这五种,知道这些只是你进入图像处理领域的入门而已,要做到灵活使用还需要继续学习,做到融会贯通才行,好啦,拜拜

我们总会说自己是为了未来,那么未来又在多远的未来?

发布了45 篇原创文章 · 获赞 24 · 访问量 3431

猜你喜欢

转载自blog.csdn.net/my_name_is_learn/article/details/103974833