Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (98.21 KB, 13 trang )
<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">
File hình ảnh đã đc xử lý phông nền (background) & nhiễu (noise)
Đếm các dòng ký tự trong một bức ảnh chứa các ký tự là điều quan trọng trong việc giới hạn các ranh giới mà việc dị tìm có thể thực hiện bên trong đó. Vì thế, việc dị tìm ký tự sau này trong một bức ảnh sẽ không cần thiết bao gồm việc quét qua toàn bộ bức ảnh một lần nữa.
Đối với việc xác định dòng ký tự, chúng ta chỉ quan tâm đến 2 thuộc tính: <small>●</small> Đỉnh dịng ký tự (Line Top)
<small>●</small> Đáy dòng ký tự (Line Bottom).
Việc xác định này cần phải tiến hành quét qua từng dòng điểm ảnh (pixel line) trong tập tin ảnh cần phân tích:
<i>chiều rộng của bức ảnh</i>
<b>a. if color(x,y)==black { LineTop</b><i><b>=y;} //nếu tìm thấy điểm ảnh màu đen, thì tìm </b></i>
<i>ra Đỉnh dịng Ký tự</i>
<i><b>b. else { x++; } //ngược lại thì duyệt qua điểm ảnh kế tiếp theo trục x</b></i>
<i><b>c. if x==Img.Width {y++; x=0;} //nếu đã duyệt qua hết chiều rộng của bức ảnh </b></i>
<i>thì chuyển sang dòng điểm ảnh y tiếp theo, tại điểm ảnh x đầu tiên</i>
<i>điểm ảnh dưới Đỉnh dòng Ký tự</i>
<i>chiều rộng của bức ảnh</i>
<b>a. if color(x,y)!=Black { LineBottom</b><i><b>=y-1; NumOfLine++;} //nếu hết dòng điểm</b></i>
<i>ảnh y mà khơng tìm thấy điểm ảnh màu đen nào, thì tìm ra Đáy dòng Ký tự. Tăng số Dòng Ký tự thêm 1</i>
<i><b>b. else { y++; x=0; } //ngược lại thì chuyển sang dòng điểm ảnh y tiếp theo, tại </b></i>
<i>điểm ảnh x đầu tiên</i>
</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4"><b>Đối với dịng KHƠNG có ký tự cao, nếu xuất hiện thêm ký tự có dấu lửng thì dễ bị </b>
nhầm lẫn thành 2 dòng ký tự do dấu lửng của ký tự có dấu lửng
Ngồi ra, chúng ta cần bổ sung thêm cho bước B4 trường hợp dòng ký tự cuối cùng chạm mép hay bị cắt ngang do giới hạn của chiều cao bức ảnh.
</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">Việc dị tìm các ký tự riêng lẻ sẽ gao gồm việc quét qua các dòng ký tự để cho ra các ảnh riêng biệt với các điểm ảnh màu đen
Việc dị từng ký tự trên dịng ký tự thì lại phụ thuộc vào 4 thuộc tính: <small>●</small> Đỉnh Ký tự (Character Top)
<small>●</small> Đáy Ký tự (Characer Bottom) <small>●</small> Cạnh trái Ký tự (Character Left) <small>●</small> Cạnh phải Ký tự (Character Right)
<i><b>B1: x=0; y=LineTop; //bắt đầu tại Đỉnh dòng ký tự đầu tiên và điểm ảnh x đầu tiên</b></i>
<b>B2: y fix; x→</b><i><b>Img.Width; //cố định dòng điểm ảnh y, duyệt qua trục x cho đến hết chiều </b></i>
<i>rộng của bức ảnh</i>
<i><b> a. if color(x,y)==Black { LineTop=CharacterTop=y;} //nếu tìm thấy điểm ảnh </b></i>
<i>màu đen, thì tìm ra Đỉnh dòng Ký tự, cũng là Đỉnh Ký tự</i>
<i><b> b. else { x++;} //ngược lại thì duyệt qua điểm ảnh kế tiếp theo trục x</b></i>
<i>hết chiều cao của bức ảnh</i>
<b>a. if color(x,y)==black { CharacterLeft</b><i><b>=x; } //nếu tìm thấy điểm ảnh màu đen, </b></i>
<i>thì tìm ra Cạnh trái Ký tự</i>
<i><b>b. else { y++; } //ngược lại thì duyệt qua điểm ảnh kế tiếp theo trục y</b></i>
<i><b>c. if y==LineBottom { x++; y=LineTop; } //nếu đã duyệt qua hết chiều cao của </b></i>
<i>bức ảnh thì chuyển sang cột điểm ảnh x tiếp theo, tại điểm ảnh y là Đỉnh dòng Ký tự</i>
<i>hết chiều cao của bức ảnh</i>
<b>a. if color(x,y)!=black { CharacterRight=x-1;} //nếu khơng tìm thấy điểm ảnh </b>
mà đen nào, thì Cạnh trái Ký tự được tìm thấy
<i><b>b. else { x++, y=LineTop; } //ngược lại thì chuyển sang cột điểm ảnh x tiếp theo,</b></i>
<i>tại điểm ảnh y đầu tiên</i>
<i>đến hết Cạnh phải Ký tự </i>
<b>a. if color(x,y)==black { CharacterTop</b><i><b>=y; } //nếu tìm thấy điểm ảnh màu đen, </b></i>
<i>thì tìm ra Đỉnh Ký tự</i>
<i><b>b. else { x++; } //ngược lại thì duyệt qua điểm ảnh kế tiếp theo trục x</b></i>
<i><b>c. if x==CharacterRight { y++; x=CharacterLeft; } //nếu đã duyệt qua hết Cạnh</b></i>
<i>phải Ký tự thì chuyển sang dịng điểm ảnh y tiếp theo, tại điểm ảnh x là Cạnh trái Ký tự</i>
<i>đến hết Cạnh phải Ký tự</i>
<b>a. if color(x,y)==black { CharacterBottom</b><i><b>=y; } //nếu tìn thấy điểm ảnh màu </b></i>
<i>đen, thì tìm ra Đáy Ký tự</i>
<i><b>b. else { x++; } //ngược lại thì duyệt qua điểm ảnh kế tiếp theo trục x</b></i>
<i><b>c. if x==CharacterRight { y--; x=CharacterLeft; } //nếu đã duyệt qua hết Cạnh </b></i>
<i>phải Ký tự thì chuyển sang dòng điểm ảnh y bên trên, tại điểm ảnh x là Cạnh trái Ký tự</i>
Lặp lại các bước trên để tìm cho hết các ký tự của Dịng Ký tự.
</div>