21xrx.com
2024-05-20 13:01:36 Monday
登录
文章检索 我的文章 写文章
OpenCV实现图片亮度减法的批处理
2023-11-20 17:19:50 深夜i     --     --
OpenCV 图片 亮度减法 批处理

OpenCV是一个开源的计算机视觉库,可以用于处理图像和视频等视觉任务。其中一个常见的图像处理任务是调整图像的亮度。本文将介绍如何使用OpenCV实现图片亮度减法的批处理。

首先,我们需要安装OpenCV库。可以通过在命令行中运行以下命令来安装OpenCV:


pip install opencv-python

安装完成后,我们可以开始编写代码。首先,我们导入所需的库:


import cv2

import os

接下来,我们定义一个函数来实现图片亮度的减法操作:


def adjust_brightness(image, value):

  hsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)

  h, s, v = cv2.split(hsv)

  v = cv2.subtract(v, value)

  v = cv2.clip(v, 0, 255)

  hsv = cv2.merge((h, s, v))

  image = cv2.cvtColor(hsv, cv2.COLOR_HSV2BGR)

  return image

在这个函数中,我们首先将图像从BGR颜色空间转换为HSV颜色空间。然后,我们将HSV图像拆分为三个单独的通道:色调(Hue)、饱和度(Saturation)和亮度(Value)。接下来,我们从亮度通道中减去给定的值,这样就可以调整图像的亮度。然后,我们对亮度通道进行截断,以确保亮度值在0到255之间。最后,我们将调整过的HSV图像合并并将其转换回BGR颜色空间。

接下来,我们定义一个函数来处理整个文件夹中的所有图像:


def batch_brightness_adjustment(input_folder, output_folder, value):

  for filename in os.listdir(input_folder):

    if filename.endswith(".jpg") or filename.endswith(".png"):

      image = cv2.imread(os.path.join(input_folder, filename))

      adjusted_image = adjust_brightness(image, value)

      output_filename = os.path.join(output_folder, filename)

      cv2.imwrite(output_filename, adjusted_image)

在这个函数中,我们使用`os.listdir`函数遍历输入文件夹中的所有文件。然后,我们检查文件扩展名是否是.jpg或.png。如果是,我们使用`cv2.imread`函数读取图像,并将其传递给`adjust_brightness`函数进行亮度调整。然后,我们将调整过的图像写入输出文件夹中。

最后,我们可以调用上述函数来执行图片亮度减法的批处理操作:


input_folder = "input"

output_folder = "output"

value = 50

batch_brightness_adjustment(input_folder, output_folder, value)

在这个示例中,我们假设输入文件夹中有一些.jpg或.png格式的图像,我们将调整它们的亮度减少50。调整后的图像将保存在输出文件夹中。

总结起来,本文介绍了如何使用OpenCV实现图片亮度减法的批处理。我们首先安装了OpenCV库,并编写了函数来实现图像亮度的减法操作。然后,我们编写了另一个函数来处理整个文件夹中的所有图像。最后,我们演示了如何调用这些函数来执行批处理操作。希望本文能帮助初学者了解OpenCV图像处理的基本概念和操作。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复