需要帮助比较Python中的两张图片

时间:2010-10-13 19:56:18

标签: python image-processing

嘿伙计们,我正在为我的comp sci课做作业,我不知道我在哪里错了。该功能应该拍摄两张照片,pic1和pic2,并返回它们的不同之处。

继承我拥有的东西

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)

我运行了一个self_test文件(这是我们的作业),但我在这里遇到错误,有人可以帮忙吗?

*注意:Simple_difference是我事先写的另一个函数,它找到两张图片中像素之间的距离并相应地缩放

1 个答案:

答案 0 :(得分:0)

Kay,错误是:“AssertError:smart_difference之后的结果应该在0到1200之间,而不是35000”

继承人我为简单的差异做了什么:

def simple_difference(pic1,pic2):     '''给定两张相同尺寸的图片,pic1和pic2,返回     两张照片的颜色距离之和。'''

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

我正在使用我们必须用于我们班级的媒体库,运行python 2.5 ...这有点荒谬,但这就是我们必须使用的