печатать текстовые жесты в симуляторе iPhone - PullRequest
0 голосов
/ 02 февраля 2012

Я новичок в разработке для iPhone,

Я хочу напечатать все, что пользователь пишет на экране, я использовал жест в своем проекте,

см. Мой снимок экрана,

на первом изображении ничего нет, поэтому я хочу напечатать Entered symbol is not incorrect на втором изображении я написал A на экране, поэтому я хочу напечатать you selected: A

screenshot screenshot вот фрагмент кода ..

объявление в .h файле

    CGPoint lastPoint;
    UIImageView *drawImage;
    BOOL mouseSwiped;   
    int mouseMoved;

код в файле .m

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {

    mouseSwiped = NO;
    UITouch *touch = [touches anyObject];

    if ([touch tapCount] == 2) {
        drawImage.image = nil;
        return;
    }

    lastPoint = [touch locationInView:self.view];
    lastPoint.y -= 20;

}


- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
    mouseSwiped = YES;

    UITouch *touch = [touches anyObject];   
    CGPoint currentPoint = [touch locationInView:self.view];
    currentPoint.y -= 20;


    UIGraphicsBeginImageContext(self.view.frame.size);
    [drawImage.image drawInRect:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
    CGContextSetLineCap(UIGraphicsGetCurrentContext(), kCGLineCapRound);
    CGContextSetLineWidth(UIGraphicsGetCurrentContext(), 5.0);
    CGContextSetRGBStrokeColor(UIGraphicsGetCurrentContext(), 1.0, 0.0, 0.0, 1.0);
    CGContextBeginPath(UIGraphicsGetCurrentContext());
    CGContextMoveToPoint(UIGraphicsGetCurrentContext(), lastPoint.x, lastPoint.y);
    CGContextAddLineToPoint(UIGraphicsGetCurrentContext(), currentPoint.x, currentPoint.y);
    CGContextStrokePath(UIGraphicsGetCurrentContext());
    drawImage.image = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    lastPoint = currentPoint;

    mouseMoved++;

    if (mouseMoved == 10) {
        mouseMoved = 0;
    }

}

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {

    UITouch *touch = [touches anyObject];

    if ([touch tapCount] == 2) {
        drawImage.image = nil;
        return;
    }


    if(!mouseSwiped) {
        UIGraphicsBeginImageContext(self.view.frame.size);
        [drawImage.image drawInRect:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
        CGContextSetLineCap(UIGraphicsGetCurrentContext(), kCGLineCapRound);
        CGContextSetLineWidth(UIGraphicsGetCurrentContext(), 5.0);
        CGContextSetRGBStrokeColor(UIGraphicsGetCurrentContext(), 1.0, 0.0, 0.0, 1.0);
        CGContextMoveToPoint(UIGraphicsGetCurrentContext(), lastPoint.x, lastPoint.y);
        CGContextAddLineToPoint(UIGraphicsGetCurrentContext(), lastPoint.x, lastPoint.y);
        CGContextStrokePath(UIGraphicsGetCurrentContext());
        CGContextFlush(UIGraphicsGetCurrentContext());
        drawImage.image = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();
    }
}

когда пользователь удваивает ленту, изображение на экране будет очищено, я написал это внутри касаний начала и касается метода конца в самом начале.

КАК Я МОГУ РЕАЛИЗОВАТЬ ЭТО?

Заранее спасибо !!

Ответы [ 2 ]

1 голос
/ 02 февраля 2012

Самый простой способ - это стандартизировать размер ваших букв, просто чтобы сделать ваш код проще, тогда вам, вероятно, придется установить шрифт или контрольную точку. Скажем, например, либо вы получаете пример каждой буквы вашего пользователя, либо вы устанавливаете «шрифт», чтобы пользователь пытался имитировать эти буквы. Если вы сделаете это, лучший способ получить результаты - использовать коэффициент корреляции идентифицированных букв с вашими ссылками.

Существует не только коэффициент корреляции, вам также, вероятно, придется запустить несколько фильтров, сначала чтобы сделать ваше изображение черно-белым, потому что это, вероятно, самый простой способ, а затем вам придется разделить квадраты субматрицы) каждая соответствует одной букве, а затем изменяет ее размер или подстраивает под ваши ссылки, чтобы вы могли рассчитать коэффициент корреляции и определить, какая это буква.

Об этом довольно сложно говорить. Я не знаю, что уже разработано для iOS, но это только краткое описание того, как я это сделал на другой платформе. Удачи и обязательно посетите форум по обработке сигналов , чтобы получить помощь экспертов.

Эта статья, вероятно, может дать вам подсказку общей идеи гораздо более подробно. Алгоритм распознавания номерных знаков для приложений интеллектуальной транспортной системы .

1 голос
/ 02 февраля 2012

Ну, вы выбрали довольно амбициозный проект.

Возможно, вы захотите проверить Tessarect , хотя для его компиляции для телефона потребуется некоторая работа.

Там также Карманный OCR .

Тогда есть AABBY .

...