Báo cáo Nghiên cứu các phương pháp nhận dạng từ dưới cursor mouse trên desktop windows. Viết chương trình nhận dạng từ này

Tài liệu Báo cáo Nghiên cứu các phương pháp nhận dạng từ dưới cursor mouse trên desktop windows. Viết chương trình nhận dạng từ này: BÁO CÁO LUẬN VĂN TỐT NGHIỆP Tên Đề Tài : Nghiên Cứu Các Phương Pháp Nhận Dạng Từ Dưới Cursor Mouse Trên Desktop Windows. Viết Chương Trình Nhận Dạng Từ Này. Giáo viên hướng dẫn : Lê Tấn Hùng Sinh Viên Thực Hiện : Lương Cao Hoài Tâm NỘI DUNG BÁO CÁO GỒM CHƯƠNG I : TÌM HIỂU VỀ LẬP TRÌNH WINDOWS CHƯƠNG II : TÌM HIỂU VỀ HOOKS CHƯƠNG III : KỸ THUẬT OVERRIDE HÀM API CHƯƠNG IV : KẾT XUẤT VĂN BẢN TRONG WINDOWS CHƯƠNG V : PHÂN TÍCH VÀ THIẾT KẾ CHƯƠNG TRÌNH CHƯƠNG I : TÌM HIỂU VỀ LẬP TRÌNH WINDOWS KHÁI NIỆM VỀ LẬP TRÌNH TRONG WINDOWS Môi trường lập trình Windows về cơ bản là dựa trên bộ hàm API (Application Programmer Interface), nó có chức năng như các ngắt trong bảng vector ngắt của DOS, nhưng nó thân thiện hơn ở chỗ cách gọi hàm API giống hệt cách gọi hàm của ngôn ngữ cấp cao, mỗi hàm có một tên gọi hẳn hoi, và tên gọi thường được đặt rất phù hợp với công dụng củ...

