זיהוי תווים אופטי
זיהוי כתב יד בשיטות המסורתיות

בזיהוי כתב יד אי אפשר להשתמש באלגוריתם המשווה את מאפייני האות לגופן ולכן משתמשים בשיטות זיהוי אחרות. אחת מהשיטות היא יצירת תמונה בצורת מלבן (בשחור לבן) של מופעים שונים של אותה אות כתב, לדוגמה: כל שורה מכילה 10 מופעים שונים (תמונות) של אותה אות, וכל שורה מתאימה לאות שונה. כל מופע של אות חסום במלבן (או במעגל),ומתוח לגובה ולרוחב כך שהוא יתאים בדיוק לגודל מלבן המופע. כל המלבנים בשורה גודלם קבוע, והם נמצאים במקום קבוע בתמונה. צבע מופע האות במלבן: שחור, צבע המלבן: לבן, וצבע הרקע: שחור. כדי למצוא מה מאפיין כל אות, התוכנה מחשבת בזמן הלימוד (השלב האיטי), כמה פעמים נחתכת האות על ידי קו ישר העובר בין שתי נקודות על מלבן החוסם את האות. התוכנה בונה קובץ של מספרים שלמים, המכיל את התכונות הטובות ביותר להבדלה בין אות אחת לשנייה. לדוגמה: תכונה מספר 1234 הוא קו החותך את כל מופעי האות שמספרה 15, 3 פעמים, ואת מופעי האות שמספרה 7, 0 פעמים. בזמן הזיהוי (השלב המהיר) התוכנה יוצרת מלבן חוסם סביב תמונת אות המיועדת לזיהוי, קוראת את קובץ התכונות הטובות ביותר, טוענת את תוכנו במערך, ובודקת כמה פעמים נחתכת האות על ידי הקווים המגדירים את התכונות הטובות ביותר, ולפי הנתונים הללו בודקת לאיזו אות התמונה הזאת מתאימה ביותר.
הערות:
מיקום נקודה מוגדר על ידי זוג מספרים: אחד מהם קובע היכן היא נמצאת ביחס לרוחב תמונת המופעים, והשני קובע היכן היא נמצאת ביחס לאורכה.
טעינת הקובץ למערך לכאורה היא מיותרת, ומבזבזת זמן ומקום בזיכרון המחשב. אבל תהליך החיפוש, מהיר במערך מאשר בקובץ.
המערך הוא רב ממדי, בעל 4 ממדים: 2 הממדים הראשונים היא מטריצה ריבועית באורך ורוחב של מספר האותיות, בה כל אות מושוות לאות אחרת. הממד הבא הוא מספר התכונות החשובות ביותר (נניח: עד 3 תכונות מבדילות באופן מוחלט בין 2 אותיות). הממד הבא אורכו 3 מספרים: מספר התכונה לדוגמה: ישר מספר 1234, הציון שניתן לאות נניח: 2 שמשמעותו חותך את האות 2 פעמים, והמספר השלישי הציון שניתן לאות המושוות, נניח: 0, שמשמעותו: חותך את האות 0 פעמים.
כשנותנים לתוכנה לחשב באופן אוטומטי מה הן 3 התכונות עם הציון הטוב ביותר, היא נוטה למצוא 3 ישרים הקרובים זה לזה, ובדרך כלל מיצגים את אותה התכונה, ולכן כדי למצוא את 3 התכונות הטובות ביותר נהוג לכתוב שגרה, הבוחרת 3 ישרים המחברים נקודות רחוקות יחסית.
לכל אות נותנים 10 מופעים כמה שאפשר שונים יותר, כדי שהתוכנה תלמד את התכונות המשותפות, ולא תגדיר אות על ידי תכונה מטעה. לדוגמה: נניח שבכל 10 המופעים של האות 'ג' בכתב, האות נכתבה כשהחלק העליון שלה נוטה ימינה. בשלב הלימוד התוכנה תיצור קו המקשר שתי נקודות: נקודה על הצלע העליונה של המלבן החוסם את האות, קרוב לפינה הימנית עליונה, ונקודה על אמצע הצלע הימנית של המלבן. בכל המופעים האות 'ג' לא תיחתך, כתוצאה מכך התוכנה תלמד שהאות 'ג' חלקה העליון נוטה ימינה. ולכן התוכנה לא תצליח לזהות 'ג' שחלקה העליון קו אנך (אות 'ג' רגילה).
אם אחד ממופעי האות הוא כל כך שונה, שהוא נראה כאילו הוא אות אחרת, הוא לא יאפשר לתוכנה ללמוד את התכונות המאפיינות את האות. במקרה כזה צריך ליצור בתמונת המופעים, שתי שורות המגדירות את אותה אות: שורה של המופעים הרגילים של אותה אות, ושורה של מופעים הדומים למופע השונה.
בצג המחשב, קו אלכסוני דק, מוצג לפעמים כסדרה של מלבנים הנוגעים זה בזה בפינות. סביר שאם ננסה לחתוך קו כזה בקו אלכסוני דק אחר, התוצאה תהייה שהקווים לא נחתכו. כי חיתוך שני קווים, פירושו שבנקודה מסוימת קו אחד עלה על קו אחר, אבל במקרה שלנו לא חייב להיות שבנקודת החיתוך, מלבן מקו אחד עלה על מלבן מקו שני. לכן בתוכנה כותבים שגרה להרחבת הקו בצורה כזו: עוברים על כל הנקודות בתמונה (שהן בעצם מלבנים קטנים) ואם מוצאים 4 מלבנים צמודים (2 למעלה ו־2 למטה) שמתוכם 2 לבנים ו־2 שחורים, כאשר 2 השחורים נוגעים זה בזה רק בפינה אחת (כלומר עומדים באלכסון), משנים אחד מהמלבנים הלבנים לצבע שחור.
תכונה המתקבלת מקו חיתוך העובר ליד מרכז המלבן החוסם את האות, מקבלת ציון גבוה מתכונה המתקבלת על ידי קו המחבר שתי נקודות בקרבת פינת המלבן. כי עיקר תכונות האות מוגדרות על ידי מרכזה. לדוגמה: בין האותיות 'ב', 'ה', 'כ' ו־'פ' בכתב, אפשר להבדיל, בעיקר על פי מרכזם.
כדי לחסוך בזיכרון ולהאיץ את החישוב, מחשבים את טיב התכונה בעזרת חישוב במספרים שלמים ועיגול התוצאה. לדוגמה: נניח שאות אחת נחתכה בעזרת קו של תכונה מסוימת ב־9 מתוך 10 המופעים. התוכנה תבצע ממוצע במספרים שלמים:
{\frac {9}{10}}=0 = הממוצע
אבל להגיד שאם במקרה אחד האות לא נחתכה היא לא תיחתך אף פעם זו שגיאה משמעותית. לכן במקרה זה מעגלים למעלה והתוצאה יוצאת:
{\frac {9}{10}}=1 = הממוצע
התוצאה מלמדת שלא מתחשבים במקרה אחד חריג. אבל בכל זאת זה לא טוב, כי נראה שהתוכנה תיכשל בזיהוי של אחד מתוך עשרה מקרים!
במציאות הזיהוי הרבה יותר מדויק ממה שנדמה. כי יש עוד תכונות המגבות במקרה שגוי. ובנוסף לכך החישוב מדמה את הקריאה של האדם,
כי כשאנו קוראים אנו בהכרתנו מעגלים.