【问题标题】:Writing multiple images with OpenCv2 in Python在 Python 中使用 OpenCv2 编写多个图像
【发布时间】:2020-03-20 00:32:46
【问题描述】:

我得到了一个充满图像的数据集。我的目标是将这些图像转换为灰度。我可以用一张图片轻松地做到这一点,但我需要用多张图片来做。这是我的代码;

import cv2
import glob

path = "/path/*.jpg"

for file in glob.glob(path):
    img = cv2.imread(file)
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    cv2.imshow('Gray image', gray)
    cv2.imwrite('/path/cat' + '_gray.jpg', gray)

当我运行这个脚本时,它只转换一个图像,但我的目标是转换路径中的所有图像。我真的是图像处理和 OpenCv2 模块的初学者。现在已经感谢您的帮助。

【问题讨论】:

  • This 可能会有所帮助。首先获取所有文件的列表,然后进行颜色转换(据我所知,您做得正确)。
  • 太棒了!我想会的。

标签: python opencv image-processing


【解决方案1】:

'/path/cat' + '_gray.jpg' 总是给你/path/cat_gray.jpg,不管输入文件名是什么。

您可能希望在此处使用原始文件名的某些部分,您可以使用 os.path 模块中的函数找到它们。

例如:

import cv2
import glob
import os.path

path = "/path/*.jpg"

for file in glob.glob(path):
    img = cv2.imread(file)
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    cv2.imshow('Gray image', gray)
    basename = os.path.basename(file)  # e.g. MyPhoto.jpg
    name = os.path.splitext(basename)[0]  # e.g. MyPhoto
    cv2.imwrite('/path/' + name + '_gray.jpg', gray)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-21
    • 2020-12-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多