Как проверить, находится ли логотип/изображение на изображении?

Я хочу сравнить изображение документа с типом логотипа или другим изображением, чтобы увидеть, есть ли логотип в документе.

Приложение для этого будет использовать ASP.NET MVC 3 и C#.

После дополнительных поисков я нашел решение с расширением Bitmap, которое использует AForge:

public static class BitmapExtensions
{
    /// <summary>
    /// See if bmp is contained in template with a small margin of error.
    /// </summary>
    /// <param name="template">The Bitmap that might contain.</param>
    /// <param name="bmp">The Bitmap that might be contained in.</param>        
    /// <returns>You guess!</returns>
    public static bool Contains(this Bitmap template, Bitmap bmp)
    {
        const Int32 divisor = 4;
        const Int32 epsilon = 10;

        ExhaustiveTemplateMatching etm = new ExhaustiveTemplateMatching(0.9f);

        TemplateMatch[] tm = etm.ProcessImage(
            new ResizeNearestNeighbor(template.Width / divisor, template.Height / divisor).Apply(template),
            new ResizeNearestNeighbor(bmp.Width / divisor, bmp.Height / divisor).Apply(bmp)
            );

        if (tm.Length == 1)
        {
            Rectangle tempRect = tm[0].Rectangle;

            if (Math.Abs(bmp.Width / divisor - tempRect.Width) < epsilon
                &&
                Math.Abs(bmp.Height / divisor - tempRect.Height) < epsilon)
            {
                return true;
            }
        }

        return false;
    }
}

person RickardP    schedule 18.02.2013    source источник
comment
whathaveyoutried.com?   -  person rekire    schedule 18.02.2013
comment
Ничего, потому что я не знал, с чего начать...   -  person RickardP    schedule 20.02.2013


Ответы (1)


Я думаю, что вы хотите использовать функции сопоставления шаблонов. Я бы предложил использовать opencv для этого. Это похоже на этот вопрос

person Eric    schedule 18.02.2013