How to use `cv2.perspectiveTransform` to apply homography on a set of points in Python OpenCV?How do I use the relationships between Flann matches to determine a sensible homography?How can I safely create a nested directory in Python?How to get the current time in PythonHow can I make a time delay in Python?How do I get the number of elements in a list in Python?How do I concatenate two lists in Python?How do I lowercase a string in Python?opencv perspectiveTransform function exceptionopencv error Assertion failed pythonopencv, python and RaspberryPiOpenCV perspectiveTransform broken function
Why doesn't Newton's third law mean a person bounces back to where they started when they hit the ground?
Cross compiling for RPi - error while loading shared libraries
LaTeX: Why are digits allowed in environments, but forbidden in commands?
What's that red-plus icon near a text?
How to determine what difficulty is right for the game?
Could an aircraft fly or hover using only jets of compressed air?
Arrow those variables!
Codimension of non-flat locus
Can a vampire attack twice with their claws using Multiattack?
What is a clear way to write a bar that has an extra beat?
Client team has low performances and low technical skills: we always fix their work and now they stop collaborate with us. How to solve?
Languages that we cannot (dis)prove to be Context-Free
Why are electrically insulating heatsinks so rare? Is it just cost?
Perform and show arithmetic with LuaLaTeX
How can bays and straits be determined in a procedurally generated map?
Can I ask the recruiters in my resume to put the reason why I am rejected?
What does "Puller Prush Person" mean?
How is it possible to have an ability score that is less than 3?
What's the output of a record needle playing an out-of-speed record
Do infinite dimensional systems make sense?
Add text to same line using sed
How much RAM could one put in a typical 80386 setup?
Revoked SSL certificate
"You are your self first supporter", a more proper way to say it
How to use `cv2.perspectiveTransform` to apply homography on a set of points in Python OpenCV?
How do I use the relationships between Flann matches to determine a sensible homography?How can I safely create a nested directory in Python?How to get the current time in PythonHow can I make a time delay in Python?How do I get the number of elements in a list in Python?How do I concatenate two lists in Python?How do I lowercase a string in Python?opencv perspectiveTransform function exceptionopencv error Assertion failed pythonopencv, python and RaspberryPiOpenCV perspectiveTransform broken function
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty height:90px;width:728px;box-sizing:border-box;
I want to apply homography to the following points:
array([[-7.4894, 1.8873],
[-7.4973, 1.8543],
[-7.5375, 1.6725],
[-7.5681, 1.522 ],
[-7.5961, 1.371 ],
[-7.6252, 1.2013],
[-7.6504, 1.031 ],
[-7.667 , 0.8985],
[-7.6817, 0.7657],
[-7.6954, 0.613 ],
[-7.7054, 0.4786],
[-7.7124, 0.3452],
[-7.7182, 0.1931],
[-7.7215, 0.0866],
[-7.7716, 0.0872],
[-7.7715, 0.0929],
[-7.7651, 0.2884],
[-7.7587, 0.4269],
[-7.7528, 0.5233],
[-7.7418, 0.6616],
[-7.7275, 0.8116],
[-7.7048, 1.0032],
[-7.6916, 1.0988],
[-7.6686, 1.2478],
[-7.6352, 1.4379],
[-7.6091, 1.5741],
[-7.5784, 1.7219],
[-7.538 , 1.8995],
[-7.4894, 1.8873]], dtype=float32)
My camera homography matrix is like this:
array([[ 3.9643041e-04, 6.5913662e-07, 3.1965813e-03],
[ 7.4297395e-07, -3.9652368e-04, -4.4492882e-04],
[-9.3076696e-06, -3.5773560e-06, 1.0000000e+00]], dtype=float32)
When I try to apply homography with cv2.perspectiveTransform i get the following error:
`cv2.error: OpenCV(4.0.0) C:projectsopencv-pythonopencvmodulescoresrcmatmul.cpp:2270: error: (-215:Assertion failed) scn + 1 == m.cols in function 'cv::perspectiveTransform'`
I suspect i need another dimension for each point. But I am not sure how to add this dimension with numpy.
What is the correct way to solve this problem and is there a way to determine the root cause? The error message does not make much sense to me.
python numpy opencv homography
add a comment |
I want to apply homography to the following points:
array([[-7.4894, 1.8873],
[-7.4973, 1.8543],
[-7.5375, 1.6725],
[-7.5681, 1.522 ],
[-7.5961, 1.371 ],
[-7.6252, 1.2013],
[-7.6504, 1.031 ],
[-7.667 , 0.8985],
[-7.6817, 0.7657],
[-7.6954, 0.613 ],
[-7.7054, 0.4786],
[-7.7124, 0.3452],
[-7.7182, 0.1931],
[-7.7215, 0.0866],
[-7.7716, 0.0872],
[-7.7715, 0.0929],
[-7.7651, 0.2884],
[-7.7587, 0.4269],
[-7.7528, 0.5233],
[-7.7418, 0.6616],
[-7.7275, 0.8116],
[-7.7048, 1.0032],
[-7.6916, 1.0988],
[-7.6686, 1.2478],
[-7.6352, 1.4379],
[-7.6091, 1.5741],
[-7.5784, 1.7219],
[-7.538 , 1.8995],
[-7.4894, 1.8873]], dtype=float32)
My camera homography matrix is like this:
array([[ 3.9643041e-04, 6.5913662e-07, 3.1965813e-03],
[ 7.4297395e-07, -3.9652368e-04, -4.4492882e-04],
[-9.3076696e-06, -3.5773560e-06, 1.0000000e+00]], dtype=float32)
When I try to apply homography with cv2.perspectiveTransform i get the following error:
`cv2.error: OpenCV(4.0.0) C:projectsopencv-pythonopencvmodulescoresrcmatmul.cpp:2270: error: (-215:Assertion failed) scn + 1 == m.cols in function 'cv::perspectiveTransform'`
I suspect i need another dimension for each point. But I am not sure how to add this dimension with numpy.
What is the correct way to solve this problem and is there a way to determine the root cause? The error message does not make much sense to me.
python numpy opencv homography
add a comment |
I want to apply homography to the following points:
array([[-7.4894, 1.8873],
[-7.4973, 1.8543],
[-7.5375, 1.6725],
[-7.5681, 1.522 ],
[-7.5961, 1.371 ],
[-7.6252, 1.2013],
[-7.6504, 1.031 ],
[-7.667 , 0.8985],
[-7.6817, 0.7657],
[-7.6954, 0.613 ],
[-7.7054, 0.4786],
[-7.7124, 0.3452],
[-7.7182, 0.1931],
[-7.7215, 0.0866],
[-7.7716, 0.0872],
[-7.7715, 0.0929],
[-7.7651, 0.2884],
[-7.7587, 0.4269],
[-7.7528, 0.5233],
[-7.7418, 0.6616],
[-7.7275, 0.8116],
[-7.7048, 1.0032],
[-7.6916, 1.0988],
[-7.6686, 1.2478],
[-7.6352, 1.4379],
[-7.6091, 1.5741],
[-7.5784, 1.7219],
[-7.538 , 1.8995],
[-7.4894, 1.8873]], dtype=float32)
My camera homography matrix is like this:
array([[ 3.9643041e-04, 6.5913662e-07, 3.1965813e-03],
[ 7.4297395e-07, -3.9652368e-04, -4.4492882e-04],
[-9.3076696e-06, -3.5773560e-06, 1.0000000e+00]], dtype=float32)
When I try to apply homography with cv2.perspectiveTransform i get the following error:
`cv2.error: OpenCV(4.0.0) C:projectsopencv-pythonopencvmodulescoresrcmatmul.cpp:2270: error: (-215:Assertion failed) scn + 1 == m.cols in function 'cv::perspectiveTransform'`
I suspect i need another dimension for each point. But I am not sure how to add this dimension with numpy.
What is the correct way to solve this problem and is there a way to determine the root cause? The error message does not make much sense to me.
python numpy opencv homography
I want to apply homography to the following points:
array([[-7.4894, 1.8873],
[-7.4973, 1.8543],
[-7.5375, 1.6725],
[-7.5681, 1.522 ],
[-7.5961, 1.371 ],
[-7.6252, 1.2013],
[-7.6504, 1.031 ],
[-7.667 , 0.8985],
[-7.6817, 0.7657],
[-7.6954, 0.613 ],
[-7.7054, 0.4786],
[-7.7124, 0.3452],
[-7.7182, 0.1931],
[-7.7215, 0.0866],
[-7.7716, 0.0872],
[-7.7715, 0.0929],
[-7.7651, 0.2884],
[-7.7587, 0.4269],
[-7.7528, 0.5233],
[-7.7418, 0.6616],
[-7.7275, 0.8116],
[-7.7048, 1.0032],
[-7.6916, 1.0988],
[-7.6686, 1.2478],
[-7.6352, 1.4379],
[-7.6091, 1.5741],
[-7.5784, 1.7219],
[-7.538 , 1.8995],
[-7.4894, 1.8873]], dtype=float32)
My camera homography matrix is like this:
array([[ 3.9643041e-04, 6.5913662e-07, 3.1965813e-03],
[ 7.4297395e-07, -3.9652368e-04, -4.4492882e-04],
[-9.3076696e-06, -3.5773560e-06, 1.0000000e+00]], dtype=float32)
When I try to apply homography with cv2.perspectiveTransform i get the following error:
`cv2.error: OpenCV(4.0.0) C:projectsopencv-pythonopencvmodulescoresrcmatmul.cpp:2270: error: (-215:Assertion failed) scn + 1 == m.cols in function 'cv::perspectiveTransform'`
I suspect i need another dimension for each point. But I am not sure how to add this dimension with numpy.
What is the correct way to solve this problem and is there a way to determine the root cause? The error message does not make much sense to me.
python numpy opencv homography
python numpy opencv homography
edited Mar 8 at 2:43
Kinght 金
8,71032044
8,71032044
asked Mar 8 at 1:56
aramnhammeraramnhammer
425
425
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
Make sure the pts shape is (n, 1, 2)
or (1,n,2)
:
pts = np.float32(pts).reshape(-1,1,2)
#pts = np.array([pts], np.float32)
cv2.perspectiveTransform(pts, M)
For example:
pts = np.array([[1,2,],[3,4]], np.float32)
M = np.array([[ 3.9643041e-04, 6.5913662e-07, 3.1965813e-03],
[ 7.4297395e-07, -3.9652368e-04, -4.4492882e-04],
[-9.3076696e-06, -3.5773560e-06, 1.0000000e+00]], dtype=np.float32)
## (n, 1, 2)
pts1 = pts.reshape(-1,1,2).astype(np.float32)
dst1 = cv2.perspectiveTransform(pts1, M)
## (1, n, 2)
pts2 = np.array([pts], np.float32)
dst2 = cv2.perspectiveTransform(pts2, M)
Result:
>>> print(pts1)
[[[1. 2.]]
[[3. 4.]]]
>>> print(dst1)
[[[ 0.00359439 -0.00123725]]
[[ 0.00438869 -0.00202888]]]
>>> print(pts2)
[[[1. 2.]
[3. 4.]]]
>>> print(dst2)
[[[ 0.00359439 -0.00123725]
[ 0.00438869 -0.00202888]]]
Here is another example:
How do I use the relationships between Flann matches to determine a sensible homography?
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55055655%2fhow-to-use-cv2-perspectivetransform-to-apply-homography-on-a-set-of-points-in%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
Make sure the pts shape is (n, 1, 2)
or (1,n,2)
:
pts = np.float32(pts).reshape(-1,1,2)
#pts = np.array([pts], np.float32)
cv2.perspectiveTransform(pts, M)
For example:
pts = np.array([[1,2,],[3,4]], np.float32)
M = np.array([[ 3.9643041e-04, 6.5913662e-07, 3.1965813e-03],
[ 7.4297395e-07, -3.9652368e-04, -4.4492882e-04],
[-9.3076696e-06, -3.5773560e-06, 1.0000000e+00]], dtype=np.float32)
## (n, 1, 2)
pts1 = pts.reshape(-1,1,2).astype(np.float32)
dst1 = cv2.perspectiveTransform(pts1, M)
## (1, n, 2)
pts2 = np.array([pts], np.float32)
dst2 = cv2.perspectiveTransform(pts2, M)
Result:
>>> print(pts1)
[[[1. 2.]]
[[3. 4.]]]
>>> print(dst1)
[[[ 0.00359439 -0.00123725]]
[[ 0.00438869 -0.00202888]]]
>>> print(pts2)
[[[1. 2.]
[3. 4.]]]
>>> print(dst2)
[[[ 0.00359439 -0.00123725]
[ 0.00438869 -0.00202888]]]
Here is another example:
How do I use the relationships between Flann matches to determine a sensible homography?
add a comment |
Make sure the pts shape is (n, 1, 2)
or (1,n,2)
:
pts = np.float32(pts).reshape(-1,1,2)
#pts = np.array([pts], np.float32)
cv2.perspectiveTransform(pts, M)
For example:
pts = np.array([[1,2,],[3,4]], np.float32)
M = np.array([[ 3.9643041e-04, 6.5913662e-07, 3.1965813e-03],
[ 7.4297395e-07, -3.9652368e-04, -4.4492882e-04],
[-9.3076696e-06, -3.5773560e-06, 1.0000000e+00]], dtype=np.float32)
## (n, 1, 2)
pts1 = pts.reshape(-1,1,2).astype(np.float32)
dst1 = cv2.perspectiveTransform(pts1, M)
## (1, n, 2)
pts2 = np.array([pts], np.float32)
dst2 = cv2.perspectiveTransform(pts2, M)
Result:
>>> print(pts1)
[[[1. 2.]]
[[3. 4.]]]
>>> print(dst1)
[[[ 0.00359439 -0.00123725]]
[[ 0.00438869 -0.00202888]]]
>>> print(pts2)
[[[1. 2.]
[3. 4.]]]
>>> print(dst2)
[[[ 0.00359439 -0.00123725]
[ 0.00438869 -0.00202888]]]
Here is another example:
How do I use the relationships between Flann matches to determine a sensible homography?
add a comment |
Make sure the pts shape is (n, 1, 2)
or (1,n,2)
:
pts = np.float32(pts).reshape(-1,1,2)
#pts = np.array([pts], np.float32)
cv2.perspectiveTransform(pts, M)
For example:
pts = np.array([[1,2,],[3,4]], np.float32)
M = np.array([[ 3.9643041e-04, 6.5913662e-07, 3.1965813e-03],
[ 7.4297395e-07, -3.9652368e-04, -4.4492882e-04],
[-9.3076696e-06, -3.5773560e-06, 1.0000000e+00]], dtype=np.float32)
## (n, 1, 2)
pts1 = pts.reshape(-1,1,2).astype(np.float32)
dst1 = cv2.perspectiveTransform(pts1, M)
## (1, n, 2)
pts2 = np.array([pts], np.float32)
dst2 = cv2.perspectiveTransform(pts2, M)
Result:
>>> print(pts1)
[[[1. 2.]]
[[3. 4.]]]
>>> print(dst1)
[[[ 0.00359439 -0.00123725]]
[[ 0.00438869 -0.00202888]]]
>>> print(pts2)
[[[1. 2.]
[3. 4.]]]
>>> print(dst2)
[[[ 0.00359439 -0.00123725]
[ 0.00438869 -0.00202888]]]
Here is another example:
How do I use the relationships between Flann matches to determine a sensible homography?
Make sure the pts shape is (n, 1, 2)
or (1,n,2)
:
pts = np.float32(pts).reshape(-1,1,2)
#pts = np.array([pts], np.float32)
cv2.perspectiveTransform(pts, M)
For example:
pts = np.array([[1,2,],[3,4]], np.float32)
M = np.array([[ 3.9643041e-04, 6.5913662e-07, 3.1965813e-03],
[ 7.4297395e-07, -3.9652368e-04, -4.4492882e-04],
[-9.3076696e-06, -3.5773560e-06, 1.0000000e+00]], dtype=np.float32)
## (n, 1, 2)
pts1 = pts.reshape(-1,1,2).astype(np.float32)
dst1 = cv2.perspectiveTransform(pts1, M)
## (1, n, 2)
pts2 = np.array([pts], np.float32)
dst2 = cv2.perspectiveTransform(pts2, M)
Result:
>>> print(pts1)
[[[1. 2.]]
[[3. 4.]]]
>>> print(dst1)
[[[ 0.00359439 -0.00123725]]
[[ 0.00438869 -0.00202888]]]
>>> print(pts2)
[[[1. 2.]
[3. 4.]]]
>>> print(dst2)
[[[ 0.00359439 -0.00123725]
[ 0.00438869 -0.00202888]]]
Here is another example:
How do I use the relationships between Flann matches to determine a sensible homography?
edited Mar 8 at 2:40
answered Mar 8 at 2:23
Kinght 金Kinght 金
8,71032044
8,71032044
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55055655%2fhow-to-use-cv2-perspectivetransform-to-apply-homography-on-a-set-of-points-in%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown