一、依赖库
pip install opencv-python
二、二值化说明
在这个脚本中,我们假设去噪后的图像已经是灰度图像。如果去噪后的图像是彩色图像,需要先将其转换为灰度图像, 可以使用cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)来实现。 cv2.threshold函数用于进行二值化操作。 它接受四个参数:输入图像、阈值、最大值(通常设置为255,表示白色)和二值化类型(在这个例子中使用cv2.THRESH_BINARY)。 函数返回两个值:第一个是用于二值化的实际阈值(在这个例子中我们不需要,所以使用_来忽略它),第二个是二值化后的图像。 最后,使用cv2.imwrite函数将二值化后的图像保存到指定的文件夹中。
三、二值化实现
import os
import cv2
# 设置去噪后的图像文件夹路径和二值化后的图像保存文件夹路径
denoised_images_folder = "imgs4/" # 替换为去噪后图像文件夹的实际路径
binarized_images_folder = "imgs5/" # 二值化后图像保存文件夹路径
# 确保二值化后的图像文件夹存在
if not os.path.exists(binarized_images_folder):
os.makedirs(binarized_images_folder)
# 设置二值化阈值
threshold_value = 128 # 你可以根据实际情况调整这个阈值
# 遍历去噪后的图像文件夹中的所有图像文件
for filename in os.listdir(denoised_images_folder):
if filename.endswith(".jpg") or filename.endswith(
".png"
): # 根据需要添加其他图像格式
# 读取去噪后的图像
image_path = os.path.join(denoised_images_folder, filename)
# 假设去噪后的图像是灰度图像
image = cv2.imread(image_path, cv2.IMREAD_GRAYSCALE)
# 对图像进行二值化操作
_, binarized_image = cv2.threshold(
image, threshold_value, 255, cv2.THRESH_BINARY
)
# 保存二值化后的图像到新的文件夹
output_path = os.path.join(binarized_images_folder, filename)
cv2.imwrite(output_path, binarized_image)
print(f"Binarized and saved {filename} to {output_path}")
四、二值结果
二值前:
二值后:
单图对比(前后):