欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 手游 > opencv 阈值threshold 二值化,反二值化,截断,阈值取零,阈值反取零 python版实现

opencv 阈值threshold 二值化,反二值化,截断,阈值取零,阈值反取零 python版实现

2025/3/12 19:02:37 来源:https://blog.csdn.net/jwbabc/article/details/146088454  浏览:    关键词:opencv 阈值threshold 二值化,反二值化,截断,阈值取零,阈值反取零 python版实现

1、图片展示效果

2、方法定义

二值化 (Binary Thresholding)


描述: 将图像中的每个像素值与设定的阈值进行比较。如果像素值大于或等于阈值,则将其设置为最大值(通常是255),否则设置为0。

应用: 常用于图像分割,将图像转换为黑白图像。

反二值化 (Inverse Binary Thresholding)


描述: 与二值化相反,将图像中的每个像素值与设定的阈值进行比较。如果像素值大于或等于阈值,则将其设置为0,否则设置为最大值(通常是255)。

应用: 用于反转图像的黑白区域。

截断 (Truncation)


描述: 将图像中的每个像素值与设定的阈值进行比较。如果像素值大于阈值,则将其设置为阈值,否则保持不变。
应用: 用于限制图像中像素值的最大值。

阈值取零 (To Zero)


描述: 将图像中的每个像素值与设定的阈值进行比较。如果像素值小于阈值,则将其设置为0,否则保持不变。

应用: 用于将低于阈值的像素值去除。

阈值反取零 (To Zero Inverted)


描述: 将图像中的每个像素值与设定的阈值进行比较。如果像素值大于或等于阈值,则将其设置为0,否则保持不变。

应用: 用于将高于或等于阈值的像素值去除。

3、安装依赖

pip install opencv-python
pip install opencv-python-headless matplotlib

4、代码

import cv2
import numpy as np
import matplotlib.pyplot as plt# 读取图片
image = cv2.imread('D:\\img\\test.jpeg', cv2.IMREAD_GRAYSCALE)# 二值化
_, binary_image = cv2.threshold(image, 128, 255, cv2.THRESH_BINARY)# 反二值化
_, inverted_binary_image = cv2.threshold(image, 128, 255, cv2.THRESH_BINARY_INV)# 截断
truncated_image = cv2.threshold(image, 128, 255, cv2.THRESH_TRUNC)[1]# 阈值取零
to_zero_image = cv2.threshold(image, 128, 255, cv2.THRESH_TOZERO)[1]# 阈值反取零
to_zero_inv_image = cv2.threshold(image, 128, 255, cv2.THRESH_TOZERO_INV)[1]# 显示结果
images = [image, binary_image, inverted_binary_image, truncated_image, to_zero_image, to_zero_inv_image]
titles = ['Original Image', 'Binary Image', 'Inverted Binary Image', 'Truncated Image', 'To Zero Image', 'To Zero Inverted Image']plt.figure(figsize=(12, 8))
for i in range(6):plt.subplot(2, 3, i + 1)plt.imshow(images[i], cmap='gray')plt.title(titles[i])plt.axis('off')plt.show()

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词