问题描述
我是 Python 新手,在谷歌搜索公式后无法将此图像转换为灰度。我是否错误地应用了它?无论我尝试什么,我的图像都是绿色的。
0.2989 * R + 0.5870 * G + 0.1140 * B
import image
img= image.Image("luther.jpg")
win= image.ImageWin(img.getWidth(),img.getHeight())
img.draw(win)
img.setDelay(1,100)
for row in range(img.getHeight()):
for col in range(img.getWidth()):
p=img.getPixel(col,row)
newRed= 0.2989*p.getRed()
newGreen= 0.5870*p.getGreen()
newBlue= 0.1140*p.getBlue()
newpixel= image.Pixel(newRed,newGreen,newBlue)
img.setPixel(col,row,newpixel)
img.draw(win)
win.exitonclick()enter code here
解决方法
好的,我已经想通了。我试图在没有任何库的情况下解决这个问题,这是我的简单解决方案:
import image
img= image.Image("luther.jpg")
win= image.ImageWin(img.getWidth(),img.getHeight())
img.draw(win)
img.setDelay(1,100)
for row in range(img.getHeight()):
for col in range(img.getWidth()):
p=img.getPixel(col,row)
grayscale= (p.getRed()+ p.getGreen()+ p.getBlue())/3
newRed= grayscale
newGreen= grayscale
newBlue= grayscale
newpixel= image.Pixel(newRed,newGreen,newBlue)
img.setPixel(col,row,newpixel)
img.draw(win)
win.exitonclick()