L ỜI CẢM ƠN
3.3. Áp dụng biến đổi Hough phát hiện góc nghiêng văn bản
Ý tưởng của việc áp dụng biến đổi Hough trong phát hiện góc nghiêng văn bản 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 văn bản 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 sẽ đượ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ó thể xác định được vô số đường thẳng mà 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ẽ trên minh hoạ cách dùng biến đổi Hough để phát hiện góc nghiêng văn bản. 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 (các đối tượng được chọn là những đối tượng tiêu biểu được xác định từ thao tác dò biên và xây dựng hình chữ nhật ngoại tiếp). Ở đây, ta thấy trên mặt phẳng có hai đường thẳng song song nhau cùng thoả mãn phương trình Hough. Đườ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 đi qua 4 điểm ảnh nên có giá trị mảng tích luỹ bằng 4. Do đó, tổng giá trị mảng tích luỹ cho cùng góc trường hợp này bằng 7.
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ụng biế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à 0 r M *M N *N (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ại tiếp một đối tượng.
Hình 3.3 Đường thẳng Hough trên trục tọa độ
y x.cos+y.sin=r1 Hough[][r1]=3 x 0 x.cos+y.sin=r2 Hough[][r2]=4
- Với mỗi i từ 0 đến 360 tính giá trị ri theo công thức:
ri = x * cos i + y * sin i
- Làm tròn giá trị ri thà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ử theo từ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ủa một hàng chính là tổng số điểm ảnh thuộc các đường thẳng tương ứng được biểu diễn bởi góc của hàng đó. Do đó, góc nghiêng của trang văn bản chính là góc của hàng trong mảng tích luỹ có giá trị lớn nhất.
Từ cơ sở lý thuyết đã tìm hiểu được, tiến hành xây dựng một thuật toán xác định góc nghiêng ảnh văn bản dựa vào biến đổi Hough.