ppt26 trang | Chia sẻ: haohao | Lượt xem: 978 | Lượt tải: 0download
Bạn đang xem trước 20 trang mẫu tài liệu Báo cáo Nghiên cứu các phương pháp nhận dạng từ dưới cursor mouse trên desktop windows. Viết chương trình nhận dạng từ này, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
BAÙO CAÙO LUAÄN VAÊN TOÁT NGHIEÄP Teân Ñeà Taøi : Nghieân Cöùu Caùc Phöông Phaùp Nhaän Daïng Töø Döôùi Cursor Mouse Treân Desktop Windows. Vieát Chöông Trình Nhaän Daïng Töø Naøy. Giaùo vieân höôùng daãn : Leâ Taán Huøng Sinh Vieân Thöïc Hieän : Löông Cao Hoaøi Taâm NOÄI DUNG BAÙO CAÙO GOÀM CHÖÔNG I : TÌM HIEÅU VEÀ LAÄP TRÌNH WINDOWS CHÖÔNG II : TÌM HIEÅU VEÀ HOOKS CHÖÔNG III : KYÕ THUAÄT OVERRIDE HAØM API CHÖÔNG IV : KEÁT XUAÁT VAÊN BAÛN TRONG WINDOWS CHÖÔNG V : PHAÂN TÍCH VAØ THIEÁT KEÁ CHÖÔNG TRÌNH CHÖÔNG I : TÌM HIEÅU VEÀ LAÄP TRÌNH WINDOWS KHAÙI NIEÄM VEÀ LAÄP TRÌNH TRONG WINDOWS Moâi tröôøng laäp trình Windows veà cô baûn laø döïa treân boä haøm API (Application Programmer Interface), noù coù chöùc naêng nhö caùc ngaét trong baûng vector ngaét cuûa DOS, nhöng noù thaân thieän hôn ôû choã caùch goïi haøm API gioáng heät caùch goïi haøm cuûa ngoân ngöõ caáp cao, moãi haøm coù moät teân goïi haún hoi, vaø teân goïi thöôøng ñöôïc ñaët raát phuø hôïp vôùi coâng duïng cuûa haøm (maëc duø coù hôi daøi doøng) töø ñoù taïo khaû naêng gôïi nhôù cao. CHÖÔNG I : TÌM HIEÅU VEÀ LAÄP TRÌNH WINDOWS Vôùi Windows, ngöôøi laäp trình khoâng coøn phaûi laäp trình theo kieåu assembly nöõa maø laäp trình theo kieåu ngoân ngöõ caáp cao, moïi hoaït ñoäng trong maùy ôû möùc thaáp töø haøm API trôû xuoáng thuoäc phaïm vi cuûa Windows, vaø Windows khoâng khuyeán khích vieäc caùc öùng duïng can thieäp vaøo lónh vöïc naøy. Buø laïi, baèng caùc haøm API, noù hoã trôï raát hieäu quaû cho ngöôøi laäp trình, giuùp khai thaùc khaû naêng cuûa thieát bò trieät ñeå, deã daøng vaø tieän lôïi hôn bao giôø heát. CHÖÔNG I : TÌM HIEÅU VEÀ LAÄP TRÌNH WINDOWS Thö vieän lieân keát ñoäng DLL Coù 3 loaïi DLL khaùc nhau: - Thö vieän lieân keát ñoäng API: thuoäc heä Thoáng Windows, khi caøi heä ñieàu haønh thì noù ñaõ coù saün. Chuùng ñöôïc naïp khi Windows khôûi ñoäng. - Thö vieän lieân keát ñoäng third party: do caùc coâng ty khaùc taïo ra treân moâi tröôøng Windows, hoã trôï theâm coâng taùc laäp trình trong Windows. - Thö vieän lieân keát ñoäng do chuùng ta taïo ra. CHÖÔNG I : TÌM HIEÅU VEÀ LAÄP TRÌNH WINDOWS THOÂNG ÑIEÄP VAØ XÖÛ LYÙ THOÂNG ÑIEÄP: Laäp trình treân moâi tröôøng Windows khaùc vôùi laäp trình ôû caùc moâi tröôøng khaùc ôû ñieåm laø laäp trình treân Windows luoân luoân gaén lieàn vôùi nhöõng thoâng ñieäp. Moïi hoaït ñoäng xaûy ra treân moät chöông trình Windows ñeàu thoâng qua caùc thoâng ñieäp. Thoâng ñieäp seõ ñöôïc heä thoáng baùo cho caùc öùng duïng bieát caùc taùc ñoäng töø beân ngoaøi vaøo heä thoáng Windows. Moät cöûa soå coù theå gôûi ñi moät thoâng ñieäp cho moät cöûa soå khaùc vaø caùc cöûa soå ñaùp öùng laïi thoâng ñieäp baèng caùch gôûi ñi moät thoâng ñieäp khaùc cho moät cöûa soå khaùc. CHÖÔNG I : TÌM HIEÅU VEÀ LAÄP TRÌNH WINDOWS Trong Windows coù 3 loaïi thoâng ñieäp cô baûn: - Nhöõng thoâng ñieäp toång quaùt: coù maõ nhaän dieän mang tieàn toá WM_ ñöôïc coi laø phaàn lôùn trong öùng duïng vaø Windows ñaõ cung caáp caùc haøm ñeå giaûi quyeát. - Nhöõng control notification: ñaây laø nhöõng thoâng ñieäp WM_COMMAND ñöôïc chuyeån töø cöûa soå con tôùi cöûa soå boá meï. - Nhöõng nuùt leänh: laø thoâng ñieäp WM_COMMAND phaùt ñi töø trình ñôn, töø caùc nuùt ñieàu khieån. Ñaây laø loaïi thoâng ñieäp yeâu caàu öùng duïng phaûi thöïc hieän moät coâng vieäc gì ñoù. CHÖÔNG I : TÌM HIEÅU VEÀ LAÄP TRÌNH WINDOWS Trong Windows coù 3 loaïi thoâng ñieäp cô baûn: - Nhöõng thoâng ñieäp toång quaùt: coù maõ nhaän dieän mang tieàn toá WM_ ñöôïc coi laø phaàn lôùn trong öùng duïng vaø Windows ñaõ cung caáp caùc haøm ñeå giaûi quyeát. - Nhöõng control notification: ñaây laø nhöõng thoâng ñieäp WM_COMMAND ñöôïc chuyeån töø cöûa soå con tôùi cöûa soå boá meï. - Nhöõng nuùt leänh: laø thoâng ñieäp WM_COMMAND phaùt ñi töø trình ñôn, töø caùc nuùt ñieàu khieån. Ñaây laø loaïi thoâng ñieäp yeâu caàu öùng duïng phaûi thöïc hieän moät coâng vieäc gì ñoù. CHÖÔNG I : TÌM HIEÅU VEÀ LAÄP TRÌNH WINDOWS Windows cho pheùp öùng duïng gôûi ñi nhöõng thoâng ñieäp cho mình, cho caùc öùng duïng khaùc hoaëc cho heä thoáng.  Coù 3 haøm Windows API ñeå gôûi thoâng ñieäp ñi: a) Haøm SendMessage b) Haøm PostMessage c) Haøm SendDlgItemMessage CHÖÔNG I : TÌM HIEÅU VEÀ LAÄP TRÌNH WINDOWS GIAO DIEÄN THIEÁT BÒ ÑOÀ HOÏA GDI (GRAPHIC DEVICE INTERFACE) Giao dieän thieát bò ñoà hoïa GDI (Graphic Device Interface) laø moät phaàn cuûa API coù nhieäm vuï duy trì söï ñoäc laäp cuûa Windows ñoái vôùi caùc thieát bò ñoà hoïa (cho pheùp Windows laøm vieäc vôùi nhieàu thieát bò ñoà hoïa khaùc nhau). Windows GDI laø moät thö vieän bao goàm moät soá haøm giuùp keát xuaát ñoà hoïa (graphic output) leân maøn hình, maùy in…GDI seõ taïo ra: ñieåm, ñöôøng keû, hình daïng (shape: chöõ nhaät, troøn…), chöõ vaên baûn. CHÖÔNG I : TÌM HIEÅU VEÀ LAÄP TRÌNH WINDOWS Windows söû duïng caùc heä thoáng toïa ñoä khaùc nhau tuøy theo hoaøn caûnh nhö:  Heä toaï ñoä thieát bò (Device coordinate system)  Heä toaï ñoä toaøn maøn hình (Full screen coordinate system)  Heä toaï ñoä vuøng client (Client area coordinate system)  Heä toaï ñoä toaøn cöûa soå (Whole window coordinate system)  Heä toaï ñoä logic (Logical coordinate system) Trong phaïm vi öùng duïng cuûa ñeà taøi chuùng toâi khoâng quan taâm ñeán heä toaï ñoä thieát bò CHÖÔNG II : TÌM HIEÅU VEÀ HOOKS Hook laø moät cô cheá cöïc maïnh cho pheùp ta caøi ñaët moät thuû tuïc ñeå ñieàu khieån hoaëc chaän höùng caùc thoâng ñieäp tröôùc khi caùc thoâng ñieäp naøy tôùi ñöôïc nôi tieáp nhaän. Hay noùi moät caùch khaùc hook laø moät ñieåm trong kyõ thuaät message-handling heä thoáng, nôi maø moät öùng duïng coù theå ñaët moät thuû tuïc ñeå quaûn lyù söï löu thoâng cuûa caùc thoâng ñieäp trong heä thoáng vaø xöû lyù moät kieåu thoâng baùo naøo ñoù tröôùc khi chuùng tôùi ñöôïc thuû tuïc cöûa soå ñích. CHÖÔNG II : TÌM HIEÅU VEÀ HOOKS Do coù khaû naêng can thieäp maïnh neân hook coù xu höôùng laøm chaäm laïi heä thoáng vì chuùng laøm taêng soá löôïng caùc hoaït ñoäng cuûa heä thoáng ñoái vôùi moãi thoâng ñieäp. Chæ ñaët hook khi thöïc söï caàn thieát vaø dôõ boû chuùng khi khoâng caàn ñeán. CHÖÔNG III : KYÕ THUAÄT OVERRIDE HAØM API Override coù nghóa laø: Thay theá moät giaù trò luùc run-time cho moät giaù trò ñaõ coù trong taäp tin hoaëc trong chöông trình. Hoaëc taïo ra moät ñaùp öùng luùc run-time thay cho tình huoáng döï kieán trong chöông trình. CHÖÔNG III : KYÕ THUAÄT OVERRIDE HAØM API Ñoái vôùi caùc haøm giao tieáp trong moâi tröôøng Windows thì khi Windows goïi ñeán caùc DLL (Dynamic Link Library – Thö vieän lieân keát ñoäng) taïi caùc ñieåm nhaäp cuûa caùc haøm Kernel, User, GDI… ñeå xöû lyù caùc haøm ñöôïc goïi trong öùng duïng thì chính ôû thôøi ñieåm naøy ta coù theå chen vaøo ñeå coù theå thöïc hieän vieäc hoaøn taát baát kyø thao taùc xöû lyù gì. Vieäc chen vaøo ôû thôøi ñieåm ñoù seõ coù 2 caùch nhö sau döïa vaøo thôøi ñieåm ñeå chen vaøo: CHÖÔNG III : KYÕ THUAÄT OVERRIDE HAØM API - Caùch 1 : chen vaøo tröôùc khi haøm API bò goïi ñöôïc thi haønh (front-end processing) - Caùch 2 : sau khi haøm API ñaõ keát thuùc vieäc thöïc thi thì ta cho chen vaøo daãn ñeán vieäc thöïc thi moät thao taùc gì hoaëc moät coâng vieäc theo yeâu caàu cuûa ta (back-end processing). CHÖÔNG III : KYÕ THUAÄT OVERRIDE HAØM API Nhö vaäy override caùc haøm thuoäc giao tieáp Windows laø moät kyõ thuaät cho pheùp developer can thieäp vaøo tieán trình goïi haøm API nhaèm thöïc hieän moät thao taùc, moät coâng vieäc gì ñoù theo muïc ñích cuûa developer tröôùc khi quaù trình thöïc thi haøm API baét ñaàu (theo caùch 1) hoaëc laø ngay sau khi ñaõ keát thuùc vieäc thöïc thi haøm API (theo caùch 2). CHÖÔNG IV : KEÁT XUAÁT VAÊN BAÛN TRONG WINDOWS Keát xuaát vaên baûn theo GDI hoaøn toaøn khaùc vôùi keát xuaát treân moâi tröôøng laäp trình coå ñieån DOS, vì GDI coi vaên baûn nhö laø moät loaïi ñoái töôïng ñoà hoïa. Caùch tieáp caän ñeå keát xuaát vaên baûn cuûa GDI coù theå ñöôïc goïi laø keát xuaát thieân veà pixel (pixel oriented output), GDI söû duïng khung löôùi pixel ñeå cho ta xuaát vaên baûn vaø ta coù theå xuaát vaên baûn ôû baát kyø vò trí naøo treân cöûa soå. Vaø do coi vaên baûn nhö laø moät ñoái töôïng ñoà hoïa neân ta coù theå deã daøng troän vaên baûn vôùi caùc ñoái töôïng ñoà hoïa khaùc. CHÖÔNG IV : KEÁT XUAÁT VAÊN BAÛN TRONG WINDOWS Nhöng khaùc vôùi caùc ñoái töôïng ñoà hoïa khaùc ta phaûi duøng phoâng chöõ (font) ñeå xuaát vaên baûn. Font laø moät ñoái töôïng cuûa GDI duøng ñeå ñònh nghóa nhöõng kyù töï ñeå xuaát ra trong moät chöông trình Windows. Font thöôøng laø moät caên cöù döõ lieäu hoïa tieát moâ taû hình daùng vaø kích thöôùc cuûa moãi chöõ caùi, soá vaø daáu. Moãi thieát bò GDI ñeàu coù theå hoã trôï ñöôïc moät hoaëc nhieàu font. CHÖÔNG V : PHAÂN TÍCH VAØ THIEÁT KEÁ CHÖÔNG TRÌNH Muïc ñích yeâu caàu cuûa ñeà taøi laø: "Nhaän daïng töø döôùi cursor mouse treân desktop window". Coù nghóa laø taïi moät vò trí baát kyø naøo ñoù cuûa cursor mouse treân maøn hình Windows neáu coù moät taùc ñoäng chuoät quy ñònh tröôùc (chaúng haïn nhö click nuùt phaûi cuûa chuoät) thì phaûi laáy ñöôïc töø ôû ngay döôùi vò trí cursor (neáu coù), hoaëc xuaát ra thoâng baùo cho bieát khoâng coù töø naøo naèm ngay döôùi vò trí cursor ñang ñöùng. CHÖÔNG V : PHAÂN TÍCH VAØ THIEÁT KEÁ CHÖÔNG TRÌNH - Coù 2 daïng theå hieän vaên baûn treân maøn hình Windows, ñoù laø: * Theå hieän döôùi daïng aûnh, duøng haøm keát xuaát vaø xöû lyù aûnh * Theå hieän döôùi daïng chuoãi vaên baûn, duøng haøm keát xuaát vaên baûn CHÖÔNG V : PHAÂN TÍCH VAØ THIEÁT KEÁ CHÖÔNG TRÌNH Ñoái vôùi daïng theå hieän aûnh, vaên baûn chæ laø taäp caùc ñieåm aûnh cuûa böùc aûnh, chaúng coù yù nghóa gì khaùc ñoái vôùi Windows, neân neáu muoán trích vaên baûn ra chæ coù moät caùch laø xöû lyù aûnh, ñieàu naøy thöïc söï laø moät vaán ñeà hay vaø coù nhieàu öùng duïng thöïc tieãn: nhö nhaän daïng moät trang giaáy ñöôïc scan vaøo maùy ñeå taïo ra file text töông öùng thay cho vieäc ñaùnh maùy laïi trang giaáy ñoù. Tuy nhieân noù laø vaán ñeà heát söùc phöùc taïp coù sai soá nhaát ñònh, vaø tuøy thuoäc vaøo font chöõ maø vaên baûn theå hieän, trong khi ñoù coù moät caùch khaùc ñeå laáy ñöôïïc chính xaùc caùc doøng text treân maøn hình. CHÖÔNG V : PHAÂN TÍCH VAØ THIEÁT KEÁ CHÖÔNG TRÌNH Ñoái vôùi daïng theå hieän vaên baûn baèng caùc haøm keát xuaát vaên baûn : ÖÙng duïng seõ gôûi cho Windows chuoãi vaên baûn caàn theå hieän vaø caùc thoâng soá caàn thieát, vaø Windows duøng caùc haøm keát xuaát vaên baûn ñeå veõ chuoãi vaên baûn ñoù ra maøn hình. Töø caùch keát xuaát ñoù ñaõ naûy sinh moät yù töôûng veà vieäc nhaän daïng caùc doøng text treân maøn hình: laø neáu ta coù theå khoáng cheá caùc haøm keát xuaát vaên baûn, laáy veà caùc thoâng tin cuûa caùc haøm naøy, thì vaán ñeà coù theå thöïc hieän ñöôïc maø khoâng caàn phaûi xöû lyù aûnh. CHÖÔNG V : PHAÂN TÍCH VAØ THIEÁT KEÁ CHÖÔNG TRÌNH Töø nhöõng phaân tích treân chuùng toâi thieát keá chöông trình nhö sau: - Toå chöùc laøm 2 projects: GETTEXT.MAK : Laø chöông trình chính, taïo khung giao dieän vaø xöû lyù menu. Khi bieân dòch seõ laø GETTEXT.EXE GTDLL.MAK : Chöùa caùc haøm vaø bieán nhôù thöïc hieän vieäc caøi ñaët / gôõ boû baãy söï kieän chuoät; caøi ñaët / gôõ boû override; haøm override; haøm trích töø... Noùi chung laø taát caû phaàn xöû lyù coøn laïi. Khi bieân dòch seõ laø GTDLL.DLL KEÁT QUAÛ VAØ HÖÔÙNG PHAÙT TRIEÅN Chöông trình GETTEXT ñaõ böôùc ñaàu ñaùp öùng ñöôïc yeâu caàu cuûa ñeà taøi ñaët ra : Nhaän daïng ñöôïc caùc töø hieån thò treân maøn hình. Tuy nhieân, do kyõ thuaät override chæ môùi thöïc hieän ñöôïc trong moâi tröôøng Windows 16 bits, neân chöông trình naøy chæ chaïy ñöôïc treân moâi tröôøng Windows 16bits. KEÁT QUAÛ VAØ HÖÔÙNG PHAÙT TRIEÅN Trong moâi tröôøng Windows 9x, laø moâi tröôøng lai taïp giöõa 16bits vaø 32bits, neân chöông trình chæ nhaän daïng ñöôïc khi doøng vaên baûn ñöôïc xuaát bôûi caùc haøm keát xuaát vaên baûn cuûa moâi tröôøng 16bits (nhö TextOut, ExtTextOut), coøn ñoái vôùi vaên baûn ñöôïc keát xuaát bôûi caùc haøm cuûa moâi tröôøng 32bits (nhö TextOutA, ExtTextOutA - ñöôïc duøng ñeå keát xuaát vaên baûn trong caùc phaàm meàm 32bits nhö Microsoft Office 97) thì chöông trình khoâng theå nhaän daïng ñöôïc. Duø vaäy ñieàu maø ñeà taøi ñaõ ñaït ñöôïc laø ñöa ra ñöôïc moät giaûi thuaät khung söôøn mang tính khaû thi, coù theå phaùt trieån hoaøn chænh trong töông lai.

Các file đính kèm theo tài liệu này:

  • pptNhan Dang.ppt