Grafik işleme
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Grafik işleme
Tif dosyası üzerinde işlem yapmak konu bu ;
Fahrettin adminimiz bu konu ile ilgili bir postta FineReader, ReadIris, TextBridege gibi firmaların kendi OCR engineleri program geliştiricilere sattıklarını soylemiş.Benim ogrenmelk istedigim.
Bu firmaların sitelerine baktım.
1-fiyatları 180-450 dolar arası bazı OCR ile ilgili paketler var
2-Bu sattıkları şey componentmidir.
3-OCR ile ilgili internette bazı şeyler buldum.Hepsi farklı farklı şeyler...benim aklımdan gecen ile alakası yok
4-Ben optik sınav formalarının okuyup düz olup olmadığnı test edip.sıra ile tarama yapılırken degerlendirip txt ye cevirmek ve bunları değerlendirmek! işte bu firmaların sattıkları şey her ne ise benim ihtiyacımı karşılacak bir şeymidir.
5-Taranmış resmi almak sorun değil bunu üzerinde pixel pixel renk kontrolü yapmak bir fonksiyon la falanmı olabilir.Bunun la ilgili çalışması ön bilgisi olan arkadaslar varmı?yada ekranın her hangi bir yerindeki yada bir resmin her hanig bir koordinatındaki rengi ogrenmek ne ile olabilir.
Teşekkür ederim.
Fahrettin adminimiz bu konu ile ilgili bir postta FineReader, ReadIris, TextBridege gibi firmaların kendi OCR engineleri program geliştiricilere sattıklarını soylemiş.Benim ogrenmelk istedigim.
Bu firmaların sitelerine baktım.
1-fiyatları 180-450 dolar arası bazı OCR ile ilgili paketler var
2-Bu sattıkları şey componentmidir.
3-OCR ile ilgili internette bazı şeyler buldum.Hepsi farklı farklı şeyler...benim aklımdan gecen ile alakası yok
4-Ben optik sınav formalarının okuyup düz olup olmadığnı test edip.sıra ile tarama yapılırken degerlendirip txt ye cevirmek ve bunları değerlendirmek! işte bu firmaların sattıkları şey her ne ise benim ihtiyacımı karşılacak bir şeymidir.
5-Taranmış resmi almak sorun değil bunu üzerinde pixel pixel renk kontrolü yapmak bir fonksiyon la falanmı olabilir.Bunun la ilgili çalışması ön bilgisi olan arkadaslar varmı?yada ekranın her hangi bir yerindeki yada bir resmin her hanig bir koordinatındaki rengi ogrenmek ne ile olabilir.
Teşekkür ederim.
bir örnek
Kod: Tümünü seç
procedure TForm1.Button1Click(Sender: TObject);
var
x,y : Integer;
BitMap : TBitMap;
P : PByteArray;
begin
BitMap := TBitMap.create;
try
// On Windows replace MyBitmap.png with a full pathname such as
// C:\Program Files\Common Files\Borland Shared\Images\Splash\256color\factory.bmp
BitMap.LoadFromFile('MyBitmap.png');
for y := 0 to BitMap.Height -1 do
begin
P := BitMap.ScanLine[y];
for x := 0 to BitMap.Width -1 do
P[x] := y;
end;
Canvas.Draw(0,0,BitMap);
finally
BitMap.Free;
end;
end;
delphi yardımında soyle bir ornek var...
Bitmap image not valid hatası alıyorum...
bunu for döngüsüne girmeden veriyor...istediği image dosyaların oluşturdum...hatanın nerden kaynaklandıgını bulamıyorum.
*** Kodları [ code ] tagı içine alın. mege
- sadettinpolat
- Moderator
- Mesajlar: 2131
- Kayıt: 07 Ara 2003 02:51
- Konum: Ankara
- İletişim:
Re: bir örnek
dosyanın tam yolunu ver birde bmp uzantılı olsunalperim yazdı:Kod: Tümünü seç
procedure TForm1.Button1Click(Sender: TObject); var x,y : Integer; BitMap : TBitMap; P : PByteArray; begin BitMap := TBitMap.create; try // On Windows replace MyBitmap.png with a full pathname such as // C:\Program Files\Common Files\Borland Shared\Images\Splash\256color\factory.bmp BitMap.LoadFromFile('c:\deneme.bmp'); //<-- bu şekilde for y := 0 to BitMap.Height -1 do begin P := BitMap.ScanLine[y]; for x := 0 to BitMap.Width -1 do P[x] := y; end; Canvas.Draw(0,0,BitMap); finally BitMap.Free; end; end;
delphi yardımında soyle bir ornek var...
Bitmap image not valid hatası alıyorum...
bunu for döngüsüne girmeden veriyor...istediği image dosyaların oluşturdum...hatanın nerden kaynaklandıgını bulamıyorum.
*** Kodları [ code ] tagı içine alın. mege
kimsenin bi fikri yokmu
ya bu konuda kimsenin bi fikri yokmu
Ramsnet adminlerim....yardımınızı görüşlerinizi bekliyorum

