الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

برنامج Ocr

بدأه azezennafs في 5 أبريل 2009 · 5 رد · 944 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ،،

اخواني هذا اول موضوع لي واتمنى القى منكم الاجابه الكافيه ،،

انا عندي هوم وورك في ماده تعريب ،، الهدف من الهوم وورك عمل برنامج OCR

يقوم البرنامج بالتعرف على محتوى صوره تحتوي على رقم من الارقام العربيه يعني يقول لك الرقم الموجود ايش

حاولت ابحث عن طرق تفيدني وللاسف ما حصلت ،،

اذا فيه احد عنده خلفيه في الموضوع ويقدر يفيدني اكون له شاكر ومقدر خصوصا ان وقت التسليم بعد يومين فقط ،،

#2

السلام عليكــم ورحمـة الله وبركاتــه ،،

ابحث عن

image recognition

#3

اول شي مشكور على الرد اخوي ،،

لكن ال image recognition متشعب كثير اتمنى لو عندك تفصيلات اكثر تذكرها

#4

الموضوع موضوع ذكاء صنعي ..نوقش بالمنتدا كثيرا وخصوصا موضوع الصور ومعالجتها

ابحث وستجد الكثير منها مقارنة الصور ايضا وغيرها

الله معك .

#5

مشكور اخوي شادو على الرد ،،،

فيه حاجه لازم اذكرها ،، المشروع مطلوب فيه التعامل مع نوع وحيد من الخط وحجم خط معين فقط ..

في البدايه عملت صور تحتوي على مجموعه الارقام من ٠ الى ٩ وبعدها اقتطعت الجزء الموجود فيه الرقم واخذت الصوره الجزئيه ،،

بعد كذا حولت الجزء المقتطع الى hex(١) وخزنته في مصفوفه ،،

طريقه عمل الكود اللي سويته انه ياخذ اي صوره يعطيها له المستخدم ويبحث عن الرقم في الصوره ،، يقتطع الجزء الموجود فيه الرقم ويحوله الى hex(٢) ويقارن مع المصفوفه الموجوده وفي حاله وجود تشابه يطبع الرقم ،،

الطريقه تشتغل مع نفس الصور ( الصور اللي استخرجت منها الhex(١) ) فقط لا غير واذا جربت صوره ثانيه تحتوي على احد الارقام الكود ما يشتغل ،،

اتوقع ان التحويل الى hex غير عملي وهو سبب المشكله فهل فيه طرق ثانيه ممكن استخدمها ،، وهل الطريقه اللي استخدمتها طريقه صحيحه ام لا ؟

تم تعديل هذه المشاركة بواسطة azezennafs في 8 أبريل 2009 في 23:05

#6

يا شباب هذا الكود اللي كتبته ،،

وياليت احد يساعدني

