相关疑难解决方法(0)

使用OpenCV和SIFT/SURF校正扫描图像以匹配原始图像

我有一个数字形式的原始页面和同一页面的几个扫描版本.我的目标是对扫描的页面进行校正,使其尽可能与原始页面匹配.我知道我可以使用此处所述的概率霍夫变换来固定旋转,但扫描的纸张尺寸也不同,因为有些人将页面缩放为不同的纸张格式.我认为OpenCV中的findHomography()函数与SIFT/SURF的关键点组合正是我解决这个问题所需要的.但是,我只是无法让我的deskew()函数工作.

我的大部分代码源自以下两个来源:http: //www.learnopencv.com/homography-examples-using-opencv-python-c/http://docs.opencv.org/3.1.0/d1/ de0/tutorial_py_feature_homography.html.

import numpy as np
import cv2
from matplotlib import pyplot as plt


# FIXME: doesn't work
def deskew():
    im_out = cv2.warpPerspective(img1, M, (img2.shape[1], img2.shape[0]))
    plt.imshow(im_out, 'gray')
    plt.show()


# resizing images to improve speed
factor = 0.4
img1 = cv2.resize(cv2.imread("image.png", 0), None, fx=factor, fy=factor, interpolation=cv2.INTER_CUBIC)
img2 = cv2.resize(cv2.imread("imageSkewed.png", 0), None, fx=factor, fy=factor, interpolation=cv2.INTER_CUBIC)

surf = cv2.xfeatures2d.SURF_create()
kp1, des1 = surf.detectAndCompute(img1, None)
kp2, des2 = surf.detectAndCompute(img2, None)

FLANN_INDEX_KDTREE = 0
index_params …
Run Code Online (Sandbox Code Playgroud)

python opencv computer-vision

4
推荐指数
1
解决办法
3588
查看次数

标签 统计

computer-vision ×1

opencv ×1

python ×1