Ramsnet adminlerim....yardımınızı görüşlerinizi bekliyorum
Merhaba...
@sadettinpolat'ın bahsettiği gibi BMP tipinde bir resim seçtiğinizi teyid ediniz...
- Ayrıca resim okunduktan sonra da OCR işlemi için ilk yapılması gereken şey -tabii daha önce bu işe başlamış ama vakit bulamamış olan benim görüşümdür bu- resmi siyah beyaz hale dönüştürmektir. Bu şekilde işler 80% hafiflemiş olur. Yoksa komuşuluk değerleri konuşur, photoshop gibi bir programla TraceContour gibi bir plugin'e ihtiyaç olunur...
@sadettinpolat'ın bahsettiği gibi BMP tipinde bir resim seçtiğinizi teyid ediniz...

- Ayrıca resim okunduktan sonra da OCR işlemi için ilk yapılması gereken şey -tabii daha önce bu işe başlamış ama vakit bulamamış olan benim görüşümdür bu- resmi siyah beyaz hale dönüştürmektir. Bu şekilde işler 80% hafiflemiş olur. Yoksa komuşuluk değerleri konuşur, photoshop gibi bir programla TraceContour gibi bir plugin'e ihtiyaç olunur...

Kod: Tümünü seç
Var
Bitmap: TBitmap;
Palet : TMaxLogPalette;
begin
Palet.palVersion := $300;
Palet.palNumEntries := 2;
With Palet.palPalEntry[0] do
begin
peRed := 0;
peGreen := 0;
peBlue := 0;
peFlags := 0
end;
With Palet.palPalEntry[1] do
begin
peRed := 255;
peGreen := 255;
peBlue := 255;
peFlags := 0
end;
Bitmap := TBitmap.Create;
try
Bitmap.LoadFromFile('E:\DelphiTurkiye.BMP');
Bitmap.Palette := CreatePalette(pLogPalette(@Palet)^);
Bitmap.PixelFormat := pf1bit;
Image1.Picture.Graphic := Bitmap
finally
Bitmap.Free
end;
end;
OCR= Optical Charecter Recognition grafik olarak bulunan yazıları tanıyıp texte çevirmek diye kısaca diye biliriz
"sınav formalarının " okunması için bence gerek yok çünkü bu formlarda
ad soyad no gibi kısımlarda zaten kodlanarak işaretleniyor... yani a Harfi için belli bir kordinatta kutucuklar karalanıyor
Form görüntülerini bmp ye çevirdikten sonra form üzerinde referans teşkil edebileceğin bir yer bul ve diğer kısımları -yani karalanmış kutucukları - ona göre oku ...
ilgili rengi okumak için Image -> Canvas -> Pixsels [X][Y] kullanabilirsin
Mesela Referans Noktam x0,y0
1. sorunun cevabının A Şıkkının kutucuğunun merkezinin referans noktamdan
uzaklığı (k,l) okuyacağım yer (x0+k,y0+l) gibi ...
( Her görüntü için önce x0 ve y0 tespit etmek gerekir diğerleri zaten ona göre bulunuyor )
biraz karışık oldu ama inşallah anlata bilmişimdir...
"sınav formalarının " okunması için bence gerek yok çünkü bu formlarda
ad soyad no gibi kısımlarda zaten kodlanarak işaretleniyor... yani a Harfi için belli bir kordinatta kutucuklar karalanıyor
Form görüntülerini bmp ye çevirdikten sonra form üzerinde referans teşkil edebileceğin bir yer bul ve diğer kısımları -yani karalanmış kutucukları - ona göre oku ...
ilgili rengi okumak için Image -> Canvas -> Pixsels [X][Y] kullanabilirsin
Mesela Referans Noktam x0,y0
1. sorunun cevabının A Şıkkının kutucuğunun merkezinin referans noktamdan
uzaklığı (k,l) okuyacağım yer (x0+k,y0+l) gibi ...
( Her görüntü için önce x0 ve y0 tespit etmek gerekir diğerleri zaten ona göre bulunuyor )
biraz karışık oldu ama inşallah anlata bilmişimdir...
@bk
- Zaten gerçek anlamda bir OCR işlemine gerek olmadığı açık. OSYM de isimleri text'den okumuyor, isim karalama tablosunu kullanıyor.
- Image -> Canvas -> Pixsels [X][Y] yavaş bir yöntemdir.. Scanline ile pointer array'a okuyup karşılaştırmak çok daha hızlıdır... @alperim'in doğru bir noktaya ulaştığını düşünüyorum.
- Bunun için resmi siyah beyaz'a dönüştürdüğünde değerlerin büyük oranda sadeleşeceğini ifade etmeye çalıştım.
- Asıl mesele senin de ifade ettiğin şey. Resmin doğru tarandığının tespiti.
- @alperim için söylüyorum; Programın güvenilirliği ve kalite faktörü; düzgün, gereğinden büyük/küçük, ters/yan taranmış olup olmadığını anlamakla orantılıdır. Bu da OCR işleminde ana unsur olan satır sütun tespiti için gerekli algoritmaya denktir. Biz en iyisi buna OCR'dan C'yi atarak OR diyelim.
- Yani @bk'nın da belirttiği durum, x0 ve y0 referans noktaları sabit olamayacağından buraların tespiti çok önemli.
- Zaten gerçek anlamda bir OCR işlemine gerek olmadığı açık. OSYM de isimleri text'den okumuyor, isim karalama tablosunu kullanıyor.

