正确对齐图像

时间:2018-11-16 07:12:13

标签: python-3.x image image-processing python-imaging-library

嗨,我正在尝试仅从图像中获取手写数据,因为我拍摄了一个空图像并填充了一个图像,然后我正在执行ImageChops.difference以从中获取数据。 现在的问题是图像的对齐方式,两者在深度上均不对齐,因此结果不正确。

从PIL导入图像,ImageChops

def compare_images(path_one, path_two, diff_save_location):
    """
    Compares to images and saves a diff image, if there
    is a difference

    @param: path_one: The path to the first image
    @param: path_two: The path to the second image
    """
    image_one = Image.open(path_one).convert('LA')
    image_two = Image.open(path_two).convert('LA')

    diff = ImageChops.difference(image_one, image_two)
    if diff.getbbox():
        diff.convert('RGB').save(diff_save_location)


if __name__ == '__main__':
    compare_images('images/blank.jpg',
                   'images/filled.jpg',
                   'images/diff.jpg')

这是我得到的结果。 enter image description here

我正在寻找的结果: enter image description here

有人可以帮助我吗? 谢谢。

1 个答案:

答案 0 :(得分:0)

该站点可能会有所帮助:https://www.learnopencv.com/image-alignment-feature-based-using-opencv-c-python/。主要思想是首先在两个图像中都使用SIFT,SURF或其他算法来检测关键点;然后将空图像中的关键点与手写图像中的关键点进行匹配,以获得单应矩阵;然后使用此矩阵对齐两个图像。

图像对齐后,由于光照或噪音,可能需要进行后处理。