开发者

Need help with comparing two pictures in Python

开发者 https://www.devze.com 2023-01-19 17:58 出处:网络
Hey guys, Im working on an assignment for my comp sci class, I dont know where Im going wrong here. The function is supposed to take two pictures, pic1 and pic2, and return how different they are.

Hey guys, Im working on an assignment for my comp sci class, I dont know where Im going wrong here. The function is supposed to take two pictures, pic1 and pic2, and return how different they are.

Heres what I have

def smart_difference(pic1, pic2):
    '''Given two Pictures, pic1 and pic2 of any size and colour, return the 
    difference'''
    red = red_average(pic2)
    blue = blue_average(pic2)
    green = green_average(pic2)

    pic1_height, pic1_width = media.get_height(pic1), media.get_width(pic1)
    pic2_height, pic2_width = media.get_height(pic2), media.get_width(pic2)
    if (pic1_height > pic2_height) and (pic1_width > pic2_width): 
        new_pic1 = media.create_picture(pic2_width, pic2_height)
        new_pic2 = pic2
    elif (pic1_height > pic2_height) and (pic2_width > pic1_width):
        new_pic1 = media.create_picture(pic2_width, pic1_height)
        new_pic2 = media.create_picture(pic2_width, pic1_height)
    elif (pic2_height > pic1_height) and (pic2_width > pic1_width):
        new_pic1 = pic1
        new_pic2 = media.create_picture(pic1_width, pic1_height)
    elif (pic2_height > pic1_height) and (pic1_width > pic2_width):
        new_pic1 = media.create_picture(pic2_width, pic1_height)
        new_pic2 = media.create_picture(pic2_width, pic1_height)

    scale_red(new_pic1, red)
    scale_blue(new_pic1, blue)
    scale_green(new_pic1, green)
    scale_red(new_pic2, red)
    scale_blue(new_pic2, blue)
    scale_green(new_pic2, green)
    return simple_difference(new_pic1, new_pic2)

I run a self_test file (which was given to us for our assignment),开发者_StackOverflow but I keep getting an error here, can anyone help?

*Notes:Simple_difference is another function I wrote beforehand that finds the distance between pixels in the two pictures and scales accordingly


Kay, the error is: "AssertError: result after smart_difference should be between 0 and 1200, not 35000"

Heres what I did for simple difference:

def simple_difference(pic1, pic2): '''Given two Pictures of the same dimensions, pic1 and pic2, return the sum of the distances in color of the two pictures.'''

sum_distance = 0
for pix1, pix2 in zip(pic1, pic2):
    sum_distance += distance(pix1, pix2)
return sum_distance

Im using a media library that we have to use for our class, running python 2.5... which is kind of ridiculous, but that's what we have to use

0

精彩评论

暂无评论...
验证码 换一张
取 消