- Image -> Canvas -> Pixsels [X][Y] yavaş bir yöntemdir.. Scanline ile pointer array'a okuyup karşılaştırmak çok daha hızlıdır... @alperim'in doğru bir noktaya ulaştığını düşünüyorum.

- Bunun için resmi siyah beyaz'a dönüştürdüğünde değerlerin büyük oranda sadeleşeceğini ifade etmeye çalıştım.
- Asıl mesele senin de ifade ettiğin şey. Resmin doğru tarandığının tespiti.
- @alperim için söylüyorum; Programın güvenilirliği ve kalite faktörü; düzgün, gereğinden büyük/küçük, ters/yan taranmış olup olmadığını anlamakla orantılıdır. Bu da OCR işleminde ana unsur olan satır sütun tespiti için gerekli algoritmaya denktir. Biz en iyisi buna OCR'dan C'yi atarak OR diyelim.


- Yani @bk'nın da belirttiği durum, x0 ve y0 referans noktaları sabit olamayacağından buraların tespiti çok önemli.

yanii...
zaten optic formlarda sol tarafata dikkat ederseniz siyah aralıklık noktalar vardır..bunların durumuna göre resmin düz olup olmadığını anlayıp tekrar taranmassını isteyebilirim...resim düz olduktan sonrada referans noktası belirleyeceğim...referans noktasını kullanıcı belirleyecek...yani dogru sıkları verecek. Program bu dogru şıkların oldugu yerleri kontrol edecek..isim soy ad kısımlarında ise..bütünü sütunu arayıp işaretli yerleri bulacak...bunlar işin mantalitesi......
gelelim teknik konuya...
zaten resimler tif olarak taranıyor..bunu bmp de yaparbilriz...siyah beyaz tarıyorum resimleri...renkli tarayıp da bidaha siyah beyaz yapmaya çalışmak zaman kaybı...
takıldıgım bi tek nokta var...
her hangi bir koordinatta rengin ne oldugunu nasıl bulacağım...
bütün mesela bu
gelelim teknik konuya...
zaten resimler tif olarak taranıyor..bunu bmp de yaparbilriz...siyah beyaz tarıyorum resimleri...renkli tarayıp da bidaha siyah beyaz yapmaya çalışmak zaman kaybı...
takıldıgım bi tek nokta var...
her hangi bir koordinatta rengin ne oldugunu nasıl bulacağım...

bütün mesela bu

