Py学习  »  Python

在Python中用OpenCv2编写多个图像

Levent Kaya • 4 年前 • 768 次点击  

我有一个数据集里面有很多图像。我的目标是把这些图像转换成灰度。我可以很容易地做到这一点与一个图像,但我需要做的多个图像。这是我的密码;

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模块。谢谢你的帮助。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/56471
 
768 次点击  
文章 [ 1 ]  |  最新文章 4 年前
Thomas
Reply   •   1 楼
Thomas    4 年前

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