我对如何将图像转换为灰度感到困惑。
这是我正在使用的图片:http://i.imgur.com/WaaqRmV.png我们还有一个.py文件用于此问题https://pastebin.com/VNNRacBx(它是预制的)。
import cImage as image
img = image.Image("testimage.gif")
win = image.ImageWin(img.getWidth(), img.getHeight())
img.draw(win)
img.setDelay(1,15)
for row in range(img.getHeight()):
for col in range(img.getWidth()):
p = img.getPixel(col, row)
newred = 255 - p.getRed()
newgreen = 255 - p.getGreen()
newblue = 255 - p.getBlue()
newpixel = image.Pixel(newred, newgreen, newblue)
img.setPixel(col, row, newpixel)
img.draw(win)
win.exitonclick()
到目前为止,我所拥有的一个问题是如何将其转换为灰度?在工作簿中,它说我可以通过平均红色,绿色和蓝色强度来创建灰度像素,然后对所有的em使用该值,但不确定它是如何完成的。
每当我运行它时,为什么我会在img.SetDelay(1,15)中出错?我不能完全看出它有什么问题。
这是绝对的初学者Python课程我参加了这个夏季学期,我尝试在这上面查阅教程和YouTube视频但是所有这些都比我正在处理的内容复杂得多而且我没有&# 39;不了解他们在做什么。我会做点什么吗
grayscaleWeighted(image, redWeight, greenWeight, blueWeight) ?
还有一个问题,是否有任何网站建议帮助我了解其中一些内容?到目前为止,我已经完成了一些Python模块,函数,Turtle Graphics和Selection。欢迎任何帮助,欢呼。
答案 0 :(得分:0)
python成像库(PIL)有各种各样的工具,要将图像转换为灰度,你可以这样做:
from PIL import Image
image_file = Image.open("testimage.gif")
image_file = image_file.convert('L') # convert image to grayscale
image_file.save('testimage.gif')
通过以下方式下载PIL /枕头(PIL前叉)
pip install Pillow
http://pillow.readthedocs.io/en/4.1.x/reference/Image.html#PIL.Image.Image
来自cImage源代码,您也可以这样做而不是使用PIL:
from cImage import *
def grayPixel(p):
avg = (p.getRed() + p.getGreen() + p.getBlue()) // 3
return Pixel(avg,avg,avg)
def makeGrayScale(imageFile):
myimagewindow = ImageWin("Image Processing",600,200)
oldimage = Image(imageFile)
oldimage.draw(myimagewindow)
width = oldimage.getWidth()
height = oldimage.getHeight()
newim = EmptyImage(width,height)
for row in range(height):
for col in range(width):
originalPixel = oldimage.getPixel(col,row)
newPixel = grayPixel(originalPixel)
newim.setPixel(col,row,newPixel)
newim.setPosition(width+1,0)
newim.draw(myimagewindow)
myimagewindow.exitOnClick()
makeGrayScale('testimage.gif')
答案 1 :(得分:0)
您可以查看here。要将RGB图像转换为灰度而不是实现自己的方法,您可以
from PIL import Image
img = Image.open('image.png').convert('LA')
img.save('greyscale.png')
如果您可以专门询问需要帮助的主题,那将会很棒。到那时,了解其中任何一个的最佳位置将是相应主题的官方文档。从那里,您可以联系他们的论坛寻求帮助或其他讨论。