Azzera filtri
Azzera filtri

How can I fix the error "The specified transformation matrix is not valid because it is singular to working precision."

11 visualizzazioni (ultimi 30 giorni)
I want to do image registration and therefore calculate the transformation matrix with the following code.
[tform, inlierIdx, status] = estgeotform2d(matchedPointsDis,matchedPointsRef,'projective', MaxNumTrials=100000, MaxDistance=1);
But really often the following error occurs:
The specified transformation matrix is not valid because it is singular to working precision.
Does anyone knows what the problem is?
  2 Commenti
Torsten
Torsten il 29 Nov 2022
Modificato: Torsten il 29 Nov 2022
Most probably, your supplied matchedPointsDis and matchedPointsRef are such that a non-singular transformation T with T(matchedPointsDis) = matchedPointsRef cannot be found.
Ivan Herger
Ivan Herger il 29 Nov 2022
Yes that is possible. But is there a way to fix that error or do I have to accept that I can't registrate the two images?
Maybe the problem is that the algorithm can't find a model with these matchedPoints?
I use detectKAZEFeatures, extractFeatures and then matchFeatures to define the matchedPointsDis and matchedPointsRef.

Accedi per commentare.

Risposte (1)

Siraj
Siraj il 4 Set 2023
Hi! It is my understanding that you have two images, and you are trying to register them. To my knowledge, the error that you are getting is because there are not enough inliners in “matchedPointsDis” and “matchedPointsRef”. One possible reason for such an error can also be that the inliner points are collinear.
To resolve this issue, try using some other feature extraction technique.
You can also check the “status” and see what is going wrong.
Refer to the following link to see what the “status” code signifies.https://www.mathworks.com/help/vision/ref/estgeotform2d.html#mw_f1265016-2bb6-4f73-a574-04fd68d80698
Hope this helps.

Prodotti


Release

R2022b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by