" her hangi bir koordinatta rengin ne oldugunu nasıl bulacağım.."
Image -> Canvas -> Pixsels [X][Y]
x ve y koordinatındaki pikselin -noktanın - rengini okuyabilir yada değiştire bilirsin her nekadar mrmcop yavaş bir yöntem olduğunu söylesede bence belli koordinatlardaki kısımlarla ilgilendiğimiz için yeterli olacağını sanıyorum

Image -> Canvas -> Pixsels [X][Y]

x ve y koordinatındaki pikselin -noktanın - rengini okuyabilir yada değiştire bilirsin her nekadar mrmcop yavaş bir yöntem olduğunu söylesede bence belli koordinatlardaki kısımlarla ilgilendiğimiz için yeterli olacağını sanıyorum





Tabloda 1 olan yerler ile 0 olan yerleri ayırt edemiyor muyuz


Kod: Tümünü seç
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111101111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111100111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111000111111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111111000011111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111110000011111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111110000001111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111100000001111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111100000000111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111100000000111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111000000000111111111111111111111111111111111111111111111111
111111111111111111111111111111111111111000000000011111111111111111111111111111111111111111111111
111111111111111111111111111111111111110000000000011111111111111111111111111111111111111111111111
111111111111111111111111111111111111110000000000001111111111111111111111111111111111111111111111
111111111111111111111111111111111111100000000000001111111111111111111111111111111111111111111111
111111111111111111111111111111111111100000000000000111111111111111111111111111111111111111111111
111111111111111111111111111111111111100000000000000111111111111111111111111111111111111111111111
111111111111111111111111111111111111001000000000000111111111111111111111111111111111111111111111
111111111111111111111111111111111111001100000000000011111111111111111111111111111111111111111111
111111111111111111111111111111111110011100000000000011111111111111111111111111111111111111111111
111111111111111111111111111111111110011110000000000001111111111111111111111111111111111111111111
111111111111111111111111111111111100111110000000000001111111111111111111111111111111111111111111
111111111111111111111111111111111100111111000000000000111111111111111111111111111111111111111111
111111111111111111111111111111111000111111000000000000111111111111111111111111111111111111111111
111111111111111111111111111111111001111111000000000000111111111111111111111111111111111111111111
111111111111111111111111111111111001111111100000000000011111111111111111111111111111111111111111
111111111111111111111111111111110011111111100000000000011111111111111111111111111111111111111111
111111111111111111111111111111110011111111110000000000001111111111111111111111111111111111111111
111111111111111111111111111111100111111111110000000000001111111111111111111111111111111111111111
111111111111111111111111111111100111111111111000000000000111111111111111111111111111111111111111
111111111111111111111111111111000111111111111000000000000111111111111111111111111111111111111111
111111111111111111111111111111001111111111111100000000000111111111111111111111111111111111111111
111111111111111111111111111111000000000000000000000000000011111111111111111111111111111111111111
111111111111111111111111111110000000000000000000000000000011111111111111111111111111111111111111
111111111111111111111111111110011111111111111110000000000001111111111111111111111111111111111111
111111111111111111111111111100111111111111111110000000000001111111111111111111111111111111111111
111111111111111111111111111100111111111111111111000000000000111111111111111111111111111111111111
111111111111111111111111111001111111111111111111000000000000111111111111111111111111111111111111
111111111111111111111111111001111111111111111111000000000000111111111111111111111111111111111111
111111111111111111111111110001111111111111111111100000000000011111111111111111111111111111111111
111111111111111111111111110011111111111111111111100000000000011111111111111111111111111111111111
111111111111111111111111100011111111111111111111110000000000001111111111111111111111111111111111
111111111111111111111111100011111111111111111111110000000000001111111111111111111111111111111111
111111111111111111111111000011111111111111111111110000000000000111111111111111111111111111111111
111111111111111111111110000001111111111111111111110000000000000011111111111111111111111111111111
111111111111111111111100000000011111111111111111100000000000000001111111111111111111111111111111
Şimdi daha kolay anlaşılır herhalde... Yukardaki tablo nasıl mı oluştu işte bu şekilde...
Forma



// Siyah/Beyaz A harfi basan fonksiyon yazayım
Kod: Tümünü seç
Var
Bitmap : TBitmap;
begin
Bitmap := TBitmap.Create;
With Bitmap do
begin
Width := 100;
Height := 60;
PixelFormat := pf1Bit;
Canvas.FillRect(Rect(0,0,100,60));
Canvas.Font.Size := 50;
Canvas.Font.Style := [fsBold];
Canvas.Font.Name := 'Times New Roman';
Canvas.TextOut(20, 0, 'A');
end;
Image1.Picture.Graphic := Bitmap;
Bitmap.Free;
end;
Kod: Tümünü seç
function HexToBin(const S: string): string;
var I: integer; T: string;
begin
Result:='';
for I:=1 to Length(S) do
begin
case S[I] of
'0': T:='0000';
'1': T:='0001';
'2': T:='0010';
'3': T:='0011';
'4': T:='0100';
'5': T:='0101';
'6': T:='0110';
'7': T:='0111';
'8': T:='1000';
'9': T:='1001';
'A': T:='1010';
'B': T:='1011';
'C': T:='1100';
'D': T:='1101';
'E': T:='1110';
'F': T:='1111';
else T:= 'xxxx';
end; // Case
Result:=Concat(Result,T)
end
end;
Kod: Tümünü seç
var
iSatir,
iSutun : Integer;
Okunan : pByteArray;
Bitmap : TBitmap;
Satir : String;
begin
Bitmap := TBitmap.Create;
Bitmap.Assign(Image1.Picture.Bitmap);
Application.ProcessMessages;
for iSatir := 0 to Bitmap.Height-1 do
begin
Okunan := pByteArray(Bitmap.Scanline[iSatir]);
for iSutun := 0 to (Bitmap.Width div 8)-1 do
begin
Satir := Satir + HexToBin(Format('%.2x',[Okunan[iSutun]]));
end;
Memo1.Lines.Add(Satir);
Satir := '';
end;
Image1.Picture.Graphic := Bitmap;
Bitmap.Free;
end;



En son mrmarman tarafından 26 Oca 2005 08:28 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
güzel...olayı netleştirelim
foruma katkısı olacak bir şeyler...ok...
şimdi burda yukarda yaptıgınız şey anlamlı...ancak optic formu okurken bunun hız olarak kazandıracağı şeyi tam algılayamadım...
ben şoyle düşünüyorum...
belirli bir noktada ki rengi algılayabiliyormuyuz....
daha once dediğim gibi solda hizlama çizgilerine gore bütün kutucukların uzaklığı bellidiri...Formun düz olup olmadığı belirlendikten sonra...kullanıcının dogru cevap şıklarını girmesini isteyip...ona ilişkin noktaları programdan kontrol etmesini isteriz... siyah ise ok..beyaz is olumsuz...
bunun sizin belirttiğiniz yontemem gore yavaşlığını açıklayabilirmisiniz...
?
şimdi burda yukarda yaptıgınız şey anlamlı...ancak optic formu okurken bunun hız olarak kazandıracağı şeyi tam algılayamadım...
ben şoyle düşünüyorum...
belirli bir noktada ki rengi algılayabiliyormuyuz....
daha once dediğim gibi solda hizlama çizgilerine gore bütün kutucukların uzaklığı bellidiri...Formun düz olup olmadığı belirlendikten sonra...kullanıcının dogru cevap şıklarını girmesini isteyip...ona ilişkin noktaları programdan kontrol etmesini isteriz... siyah ise ok..beyaz is olumsuz...
bunun sizin belirttiğiniz yontemem gore yavaşlığını açıklayabilirmisiniz...
?
Merhaba... Proje senin, tercihlerin kendi tasarrufunda...
- 1 Pixel kontrolü yapmak senin için yeterli geliyorsa diyecek bir sözüm yok burada noktayı koyuyorum, ama benim için yeterli değil... Şöyle açayım...
- Referans çizgilerinin her biri en az 20 Pixel dikey ve 100 pixel yataydan oluşan birer bütündür. Yani bu bütünlerden belli bir noktayı hedeflemek kolaydır ama yetmez. Çünkü standart bir form tarayıcısı değil, bilgisayarcılardan alınmış bir tarayıcı kullanılıyor. Ters, eğri vb. olduğunu anlamak için yetmez...
- İşaret kutusundaki bir kalem çizgisinin kapladığı alanı tarayıp ne kadar pixel alanı kapladığını deneyerek kendinin görmesi en doğru olanıdır.
- -şahsi fikrimdir- sınav sonuç kartlarının hata kaldırmayacak bir olgu olduğu değerlendirildiğinde, her referans çizgisinden birer-ikişer nokta okuyarak kontrolünün güvenli olmayacağı kanaatindeyim.
- Düşün ki en son referans çizgisini kontrol ettiğin noktadan sonra, kalemle bir karalama yapılmış olsun. Ve taryıcıya konan kağıt birkaç milimetre yukarıda kalmış olsun, sonuç ne olur ?
- Büyük ihtimalle tüm referans kontrollerini doğru sanarak, en alttaki satırdaki soru/cevap dizisinin boş veya mükerrer işaretlenmiş olduğu sonucuna varılabilecektir.
Geriye kalan cevapların sıra kaymış olduğu sonucu bir kenara...
- İki ya da -30 çizgi varsa- 30 noktaya bakarak algoritma gibi bişi geliştirmenin doğru olmayacağını düşünüyorum. Referans çizgilerinin bütünlüğünün de kontrol edilmesi bence şarttır. Her referans çizgisinin bütünlüğünü okurken geçen zaman gözardı edilecek kadar az ise sorun yok zaten.
- Buraya kadar anlattıklarımla hız sorununu bağlayayım. Kontrol sayısı ve alanı artıkça, Pixel x Pixel döngü kurduğunuzda yavaşlamayı göreceksiniz. Diğer yandan bir kaç pixel okuma sırasında geçen zaman kadar bir sürede tüm bir bloktaki pixelleri okuyabilien Scanline fonksiyonu asla karşılaştırılmaz...