/*
  * To change this template, choose Tools | Templates
  * and open the template in the editor.
  */

 package t3reeb;

 import com.sun.image.codec.jpeg.*;
 import java.awt.image.BufferedImage;
 import java.io.ByteArrayOutputStream;
 import java.io.File;
 import java.io.IOException;
 import javax.imageio.ImageIO;

 /**
  *
  * @author saads
  */
 public class MyOCR {

	  public static final String NUMBERS[] = {
		  "ffd8ffe000104a46494600010100000100010000ffdb00430008060607060508070707090908
0a0c140d0c0b0b0c1912130f141d1a1f1e1d1a1c1c20242e2720222c231c1c2837292c30313434341
f27393d38323c2e333432ffdb0043010909090c0b0c180d0d1832211c213232323232323232323232
323232323232323232323232323232323232323232323232323232323232323232323232323232ffc
0001108000a000703012200021101031101ffc4001f00000105010101010101000000000000000001
02030405060708090a0bffc400b5100002010303020403050504040000017d0102030004110512213
1410613516107227114328191a1082342b1c11552d1f02433627282090a161718191a25262728292a
3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a838
485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8
c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1f2f3f4f5f6f7f8f9faffc4001f01000301010
10101010101010000000000000102030405060708090a0bffc400b511000201020404030407050404
00010277000102031104052131061241510761711322328108144291a1b1c109233352f0156272d10
a162434e125f11718191a262728292a35363738393a434445464748494a535455565758595a636465
666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab
2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6
f7f8f9faffda000c03010002110311003f00b3e1bf1af8c4fc70d574192373677771330b5bc520431
a21d8ea7b02157a641cfe3457b64b696cda8c176d6f11b94464498a0deaa792037500e07145007fff
d9",
		  "ffd8ffe000104a46494600010100000100010000ffdb00430008060607060508070707090908
0a0c140d0c0b0b0c1912130f141d1a1f1e1d1a1c1c20242e2720222c231c1c2837292c30313434341
f27393d38323c2e333432ffdb0043010909090c0b0c180d0d1832211c213232323232323232323232
323232323232323232323232323232323232323232323232323232323232323232323232323232ffc
00011080015000703012200021101031101ffc4001f00000105010101010101000000000000000001
02030405060708090a0bffc400b5100002010303020403050504040000017d0102030004110512213
1410613516107227114328191a1082342b1c11552d1f02433627282090a161718191a25262728292a
3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a838
485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8
c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1f2f3f4f5f6f7f8f9faffc4001f01000301010
10101010101010000000000000102030405060708090a0bffc400b511000201020404030407050404
00010277000102031104052131061241510761711322328108144291a1b1c109233352f0156272d10
a162434e125f11718191a262728292a35363738393a434445464748494a535455565758595a636465
666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab
2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6
f7f8f9faffda000c03010002110311003f00d6f02f8a35cd0fe2d6bbe13f13cd9fb7cd25ddb313f22
b6370d84f44283a762b8eb9a29ff1e74e7b45d0bc4f6713b5ddbccf68c63fbcc8e8cc39f4186ffbe8
d1401dafc45b18b52d374bb39c031cb7e33c7a4329fe945145007fffd9",
		  "ffd8ffe000104a46494600010100000100010000ffdb00430008060607060508070707090908
0a0c140d0c0b0b0c1912130f141d1a1f1e1d1a1c1c20242e2720222c231c1c2837292c30313434341
f27393d38323c2e333432ffdb0043010909090c0b0c180d0d1832211c213232323232323232323232
323232323232323232323232323232323232323232323232323232323232323232323232323232ffc
00011080016000c03012200021101031101ffc4001f00000105010101010101000000000000000001
02030405060708090a0bffc400b5100002010303020403050504040000017d0102030004110512213
1410613516107227114328191a1082342b1c11552d1f02433627282090a161718191a25262728292a
3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a838
485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8
c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1f2f3f4f5f6f7f8f9faffc4001f01000301010
10101010101010000000000000102030405060708090a0bffc400b511000201020404030407050404
00010277000102031104052131061241510761711322328108144291a1b1c109233352f0156272d10
a162434e125f11718191a262728292a35363738393a434445464748494a535455565758595a636465
666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab
2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6
f7f8f9faffda000c03010002110311003f002c3e336b3e09d7f56d0fc69a74d74f1dd49247240e37c
618ee0a3380c9820a9e08071e8076de01d7f5df19e9da9ebd187b4b4bad41becb0cad9db12c71a0c7
1d32ac4e38ceeac5f8e5a3c762da1f8da0815e7d32ee38ee54a822488b6406f500823fe075ec28891
a2a46a1114602a8c00280399f88fa6c7ab7c39f105ac98c7d8a49573fde8c6f5fd5457476f1b436d1
44c72c88149f5205145007ffd9",
		  "ffd8ffe000104a46494600010100000100010000ffdb00430008060607060508070707090908
0a0c140d0c0b0b0c1912130f141d1a1f1e1d1a1c1c20242e2720222c231c1c2837292c30313434341
f27393d38323c2e333432ffdb0043010909090c0b0c180d0d1832211c213232323232323232323232
323232323232323232323232323232323232323232323232323232323232323232323232323232ffc
00011080016000f03012200021101031101ffc4001f00000105010101010101000000000000000001
02030405060708090a0bffc400b5100002010303020403050504040000017d0102030004110512213
1410613516107227114328191a1082342b1c11552d1f02433627282090a161718191a25262728292a
3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a838
485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8
c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1f2f3f4f5f6f7f8f9faffc4001f01000301010
10101010101010000000000000102030405060708090a0bffc400b511000201020404030407050404
00010277000102031104052131061241510761711322328108144291a1b1c109233352f0156272d10
a162434e125f11718191a262728292a35363738393a434445464748494a535455565758595a636465
666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab
2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6
f7f8f9faffda000c03010002110311003f0082d7e3af88744d6f56d1f54d05afee45eccb6d1090a49
165ce23202b6e03b639c773c5563e22f8a5aeda5f7847fb12f2cef6eae9ee5af712446042c64d8afd
02e4000e7a71ce6bb7f1ce987c3df15bc23e2db04d8750bc4d2ef82f024f33e5427d4e33ff007c2d7
ac500729e39b217b0f87d09c18f5cb3994ffbae4ff2047e35d5d145007fffd9",
		  "ffd8ffe000104a46494600010100000100010000ffdb00430008060607060508070707090908
0a0c140d0c0b0b0c1912130f141d1a1f1e1d1a1c1c20242e2720222c231c1c2837292c30313434341
f27393d38323c2e333432ffdb0043010909090c0b0c180d0d1832211c213232323232323232323232
323232323232323232323232323232323232323232323232323232323232323232323232323232ffc
00011080015000a03012200021101031101ffc4001f00000105010101010101000000000000000001
02030405060708090a0bffc400b5100002010303020403050504040000017d0102030004110512213
1410613516107227114328191a1082342b1c11552d1f02433627282090a161718191a25262728292a
3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a838
485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8
c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1f2f3f4f5f6f7f8f9faffc4001f01000301010
10101010101010000000000000102030405060708090a0bffc400b511000201020404030407050404
00010277000102031104052131061241510761711322328108144291a1b1c109233352f0156272d10
a162434e125f11718191a262728292a35363738393a434445464748494a535455565758595a636465
666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab
2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6
f7f8f9faffda000c03010002110311003f00eb26d7ee3e22f8ae5d1b45d7ad2c347d2ee905daabe6e
6fca90595064622e0aeecf27b11c57a9d78427c27f0d6adf13e44d0ae6f62b4d324136a4565caa4a4
e56189bef03c12c7276f03393c7bbd007cb3f143c2b75e04f145e6afa46bb7b13de486e3f76cd1c88
59b246f0d93c92738ff001afa2740d39d7c39a589f50be9e61691092679d8b48db0658f3d49e68a28
03ffd9",
		  "ffd8ffe000104a46494600010100000100010000ffdb00430008060607060508070707090908
0a0c140d0c0b0b0c1912130f141d1a1f1e1d1a1c1c20242e2720222c231c1c2837292c30313434341
f27393d38323c2e333432ffdb0043010909090c0b0c180d0d1832211c213232323232323232323232
323232323232323232323232323232323232323232323232323232323232323232323232323232ffc
0001108000f000d03012200021101031101ffc4001f00000105010101010101000000000000000001
02030405060708090a0bffc400b5100002010303020403050504040000017d0102030004110512213
1410613516107227114328191a1082342b1c11552d1f02433627282090a161718191a25262728292a
3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a838
485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8
c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1f2f3f4f5f6f7f8f9faffc4001f01000301010
10101010101010000000000000102030405060708090a0bffc400b511000201020404030407050404
00010277000102031104052131061241510761711322328108144291a1b1c109233352f0156272d10
a162434e125f11718191a262728292a35363738393a434445464748494a535455565758595a636465
666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab
2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6
f7f8f9faffda000c03010002110311003f00dff16e87e2af899757f2e85afae9ba669972d696d0067
4173326048eccbd006ca8e0fdd278cf399e12f897af7847edbe1cf1cdadcdc5f593279336e0cec8c0
f56ce187030dd7939e95434fb1f8b9e04d42f74ad22ced350b3b9ba79a169a58c862c796197565cf1
9078cfe75de787bc037faa35ceb1e3f7b7bfd5ae422243101e5dac49bb0ab8ee4b127f99a00ffd9",
		  "ffd8ffe000104a46494600010100000100010000ffdb00430008060607060508070707090908
0a0c140d0c0b0b0c1912130f141d1a1f1e1d1a1c1c20242e2720222c231c1c2837292c30313434341
f27393d38323c2e333432ffdb0043010909090c0b0c180d0d1832211c213232323232323232323232
323232323232323232323232323232323232323232323232323232323232323232323232323232ffc
00011080015000c03012200021101031101ffc4001f00000105010101010101000000000000000001
02030405060708090a0bffc400b5100002010303020403050504040000017d0102030004110512213
1410613516107227114328191a1082342b1c11552d1f02433627282090a161718191a25262728292a
3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a838
485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8
c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1f2f3f4f5f6f7f8f9faffc4001f01000301010
10101010101010000000000000102030405060708090a0bffc400b511000201020404030407050404
00010277000102031104052131061241510761711322328108144291a1b1c109233352f0156272d10
a162434e125f11718191a262728292a35363738393a434445464748494a535455565758595a636465
666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab
2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6
f7f8f9faffda000c03010002110311003f00ca866f8dde1bd324d2e08ee16cec5182ced140e1635f4
76ce463d79af7af0849753f837459efa769eee6b28659a56eacec818fea697c5ab23f8335d5886643
a7dc0404679f2db1c573bf0b7c55a7eb3f0eb4773770a4f6b02d9cc924803078d42f39f5186fc6803
ba60194ab0041e083debc7a3f837a2e9b777d143732981ee0c9123039894aafc99cf38e79f4fce8a2
803fffd9",
		  "ffd8ffe000104a46494600010100000100010000ffdb00430008060607060508070707090908
0a0c140d0c0b0b0c1912130f141d1a1f1e1d1a1c1c20242e2720222c231c1c2837292c30313434341
f27393d38323c2e333432ffdb0043010909090c0b0c180d0d1832211c213232323232323232323232
323232323232323232323232323232323232323232323232323232323232323232323232323232ffc
00011080015000f03012200021101031101ffc4001f00000105010101010101000000000000000001
02030405060708090a0bffc400b5100002010303020403050504040000017d0102030004110512213
1410613516107227114328191a1082342b1c11552d1f02433627282090a161718191a25262728292a
3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a838
485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8
c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1f2f3f4f5f6f7f8f9faffc4001f01000301010
10101010101010000000000000102030405060708090a0bffc400b511000201020404030407050404
00010277000102031104052131061241510761711322328108144291a1b1c109233352f0156272d10
a162434e125f11718191a262728292a35363738393a434445464748494a535455565758595a636465
666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab
2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6
f7f8f9faffda000c03010002110311003f00e83e1278f2faff005dd5fc25af7991dfdbcf2cd6a26e1
f66f25a339eeb9047b67b0ab9e3dd6f53d6fc6fa77827438de509135dea451b6e1769f2d58f1819da
dee4ad43f16b471a26a5a3fc45d3e2db75a55cc6b7db3832c0c76f3efcedfa3fb0ae9fe1fe9f1bdb6
a7e269006bad76edee449d48b704ac0b9f4d801ff00815006c78bac61d4fc1dad59ce331cb652a9e3
383b0e0fd41c1fc2ae68b6d1d9685a75a42311416d1c683d155401fca8a2803fffd9",
		  "ffd8ffe000104a46494600010100000100010000ffdb00430008060607060508070707090908
0a0c140d0c0b0b0c1912130f141d1a1f1e1d1a1c1c20242e2720222c231c1c2837292c30313434341
f27393d38323c2e333432ffdb0043010909090c0b0c180d0d1832211c213232323232323232323232
323232323232323232323232323232323232323232323232323232323232323232323232323232ffc
00011080015000f03012200021101031101ffc4001f00000105010101010101000000000000000001
02030405060708090a0bffc400b5100002010303020403050504040000017d0102030004110512213
1410613516107227114328191a1082342b1c11552d1f02433627282090a161718191a25262728292a
3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a838
485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8
c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1f2f3f4f5f6f7f8f9faffc4001f01000301010
10101010101010000000000000102030405060708090a0bffc400b511000201020404030407050404
00010277000102031104052131061241510761711322328108144291a1b1c109233352f0156272d10
a162434e125f11718191a262728292a35363738393a434445464748494a535455565758595a636465
666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab
2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6
f7f8f9faffda000c03010002110311003f00f4df8aba8cba77c37d60dbef373710fd9e254fbcc5f86
c7d1771fc2b6bc2badc7e24f0ae97ac4654fdaedd6470bd15f1861f83023f0ae31f5a83c71f15edf4
7b322e348f0f4724f78e39496e594c6a9efb433fe3bbd2b91f04f8b23f85be2bd5bc0de239cc3a547
334d6176f92115be600e3b30c74e8d91df800f4cf87de16b2f0d6872c96ff003dc6a3335ddc4c5705
8b1242fd141c7e67bd64fc4ef87fa5f8aa2b4d52e098aeeccecdea81bcd8db8da7e84e41fafaf0514
01fffd9",
		  "ffd8ffe000104a46494600010100000100010000ffdb00430008060607060508070707090908
0a0c140d0c0b0b0c1912130f141d1a1f1e1d1a1c1c20242e2720222c231c1c2837292c30313434341
f27393d38323c2e333432ffdb0043010909090c0b0c180d0d1832211c213232323232323232323232
323232323232323232323232323232323232323232323232323232323232323232323232323232ffc
00011080016000c03012200021101031101ffc4001f00000105010101010101000000000000000001
02030405060708090a0bffc400b5100002010303020403050504040000017d0102030004110512213
1410613516107227114328191a1082342b1c11552d1f02433627282090a161718191a25262728292a
3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a838
485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8
c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1f2f3f4f5f6f7f8f9faffc4001f01000301010
10101010101010000000000000102030405060708090a0bffc400b511000201020404030407050404
00010277000102031104052131061241510761711322328108144291a1b1c109233352f0156272d10
a162434e125f11718191a262728292a35363738393a434445464748494a535455565758595a636465
666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab
2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6
f7f8f9faffda000c03010002110311003f00b3e2d97c5fe3fd575e9fc39e238b4dd334299ede3b68e
eda2967923c6f73b7b1390a49c7031dcd7a87c3dd66e3c41e00d1753bb72f7335b012b9eaeca4a96f
c4ae7f1ae23c41f00344d73c4973aaa6a977691dd4ad34d6f1c6a46e6393b49e99393c83d6b6fe095
e2ddfc28d200237406685c0ec448c47e845007a15786787be1aeb9a75ceb961a7789ee2c2d6df5270
915b3b2a9568e3752463aed6507e9451401fffd9",
	   };
		  public static String asHex (byte buf[]) {
		 StringBuffer strbuf = new StringBuffer(buf.length * 2);
		 int i;
		 for (i = 0; i < buf.length; i++) {
		 if (((int) buf & 0xff) < 0x10)
		   strbuf.append("0");
		   strbuf.append(Long.toString((int) buf & 0xff, 16));
		 }

		 return strbuf.toString();
	 }

		  public static byte[] bufferedImageToByteArray(BufferedImage img) throws ImageFormatException, IOException{

	   ByteArrayOutputStream os = new ByteArrayOutputStream();

	   JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(os);

	   encoder.encode(img);

	   return os.toByteArray();

	   }
	  public int getNumber(BufferedImage g) throws IOException, IOException {
	   BufferedImage a = null;
	   byte[] testB;
	   String ImageAsHex;


	   int RecognizedNumber = -1;
	   int StartX = -1;
	   int StartY = -1;
	   int EndX = -1;
	   int EndY = -1;
	   boolean FoundNumber = false;

	   int w=g.getWidth();
	   int h=g.getHeight();
	   int[] n;
	   n=new int[w];
	   for (int x = 0; x < w; x++) {

		 for (int y = 0; y < h; y++) {
			 if(g.getRGB(x,y)<-1000000){

				 if (!FoundNumber){
					 StartX = x;
					 StartY = y;
					 FoundNumber = true;
				 }
				 else {
					 if (x<StartX) StartX=x;
					 else
					 if (x>EndX)
					 EndX =x;
					 if (y<StartY) StartY=y;
					 else
					 if(y>EndY)
					 EndY=y;
				 }
			 }
		 }
	   }

		a = g.getSubimage(StartX,StartY,(EndX-StartX)+1,(EndY-StartY)+1);

		 testB = bufferedImageToByteArray(a);
		 ImageAsHex=asHex(testB);


		 for (int i=0;i<10;i++){
			 if(ImageAsHex.equals(NUMBERS))
				 RecognizedNumber=i;


		 }

	   return RecognizedNumber;
   }
	  public static void main(String[] argv) throws IOException {
		  File file = new File("/Users/saads/Desktop/HW2/666.jpg");
		  BufferedImage orig = ImageIO.read(file);
		  MyOCR ocr = new MyOCR();
		  System.out.println(ocr.getNumber(orig));

	  }

 }

مواضيع مشابهة