将RGB转换为灰度python

问题描述 投票:0回答:1

我已经将RGB图像转换为灰度图像,下面是代码

import numpy
import glob
import cv2
import csv
import math
import os
import string
from skimage.color import rgb2gray
from PIL import Image

mylist = [f for f in glob.glob("*.jpg")]

for imagefile in mylist:
    img_color = cv2.imread(imagefile)
    image = cv2.resize(img_color,(100,100),interpolation = cv2.INTER_AREA)
    img_gray = rgb2gray(image)
    img_gray.flatten()

我没有将新图像保存到我的当前文件夹中。谁能帮我这个忙。

python python-3.x list opencv python-imaging-library
1个回答
0
投票
我认为是因为skimage。你为什么不只使用opencv。

import numpy import glob import cv2 import csv import math import os import string from skimage.color import rgb2gray from PIL import Image mylist = [f for f in glob.glob("*.jpg")] for imagefile in mylist: img_color = cv2.imread(imagefile) image = cv2.resize(img_color,(100,100),interpolation = cv2.INTER_AREA) img_gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) #img_gray = rgb2gray(image) img_gray.flatten() cv2.imwrite("gray"+imagefile,img_gray)


0
投票
根据我的说法,使用Pillow进行此任务将是最有效的方法。

from PIL import Image img = Image.open('image.png').convert('LA') img.save('greyscale.png')

您可以参考https://stackoverflow.com/a/45338831/9851541

也可以尝试

import imageio import numpy as np import matplotlib.pyplot as plt pic = imageio.imread('DemoImage.png') gray = lambda rgb : np.dot(rgb[... , :3] , [0.299 , 0.587, 0.114]) gray = gray(pic) plt.imshow(gray, cmap = plt.get_cmap(name = 'gray'))

© www.soinside.com 2019 - 2024. All rights reserved.