角度不同时如何检测其他图像中的模板图像?

How to detect template image in other image when angle different?

我是图像处理的新手,一直坚持匹配不同角度的图像。 我正在尝试在捕获的相机图像中检测选定的模板图像。如果模板图像和角度完全相同,一切顺利。当两个图像角度不同时,图像匹配失败。 我使用 EmguCV 来匹配 2 个图像。 当不同角度时我需要用什么来匹配两个图像?

这两个图像的角度相同。 https://imgur.com/K6bUAZp

这是两幅不同角度的图像。 https://imgur.com/qatg2CV

Image<Bgr, byte> source = new Image<Bgr, byte>(grayMain); // Camera image
Image<Bgr, byte> template = new Image<Bgr, byte>(FrameImage); // Template image
Image<Bgr, byte> lastImage = source.Copy();

using (Image<Gray, float> result = source.MatchTemplate(template, TemplateMatchingType.CcoeffNormed))
{
    double[] minVal, maxVal;
    System.Drawing.Point[] minLocations, maxLocations;
    result.MinMax(out minVal, out maxVal, out minLocations, out maxLocations);

    if (maxVal[0] > 0.75)
    {
        Rectangle match = new Rectangle(maxLocations[0], template.Size);
        lastImage.Draw(match, new Bgr(Color.Red), 3);
    }
}
pictureBox.Image = lastImage.Bitmap;

我解决了我在相机图像中搜索矩形的问题,并使用 AForge.QuadrilateralTransformation 裁剪检测到的矩形图像。然后使用最后的图像(模板和裁剪图像)进行匹配。

这是裁剪后的图片 -> https://imgur.com/5JqAL5J

裁剪红色矩形并进行图像匹配后生成此图像 -> https://imgur.com/Sva3MzO

希望对您有所帮助。