Phân tích vấn đề:

Một phần của tài liệu Nghiên cứu các phương pháp nhận dạng từ dưới cursor mouse trên desktop windows (Trang 68 - 69)

1 - Ý tưởng dẫn đến giải thuật:

- Mục đích yêu cầu của đề tài là: "Nhận dạng từ dưới cursor mouse trên desktop window". Có nghĩa là tại một vị trí bất kỳ nào đó của cursor mouse trên màn hình Windows nếu có một tác động chuột quy định trước (chẳng hạn như click nút phải của chuột) thì phải lấy được từ ở ngay dưới vị trí cursor (nếu có), hoặc xuất ra thông báo cho biết không có từ nào nằm ngay dưới vị trí cursor đang đứng.

- Có 2 dạng thể hiện văn bản trên màn hình Windows, đó là: * Thể hiện dưới dạng ảnh, dùng hàm kết xuất và xử lý ảnh * Thể hiện dưới dạng chuỗi văn bản, dùng hàm kết xuất văn bản

- Đối với dạng thể hiện ảnh, văn bản chỉ là tập các điểm ảnh của bức ảnh, chẳng có ý nghĩa gì khác đối với Windows, nên nếu muốn trích văn bản ra chỉ có một cách là xử lý ảnh, điều này thực sự là một vấn đề hay và có nhiều ứng dụng thực tiễn: như nhận dạng một trang giấy được scan vào máy để tạo ra file text tương ứng thay cho việc đánh máy lại trang giấy đó. Tuy nhiên nó là vấn đề hết sức phức tạp có sai số nhất định, và tùy thuộc vào font chữ mà văn bản thể hiện, trong khi đó có một cách khác để lấy đượïc chính xác các dòng text trên màn hình.

- Đối với dạng thể hiện văn bản bằng các hàm kết xuất văn bản: Ứng dụng sẽ gởi cho Windows chuỗi văn bản cần thể hiện và các thông số cần thiết, và Windows dùng các hàm kết xuất văn bản để vẽ chuỗi văn bản đó ra màn hình. Từ cách kết xuất đó đã nảy sinh một ý tưởng về việc nhận dạng các dòng text trên màn hình: là nếu ta có thể khống chế các hàm kết xuất văn bản, lấy về các thông tin của các hàm này, thì vấn đề có thể thực hiện được mà không cần phải xử lý ảnh.

* Từ sự phân tích đó chúng tôi đã chọn giải thuật dựa vào sự khống chế các hàm xuất văn bản của Windows, và cũng may mắn là hầu như tất cả dòng văn bản kết xuất ra màn hình đều dùng dạng kết xuất dùng hàm kết xuất văn bản, nên nếu thực hiện hoàn hảo ý tưởng nói trên thì vấn đề được giải quyết gần như hoàn toàn.

2 - Phân tích vấn đề:

Để thực hiện được các ý tưởng trên, cần phải thực hiện các việc sau:

- Override các hàm kết xuất văn bản của Windows để khống chế việc kết xuất văn bản ra màn hình.

- Tạo một cái bẫy sự kiện chuột để khi sự kiện chuột quy định xảy ra sẽ dẫn vào phần xử lý lấy text của chương trình. Chú ý là trong phần xử lý này phải có cách nào đó để khiến Windows vẽ lại các dòng text, có như vậy thì hàm override kết xuất văn bản mới vớt được các thông tin, và in kết quả vào cửa sổ ứng dụng của chương trình chính.

- Có một đoạn chương trình để phân tích dòng văn bản, để tách lấy từ ra.

- Chương trình chính làm điểm bắt đầu / kết thúc chương trình, và enable / disable việc trích lấy từ (bẫy sự kiện chuột).

Một phần của tài liệu Nghiên cứu các phương pháp nhận dạng từ dưới cursor mouse trên desktop windows (Trang 68 - 69)