yazılım ile optik okuyucu?

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kaptan
Üye
Mesajlar: 395
Kayıt: 01 Tem 2005 04:02

yazılım ile optik okuyucu?

Mesaj gönderen Kaptan »

Selamlar.

optik okuyucuların yaptığını bizim normal tarayıcıda taratarak yazılım ile yapmamız için nasıl bir yol izlememiz, neleri öğrenmemiz gerekir?

Teşekkürler.
Kullanıcı avatarı
hbahadir
Kıdemli Üye
Mesajlar: 544
Kayıt: 06 Ara 2004 05:03
Konum: BURSA idi artık İST.
İletişim:

Mesaj gönderen hbahadir »

Kullanıcı avatarı
Opt2000
Üye
Mesajlar: 216
Kayıt: 09 Tem 2003 10:04

Optik okuyucu

Mesaj gönderen Opt2000 »

Selam,

hbahadir'in verdiği linkteki yazıları okudum ve buna rağmen bir şeyler eklemek gereği hissetttim.

Öncelikle ScanLine mantığını öğrenmek gerekecek. Bunun kafanda tam oturması için de resimlerin bellekte nasıl tutulduğunu öğrenmen gerekecek. Buraya kadar olan kısım işin kolay kısmı.

Daha sonra en azından basit de olsa rotate ve deskew fonksiyonlarını öğrenmen gerekecek (Scanner'dan taranırken garanti bir yamukluk olacaktır)

Çekilen resmin temizlenmesi ve process time'ın düşürülmesi için despeckle öğrenmen gerekecek (Küçük siyah noktaların temizlenmesi, bu aslında çok önemli değil, sadece performansı biraz daha arttırmak istersen işine yarayabilir. Hatta Photoshopla tarama yaptırıyorsan basit bir actionla bunu Photoshop'a da yaptırabilirsin)

En son olarak da sağlam bir algoritma kurman gerekecek. Şimdi izninle benim tavsiyelerimi yazayım.

1. Normalde OCR işlemlerinin hepsinde, Black&White (Lineart) resimlerle çalışılır. Bu resimler 1 bittir, ama 1 bit resimlerin scanline mantığı ile işlenmesi yavaş olur. Sürekli bitwise operasyon gerektirir. Ben senin yerinde olsam, basit bir resim formatı tasarlarım, ve 1 bit resimleri, 8 bit olarak tutar, ama sadece 0 ve 255 değerlerini alır. Böylece döngülerin inanılmaz derecede hızlanır. Bu yöntem tarafımdan test edilmiş ve kesinlikle onay almıştır (Performans farkı inanılmaz yüksek) :D

2. Rotate fonksiyonları, özellikle nette bulacakların, 24 bit resimler için güzel olmasına rağmen, B&W ve büyük resimler için rezalettir. Çünkü bu resimlerde, resmin büyük bir kısmı beyaz olduğu için algoritma neredeyse %70 oranında boşa çalışır. Bunun yerine kendin bir rotate fonksiyonu hazırla ve sadece siyah noktaların rotate edilmiş değerlerini hesaplayıp boş bembeyaz bir resimde o koordinatları siyaha boya. Performans inanılmaz derecede yükselecektir. Burada tek sıkıntı B&W resimlerde yapılan küçük dereceli rotasyonlarda resmin çok fazla bozulmasıdır. Ama sen optik form kullanacağın için böyle bir sorunun olmayacak. Bu da tarafımdan test edilmiş ve onay almıştır :D

3. Mutlaka bir referans noktası belirle. Bunun için de işi iki parçaya böl. Önce resimlerin hepsi taransın, sonra da bir senin programın çalışsın. Senin programın bir nevi batch processing yapacak. Bunun sebebi de şu. Taradığın resimlerden bir tanesi cevap anahtarı olsun ve kullanıcı hangisinin cevap anahtarı olduğunu programa belirtsin. Sen de diğer bütün resimleri, cevap anahtarına uydurursun. Kullanıcı ayrıca programa, cevap anahtarının bazı özelliklerini de girsin (soru sayısı, sütun sayısı gibi) Ve hatta eğer zorlanacak olursan, cevap anahtarında belirli regionlar tanımlamasını bile şart koşabilirsin. (Diğer forumda da yazıldığı gibi bu işlemin sonucu kesinlikle hata kabul etmez)

4. Bundan sonra aslında iş sağlam bir döngüye kalıyor sanırım. Her bir formun sonuçlarını kaydet ve benim tavsiyem, kullanıcının sonuçları görsel olarak da kontrol etmesine imkan ver (Örneğin cevap anahtarında C şıkkı formda B işaretlenmiştir. Sen bu kağıt üzerinde, doğru cevabı mavi, yanlış cevabı da kırmızı ile işaretlersen, sonuçların kontrolü de inanılmaz derecede hızlı olacaktır.

Şimdilik aklıma gelenler bunlar,

Kolay gelsin
Bahadır Alkaç
mertcenk
Üye
Mesajlar: 71
Kayıt: 03 Tem 2003 05:46

zor

Mesaj gönderen mertcenk »

sana sadece şunu soyliyim işin çok zor.... :) ben bu işi yapıyorum...proje daha yeni bitmek üzere...işin zor :)
mertcenk
Üye
Mesajlar: 71
Kayıt: 03 Tem 2003 05:46

2 nci madde

Mesaj gönderen mertcenk »

OPT2000 ikinci maddeyi biraz açıklarmısınız... Tam anlıyamadım..
Kaptan
Üye
Mesajlar: 395
Kayıt: 01 Tem 2005 04:02

Mesaj gönderen Kaptan »

bilgiler için teşekkür ederim.
Cevapla