- 1 Pixel kontrolü yapmak senin için yeterli geliyorsa diyecek bir sözüm yok burada noktayı koyuyorum, ama benim için yeterli değil... Şöyle açayım...

- Referans çizgilerinin her biri en az 20 Pixel dikey ve 100 pixel yataydan oluşan birer bütündür. Yani bu bütünlerden belli bir noktayı hedeflemek kolaydır ama yetmez. Çünkü standart bir form tarayıcısı değil, bilgisayarcılardan alınmış bir tarayıcı kullanılıyor. Ters, eğri vb. olduğunu anlamak için yetmez...
- İşaret kutusundaki bir kalem çizgisinin kapladığı alanı tarayıp ne kadar pixel alanı kapladığını deneyerek kendinin görmesi en doğru olanıdır.

- -şahsi fikrimdir- sınav sonuç kartlarının hata kaldırmayacak bir olgu olduğu değerlendirildiğinde, her referans çizgisinden birer-ikişer nokta okuyarak kontrolünün güvenli olmayacağı kanaatindeyim.
- Düşün ki en son referans çizgisini kontrol ettiğin noktadan sonra, kalemle bir karalama yapılmış olsun. Ve taryıcıya konan kağıt birkaç milimetre yukarıda kalmış olsun, sonuç ne olur ?
- Büyük ihtimalle tüm referans kontrollerini doğru sanarak, en alttaki satırdaki soru/cevap dizisinin boş veya mükerrer işaretlenmiş olduğu sonucuna varılabilecektir.

- İki ya da -30 çizgi varsa- 30 noktaya bakarak algoritma gibi bişi geliştirmenin doğru olmayacağını düşünüyorum. Referans çizgilerinin bütünlüğünün de kontrol edilmesi bence şarttır. Her referans çizgisinin bütünlüğünü okurken geçen zaman gözardı edilecek kadar az ise sorun yok zaten.

- Buraya kadar anlattıklarımla hız sorununu bağlayayım. Kontrol sayısı ve alanı artıkça, Pixel x Pixel döngü kurduğunuzda yavaşlamayı göreceksiniz. Diğer yandan bir kaç pixel okuma sırasında geçen zaman kadar bir sürede tüm bir bloktaki pixelleri okuyabilien Scanline fonksiyonu asla karşılaştırılmaz...

http://www.mobilsoft.com.tr/default.asp?id=44
böylede bir link buldum. Tam olarak isteğinize cavap verecektir bu tür bir cihaz. Fiyatı ne düzeydedir bilmiyorum ama böyle bir proje yapacak olsaydım herhalde önce böyle bir cihaz üzerinde yoğunlaşırdım.
böylede bir link buldum. Tam olarak isteğinize cavap verecektir bu tür bir cihaz. Fiyatı ne düzeydedir bilmiyorum ama böyle bir proje yapacak olsaydım herhalde önce böyle bir cihaz üzerinde yoğunlaşırdım.