Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>Your question is not so clear because if you are using emgucv homography computation is estimated using <code>CameraCalibration.FindHomography()</code> function using RANSAC if there are more than 10 matching pairs. I'm working on these topics for my thesis so i will post some relevant code that should fully reply to you and serve also to others.</p> <pre><code>result = MatchingRefinement.VoteForSizeAndOrientation(result, 1.5, 20); homography = MatchingRefinement. GetHomographyMatrixFromMatchedFeatures(result, HomographyDirection.DIRECT, HOMOGRAPHY_METHOD.LMEDS); inverseHomography = MatchingRefinement.GetHomographyMatrixFromMatchedFeatures( result, HomographyDirection.INVERSE, HOMOGRAPHY_METHOD.LMEDS); PointF[] pts1 = new PointF[result.Length]; PointF[] pts1_t = new PointF[result.Length]; PointF[] pts2 = new PointF[result.Length]; for (int i = 0; i &lt; result.Length; i++) { pts1[i] = result[i].ObservedFeature.KeyPoint.Point; pts1_t[i] = result[i].ObservedFeature.KeyPoint.Point; pts2[i] = result[i].SimilarFeatures[0].Feature.KeyPoint.Point; } // Project model features according to homography homography.ProjectPoints(pts1_t); Image&lt;Bgr, Byte&gt; finalCorrespondance = inputImage.Copy(); matchedInliersFeatures = new List&lt;MatchedImageFeature&gt;(); for (int i1 = 0; i1 &lt; pts1_t.Length; i1++) { if (Math.Sqrt(Math.Pow(pts2[i1].X - pts1_t[i1].X, 2d) + Math.Pow(pts2[i1].Y - pts1_t[i1].Y, 2d)) &lt;4d) // Inlier { PointF p_t = pts1_t[i1]; PointF p = pts1[i1]; finalCorrespondance.Draw(new CircleF(p, 2f), new Bgr(Color.Yellow), 2); finalCorrespondance.Draw(new CircleF(p_t, 2f), new Bgr(Color.Black), 2); finalCorrespondance.Draw(new LineSegment2DF(p, p_t), new Bgr(Color.Blue), 1); MatchedImageFeature feature = new MatchedImageFeature(); feature.SimilarFeatures = new SimilarFeature[] { result[i1].SimilarFeatures[0] }; feature.ObservedFeature = result[i1].ObservedFeature; matchedInliersFeatures.Add(feature); } } List&lt;ImageFeature&gt; inliers = new List&lt;ImageFeature&gt;(); foreach (MatchedImageFeature match in matchedInliersFeatures) { inliers.Add(match.ObservedFeature); inliers.Add(match.SimilarFeatures[0].Feature); } </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload