Ý tƣởng của việc áp dụng biến đổi Hough trong phát hiện góc nghiêng phiếu điểm là dùng một mảng tích luỹ để đếm số điểm ảnh nằm trên một đƣờng thẳng trong không gian ảnh.Mảng tích luỹ là một mảng hai chiều với chỉ số hàng của mảng cho biết góc lệch của một đƣờng thẳng và chỉ số cột chính là giá trị r khoảng cách từ gốc toạ độ tới đƣờng thẳng đó. Sau đó tính tổng số điểm ảnh nằm trên những đƣờng thẳng song song nhau theo các góc lệch thay đổi. Góc nghiêng phiếu điểm tƣơng ứng với góc có tổng giá trị mảng tích luỹ cực đại.
Theo biến đổi Hough, mỗi một đƣờng thẳng trong mặt phẳng tƣơng ứng đƣợc biểu diễn bởi một cặp (r, ). Giả sử ta có một điểm ảnh (x,y) trong mặt phẳng. Vì qua điểm ảnh này có vô số đƣờng thẳng, mỗi đƣờng thẳng lại cho một cặp (r, ) nên với mỗi điểm ảnh ta sẽ xác định đƣợc một số cặp (r, ) thoả mãn phƣơng trình Hough.
Hình vẽ dƣới đây minh hoạ cách dùng biến đổi Hough để phát hiện góc nghiêng phiếu điểm.Giả sử ta có một số điểm ảnh.Đây là những điểm giữa đáy các hình chữ nhật ngoại tiếp các đối tƣợng đã đƣợc lựa chọn từ các bƣớc trƣớc.Ở đây, ta thấy trên mặt phẳng có hai đƣờng thẳng song song nhau.Đƣờng thẳng thứ nhất có ba điểm ảnh nên giá trị mảng tích luỹ bằng 3.Đƣờng thẳng thứ hai có giá trị mảng tích luỹ bằng 4. Do đó, tổng giá trị mảng tích lũy cho cùng góc trƣờng hợp này bằng 7.
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc.tnu.edu.vn/ y = r1 Hough[ ][r1] = 3 x x.cos +y.sin = r2 Hough[ ][r1] = 4
Hình 2.9. Biến đổi Hough phát hiện góc nghiêng
Gọi Hough[360][Max] là mảng tích lũy, giả sử M và N tƣơng ứng là chiều rộng và chiều cao của ảnh, ta có các bƣớc chính trong quá trình áp dụngbiến đổi Hough phát hiện góc nghiêng văn bản nhƣ sau:
+ Bước 1:Khai báo mảng tích lũy
Hough[ ][r] với 0 ≤ 3600 và
(với M và N là chiều rộng và chiều cao của ảnh).
+ Bước 2:Gán giá trị khởi tạo bằng 0 cho các phần tử của mảng.
+ Bước 3: Với mỗi cặp (x,y) là điểm giữa đáy của hình chữ nhật ngoạitiếp một đối tƣợng.
- Với mỗi itừ 0 đến 360 tính giá trị ritheo công thức:
ri = x * cos i+ y * sin i
- Làm tròn giá trị rithành số nguyên gần nhất là r0
- Tăng giá trị của phần tử mảng Hough[ i][r0] lên một đơn vị.
+Bước 4: Trong mảng Hough[ ][r]tính tổng giá trị các phần tử theotừng dòng và xác định dòng có tổng giá trị là lớn nhất.
Do số giá trị của một phần tử mảng Hough[ 0][r0] chính là số điểmảnh thuộc đƣờng thẳng r0 = x * cos 0 + y * sin 0 vì vậy tổng số phần tử củamột hàng chính là tổng số điểm ảnh thuộc các đƣờng thẳng tƣơng ứng đƣợcbiểu diễn bởi góc của hàng đó. Do đó, góc nghiêng của trang văn bản chínhlà góc của hàng trong mảng tích luỹ có giá trị lớn nhất.
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc.tnu.edu.vn/
Từ cơ sở lý thuyết đã tìm hiểu đƣợc, tiến hành xây dựng một thuật toánxác định góc nghiêng ảnh văn bản dựa vào biến đổi Hough.
2.2.4. Thuật toán phát hiện góc nghiêng phiếu điểm
* Xử lý đối tượng ảnh ngoại lệ
Sau giai đoạn tiền xử lý ảnh ta thu đƣợc ảnh trung gian. Thuật toán pháthiện góc nghiêng sẽ làm việc với ảnh trung gian này để tìm ra góc nghiêngcho văn bản và sau đó dùng thuật toán xoay ảnh để xoay ảnh ban đầu với gócnghiêng vừa tìm đƣợc.
Tuy nhiên, do ảnh tiến hành xử lý đƣợc thu nhận từ nhiều nguồn khácnên chất lƣợng ảnh cũng nhƣ các đối tƣợng trên ảnh cũng khác nhau. Nên mộtđiểm cần đƣợc xét đến trong thuật toán phát hiện góc nghiêng là xử lý nhữngảnh văn bản phức tạp hoặc các trƣờng ngoại lệ. Ta sẽ lần lƣợt đƣa ra cácphƣơng án xử lý cho các trƣờng hợp này.
+ Ảnh có quá ít ký tự.
Trƣờng hợp thứ nhất là trong ảnh có quá ít ký tự chữ cái chƣa đủ để xácđịnh đƣợc góc nghiêng. Các đối tƣợng trong ảnh chủ yếu là hình hoặc nhiễu,đặc biệt các ký tự nghiêng các góc khác nhau do đặc thù riêng của ảnh. Hìnhvẽ dƣới đây minh hoạ một ảnh văn bản nghiêng với số ký tự rất ít.Nhƣ vậy, sau khi loại bỏcác đối tƣợng từ hàm xác định chu tuyến vàdùng ngƣỡng kích thƣớc thì số đối tƣợng đƣợc lựa chọn để áp dụng biến đổiHough sẽ còn lại rất ít. Nếu chúng ta vẫn tiếp tục các bƣớc tiếp theo và đƣa rakết luận về góc nghiêng cho văn bản thì rõ ràng độ chính xác không đƣợcđảm bảo. Lý do đơn giản vì những đối tƣợng đƣợc lựa chọn chƣa chắc đã lànhững ký tự. Chúng có thể là những đối tƣợng phi ký tự nhƣng đƣợc lựa chọnvì kích thƣớc của chúng thoả mãn ngƣỡng.Việc xác định những đối tƣợngchủ đạo luôn mang tính tƣơng đối và càng chính xác khi số đối tƣợng ký tựtrong ảnh càng nhiều.Khi
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc.tnu.edu.vn/
trong ảnh có ít ký tự thì càng không thể chắc chắnđƣợc rằng các đối tƣợng đƣợc chọn là ký tự.
Vì vậy, ta chỉ đƣa ra kết luận về góc nghiêng cho văn bản trong trƣờng hợp số lƣợng các đối tƣợng này phải lớn hơn một ngƣỡng nào đó.
Hình 2.10. Ví dụ về một ảnh nghiêng có ít ký tự
Nhƣ vậy, sau khi loại bỏ các đối tƣợng từ hàm xác định chu tuyến vàdùng ngƣỡng kích thƣớc thì số đối tƣợng đƣợc lựa chọn để áp dụng biến đổiHough sẽ còn lại rất ít. Nếu chúng ta vẫn tiếp tục các bƣớc tiếp theo và đƣa rakết luận về góc nghiêng cho văn bản thì rõ ràng độ chính xác không đƣợcđảm bảo. Lý do đơn giản vì những đối tƣợng đƣợc lựa chọn chƣa chắc đã lànhững ký tự. Chúng có thể là những đối tƣợng phi ký tự nhƣng đƣợc lựa chọnvì kích thƣớc của chúng thoả mãn ngƣỡng.Việc xác định những đối tƣợnchủ đạo luôn mang tính tƣơng đối và càng chính xác khi số đối tƣợng ký tựtrong ảnh càng nhiều.Khi trong ảnh có ít ký tự thì càng không thể chắc chắnđƣợc rằng các đối tƣợng đƣợc chọn là ký tự.
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc.tnu.edu.vn/
Vì vậy, ta chỉ đƣa ra kết luận về góc nghiêng cho văn bản trong trƣờnghợp số lƣợng các đối tƣợng này phải lớn hơn một ngƣỡng nào đó.
+ Các đối tượng bao nhau.
Một trƣờng hợp ngoại lệ khác là các đối tƣợng bao nhau. Đây là mộtcản trở đối với những thuật toán xác định góc nghiêng khác đặc biệt là nhữngthuật toán theo phƣơng pháp phân tích láng giềng lân cận nhƣ đã đƣợc đề cậpở trên. Vì với những đối tƣợng này rất dễ dẫn đến sự nhầm lẫn khi xác địnhđối tƣợng chủ đạo trong ảnh.
Mặc dù số ký tự trong văn bản có thể rất nhiều nhƣng các ký tự hầu hếtbị chứa trong các đối tƣợng khác lớn hơn nhiều chẳng hạn nhƣ picture haybảng biểu .Hình vẽ dƣới đây minh họa cho cho trƣờng hợp các ký tự bị baobởi đối tƣợng là bảng biểu.
Hình 2.11. Ví dụ về văn bản nghiêng có các đối tượng bao nhau
Nhƣ vậy, nhiệm vụ của chúng ta là phải nhận ra đƣợc sự bao hàm giữacác đối tƣợng và tách biệt chúng, lấy đƣợc các đối tƣợng ký tự chủ đạo bị baobởi các đối tƣợng lớn hơn.Khi đó, việc xác định góc nghiêng khi áp dụngbiến đổi Hough lên các đối tƣợng này mới cho ta kết quả chính xác.
Nếu trong quá trình dò biên ta gặp một đối tƣợng nhƣ vậy, ta sẽ cách li nó ra khỏi tập đối tƣợng đang xét. Các đối tƣợng này sẽ đƣợc dùng đến nếu
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc.tnu.edu.vn/
cuốicùng số đối tƣợng đƣợc chọn để áp dụng biến đổi Hough là quá ít. Ta xemnhƣ đối tƣợng này là một ảnh và tiếp tục duyệt các đối tƣợng bên trong nó đểlấy ra những đối tƣợng ký tự.
Trong cài đặt thuật toán, ta dùng một kỹ thuật gọi là bóc dần. Bìnhthƣờng, sau khi xác định đƣợc chu tuyến ngoài cho một đối tƣợng ta sẽ khôngduyệt những điểm ảnh bên trong đối tƣợng này bằng cách đánh dấu lại đốitƣợng đó. Nhƣng nếu đối tƣợng đó có kích thƣớc rất lớn, ta sẽ bỏ qua khâuđánh dấu nó và kết luận rằng đó là 1 đối tƣợng bao hàm đối tƣợng khác nhƣbảng biểu chẳng hạn.Thay bằng đánh dấu đối tƣợng ta thay đổi màu cho cácđiểm biên thành màu nền, xem nhƣ chƣa xét đối tƣợng này và tiếp tục xét cácđối tƣợng bên trong nó. Kỹ thuật này gọi là bóc dần vì mỗi lần xác định đƣợcbiên của một đối tƣợng lớn ta thay đổi màu của các điểm biên thành màu nềnđiều đó có nghĩa là đối tƣợng này sẽ hoà vào nền và xem nhƣ bóc dần đốitƣợng lớn để làm nổi bật lên các ký tự bên trong nó.
Để đánh dấu các đối tƣợng, ta dùng phƣơng pháp gán nhãn cho các đốitƣợng.Mỗi một đối tƣợng nếu không phải là một điểm cô lập sẽ mang mộtnhãn là một số nguyên dƣơng.Các đối tƣợng khác nhau mang các nhãn khácnhau.Những phần tử thuộc biên của một đối tƣợng sẽ đƣợc gán nhãn bằngnhau và bằng nhãn của đối tƣợng này.
*Tiến trình xác định chu tuyến cho các đối tượng thực hiện như sau: - Duyệt các điểm ảnh từ trên xuống dƣới từ trái sang phải.
Xétđiểm hiện tại là (x, y).
- Nếu gặp một điểm ảnh có màu khác màu nền, ta sẽ áp dụng thuật toán xác định chu tuyến cho đối tƣợng chứa điểm ảnh này và gántất cả các điểm biên của đối tƣợng này cùng một giá trị nhãn. Kết thúchàm dò biên đối tƣợng.
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc.tnu.edu.vn/
- Nếu kích thƣớc của đối tƣợng không phải là quá lớn tức là kíchthƣớc của chúng bé hơn 200 pixel, ta sẽ tiếp tục quá trình tìm biên chocác đối tƣợng tiếp theo bắt đầu từ một điểm ảnh láng giềng bên phải.
Gọi (x1,y1) là điểm láng giềng bên phải của đối tƣợng ảnh nếu: x1=x vàđiểm
(x1,y1-1) thuộc biên của đối tƣợng ảnh đang xét.
- Ngƣợc lại nếu đối tƣợng có kích thƣớc quá lớn. Ta thiết lập lạimàu cho các điểm biên của đối tƣợng thành màu nền, không gán nhãncho biên và xét tiếp các điểm ảnh bên trong bắt đầu từ (x,y+1).
- Nhƣng nếu gặp một điểm ảnh đã xét rồi tức là đã đƣợc gán mộtnhãn, ta sẽ bỏ qua đối tƣợng tƣơng ứng với nhãn đó để xét các đốitƣợng mới bằng cách nhảy tới điểm (x1,y1) với (x1,y1-1) có nhãn bằngnhãn (x,y) và y1 lớn nhất trong số các điểm có cùng nhãn.
Về cơ bản thuật toán phát hiện góc nghiêng phiếu điểmdựa vào biến đổiHough gồm các bƣớc chủ yếu sau:
+ Bước 1:Duyệt ảnh theo thứ tự từ trên xuống và từ trái qua phải, vớimỗi điểm ảnh.
Nếu gặp một điểm vùng (x,y) chƣa xét thực hiện các bƣớc:
- Áp dụng thuật toán xác định chu tuyến với đầu vào là (x,y) và màutƣơng ứng.
- Dùng hình chữ nhật ngoại tiếp kiểm tra nếu đối tƣợng có kích thƣớcbình thƣờng (thoả mãn ngƣỡng) thì áp dụng biến đổi Hough lên trungđiểm cạnh đáy của hình chữ nhật ngoại tiếp đối tƣợng đó.
- Cập nhật lại mảng tích luỹ.
Nếu gặp một điểm đã xét, tìm một điểm ảnh trên cùng dòng có nhãnbằng với điểm ảnh đang xét và tiến hành duyệt lại từ đây. Đồng thờiđó phải cập nhật lại giá trị trong mảng tích luỹ.
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc.tnu.edu.vn/ + Bước 2:Dựa vào kết quả của phép biến đổi Hough ƣớc lƣợng gócnghiêng cho phiếu điểm.
+ Bước 3:Dựa vào góc nghiêng xác định đƣợc từ bƣớc 2 áp dụng thuậttoán xoay ảnh.Tuy nhiên, nếu áp dụng biến đổi Hough cho tất cả các đối tƣợng củaảnh, thì thuật toán sẽ không chính xác hoặc là tốn nhiều thời gian thực hiệnhoặc cả hai. Vì vậy chúng ta không áp dụng biến đổi Hough cho tất cả cácđối tƣợng sau khi tìm đƣợc chu tuyến của chúng mà loại ra những đối tƣợngcó kích thƣớc quá lớn, hoặc là rất bé so với ký tự thƣờng.
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc.tnu.edu.vn/
Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc.tnu.edu.vn/