嗨,我正在尝试仅从图像中获取手写数据,因为我拍摄了一个空图像并填充了一个图像,然后我正在执行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')
有人可以帮助我吗? 谢谢。
答案 0 :(得分:0)
该站点可能会有所帮助:https://www.learnopencv.com/image-alignment-feature-based-using-opencv-c-python/。主要思想是首先在两个图像中都使用SIFT,SURF或其他算法来检测关键点;然后将空图像中的关键点与手写图像中的关键点进行匹配,以获得单应矩阵;然后使用此矩阵对齐两个图像。
图像对齐后,由于光照或噪音,可能需要进行后处理。