Python -3, моя программа не показывает негативное изображение - PullRequest
0 голосов
/ 03 августа 2020

Итак, мне нужно следовать функции в моем учебнике, чтобы сделать изображение негативным и показать негативное изображение. Я попытался изменить несколько вещей, чтобы воспроизвести предыдущую функцию, чтобы увидеть, изменит ли это что-нибудь вроде ввода того изображения, которое я хочу получить отрицательным. Он компилируется и работает нормально, не показывая ошибок, он просто не показывает мне негатив моего изображения, поэтому я не знаю, в чем проблема.

from cImage import *
def negativePixel(oldPixel):
    newRed = 255 - oldPixel.getRed()
    newGreen = 255 - oldPixel.getGreen()
    newBlue = 255 - oldPixel.getBlue()
    newPixel = Pixel(newRed, newGreen, newBlue)
    return newPixel`



def MakeNegative(imageFile):
    oldImage = FileImage(imageFile)
    width = oldImage.getWidth()
    height = oldImage.getHeight()

    myImageWindow = ImageWin("Negative Image", width * 2, height)
    oldImage.draw(myImageWindow)
    newIn = EmptyImage(width, height)

    for row in range(height):
        for col in range(width):
            oldPixel = oldImage.getPixel(col, row)
            newPixel = negativePixel(oldPixel)
            newIn.setPixel(col, row, newPixel)
newIn.setPosition(width + 1, 0)
newIn.draw(myImageWindow)
myImageWindow.exitOnClick()

1 Ответ

1 голос
/ 03 августа 2020

Ваш код не компилируется и не запускается за меня; Я исправил несколько вещей - отступы, import image (не cImage), отсутствие вызова MakeNegative(), параметры не в порядке и т. Д. c. У меня это работает. Я использую Ubuntu 18.04, Python 3.6.9, cImage-2.0.2, Pillow-7.2.0.

from image import *
def negativePixel(oldPixel):
    newRed = 255 - oldPixel.getRed()
    newGreen = 255 - oldPixel.getGreen()
    newBlue = 255 - oldPixel.getBlue()
    newPixel = Pixel(newRed, newGreen, newBlue)
    return newPixel



def MakeNegative(imageFile):
    oldImage = FileImage(imageFile)
    width = oldImage.getWidth()
    height = oldImage.getHeight()

    myImageWindow = ImageWin(width * 2, height, "Negative Image")
    oldImage.draw(myImageWindow)
    newIn = EmptyImage(width, height)

    for row in range(height):
        for col in range(width):
            oldPixel = oldImage.getPixel(col, row)
            newPixel = negativePixel(oldPixel)
            newIn.setPixel(col, row, newPixel)

    newIn.setPosition(width + 1, 0)
    newIn.draw(myImageWindow)
    myImageWindow.exitOnClick()

MakeNegative('Lenna_test_image.png')

введите описание изображения здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...