I develop with python, with numpy and openCV (3.1.0).
I have a SRC array of 2D points, which I wish to warp into a rectangle region.
SRC.T = array([[209 210 239 274 307 337 366 404 427 461 484 489 493]
[330 309 339 304 310 332 353 311 348 324 337 317 296]])
I've calculated the required homography (H) as following:
H, _ = findHomography(rect_src, rect_dst)
Where:
rect_src = array([[209, 282], [209, 330], [484, 337], [493, 296]])
rect_dst = array([[209, 296], [209, 353], [493, 353], [493, 296]])
I got the following homography matrix (which I've verifying manually it makes sense..):
H = [[ 5.81755130e-01 -1.21849288e-01 7.21264687e+01]
[ -1.46583486e-01 6.99605042e-01 5.90321609e+01]
[ -3.49962434e-04 -5.83010949e-04 1.00000000e+00]]
I've then warped the SRC points with the above homography matrix, hoping all SRC points will utilize the rect_dst region:
DST = perspectiveTransform(SRC, H).astype(int)
I got the following DST points:
DST.T = array([[209 209 236 267 299 330 363 397 429 462 493 493 493]
[353 327 363 318 324 351 378 320 370 335 353 324 296]])
Unfortunately, the DST points exceed the rect_dst region, so I didn't get the desired outcome...
Following is a debug image, where SRC points are in blue and DST points are in yellow (please ignore the red and the green points):
Can you please advise me where did I go wrong and how to obtain the desired feature?
Thanks ahead, Shahar