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()