python - 在 Python 中使用 OpenCv2 编写多个图像

标签 python opencv image-processing

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

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 模块的初学者。现在已经感谢您的帮助。

最佳答案

'/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)

关于python - 在 Python 中使用 OpenCv2 编写多个图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60761218/

相关文章:

Python:在变量中存储路径;参数错误

Python - 将字段和标签添加到嵌套的 json 文件

image-processing - 控制流程 Python OpenCv : Why cv2. setMouseCallback 不在循环内?

android如何在jpeg上创建鱼眼效果

image-processing - OpenCV 显示 2 channel 图像(光流)

Python - 使用 ffplay 播放视频以更高分辨率显示文件

python - 你能用 CSS 设计 Tkinter GUI 吗?

c++ - 在不释放内存的情况下释放 cv::Mat

python - 如何可靠地检测条码的 4 个角?

c++ - 使用 numericupdown 控制图像的亮度