Я работаю над исследовательским проектом, который требует от меня идентификации текста на изображении. На форуме я видел сообщение об использовании memcmp, но мне не повезло с этим.
Чтобы дать более подробную информацию о моей задаче:
Я снимок экрана это. Мое изображение гласит «GPS: начальное местоположение 34 45 23».
Затем я погружаюсь в предопределенную карту изображений, которые загружаю в начале своего приложения. Карта содержит изображения для текста - Initial, Reset, Launch, ....
Как проверить, соответствует ли захваченное мной изображение одному из предопределенных изображений на карте.
Пожалуйста, помогите.
Прикрепление снимка кода
public static bool CompareMemCmp(Bitmap b1, Bitmap b2)
{
if ((b1 == null) != (b2 == null)) return false;
var bd1 = b1.LockBits(new Rectangle(new Point(0, 0), b1.Size), ImageLockMode.ReadOnly, b1.PixelFormat);
var bd2 = b2.LockBits(new Rectangle(new Point(0, 0), b2.Size), ImageLockMode.ReadOnly, b2.PixelFormat);
try
{
IntPtr bd1scan0 = bd1.Scan0;
IntPtr bd2scan0 = bd2.Scan0;
int stride = bd1.Stride;
int len = stride * b1.Height;
int stride2 = bd2.Stride;
int len2 = stride2 * b2.Height;
for (int i = 0; i < len; ++i)
{
bd1scan0 = bd1.Scan0 + i;
int test = memcmp(bd1scan0, bd2scan0, len2);
if (test == 0)
{
Console.WriteLine("Found the string");
return true;
}
}
return false;
}
finally
{
b1.UnlockBits(bd1);
b2.UnlockBits(bd2);
}
}