Xin chào các bạn, hôm nay chúng ta sẽ cùng tìm hiểu về histogram, cân bằng biểu đô mức xám và phân loại ảnh sử dụng histogram. Show Ôn lại bài tuần 2Đâu tiên, chúng ta sẽ điểm qua các kiến thức về phép toán trên điểm ảnh trong bài viết trước.
Histogram1. Khái niệmHistogram (lược đồ xám) là biểu đồ tần xuất thống kê số lần xuất hiện các mức sáng trong ảnh. 2. Cách tính histogram
3. Ví dụTa lần lượt có ảnh và histogram tương ứng với các ảnh drank, light, low-contrast và high-contrast Ta có nhận xét
4. CodeGiả sử ta có bức ảnh độ tương phản như sau: Ta bắt đầu import thư viện và load ảnh.
Chúng ta bắt đầu thử bắt đầu code nào . Ta có 2 cách dùng hàm để tính histogram.
Và 2 cách trên đều ra kết quả như sau: Histogram equalization (cân bằng biểu đồ mức xám)1. Khái niệmPhần này là phần mình giới thiệu và chứng minh công thức, nếu thấy quá dài dòng và khó hiểu bạn có thể xem luôn phần các bước làm. Trong trường hợp ảnh là một hàm liên tục, ta xét biến rr đại diện cho các cấp độ xám của ảnh cần được cân bằng và rr trong khoảng [0,L−1][0,L-1] với r=0r = 0 đại diện cho đen và r=L−1r =L-1 đại điện cho trắng. Cân bằng biểu đồ mức xám là tìm một ánh xạ s=T(r)s= T(r) khi đó mỗi điểm ảnh có giá trị rr trong ảnh ban đầu sẽ được ánh xạ tạo nên cấp độ ss trong ảnh đẩu ra. Ta cần tìm hàm T(r)T(r) thỏa mãn các điều kiện sau:
Ở đây ta định nghĩa hàm pr(r)p_{r}(r) và ps(s)p_{s}(s) lần lượt biểu diễn hàm mật độ xác suất của các biến ngẫu nhiên rr và ss. Kết quả cơ bản từ lý thuyết xác suất là nếu cho trước pr(r)p_r(r) và T(r)T(r) , T−1(s)T^{-1}(s) thỏa mãi điều kiện 1. thì hàm mật độ xác xuất ps(s)p_{s}(s) có thể thu được bằng cách sử dụng công thức sau: Do đó, hàm mật độ xác suất của ss, được quyết định bởi cấp độ xám PDF của ảnh đầu vào và hàm biến đổi đã chọn. Một hàm biến đổi quan trọng trong xử lý ảnh có dạng: Đẳng thức bên phải của phương trình trên được gọi là hàm phân phối tích lũy của biến ngẫu nhiên rr, nó đơn điệu tăng thỏa mãn điều kiện 1). Tương tự, tích phân của hàm mật độ xác suất trong khoảng [0,L−1][0, L-1] cũng nằm trong khoảng [0,L−1][0, L-1] nên điều kiện 2 được thỏa mãn. Ta có: Thay kết quả này cho dsdr\frac{d_{s}}{d_{r}} cho phương trình (3 -10), và do tất cả các giá trị xác suất đều dương, ta thu được: Ta thấy ps(s)p_{s}(s) là hàm phân bố xác suất đều, từ đó có thể kết luận rằng việc thực hiện phép biến đổi (3-14) đã sinh ra biến ngẫu nhiên ss với hàm phân bố xác suất đều. Khi ảnh là các giá trị độ sáng rời rạc, ta làm việc với xác suất xuất hiện của từng giá trị độ sáng và phép toán tổng xác suất thay vì hàm mật độ xác suất và phép toán tích phân. Xác suất xuất hiện của mức xám rkr_{k} trong ảnh được tính xấp xỉ bằng pr(rk)=nkMNp_{r}(r_{k}) = \frac{n_{k}}{MN}. Lúc này công thức cho phép biến đổi tương tự trong phương trình (3-10) trên các giá trị rời rạc là: Vậy sau 1 hồi dài dòng để tìm ra công thức , ta có các bước làm.2. Các bước làm
Ta có ví dụ để cho trực quan hơn. Ta có bảng phân phối cường độ và giá trị histogram cho hình ảnh kỹ thuật số 3 bit ảnh 64 * 64 Theo công thức ta sẽ tính được L = 8 s0=T(r0)=7∗pr(n0)=1.33s_{0} = T(r_{0}) = 7 * p_{r} (n_{0})=1.33 Sau đó ta sẽ chuyển đổi giá trị của từng điểm ảnh như sau: 3. CodeTa sẽ sử dụng bức ảnh bên trên để cân bằng histogram Cách 1 ta dùng thủ công thì hàm cân bằng histogram như sau:
Tiếp theo ta phải ánh xạ mức xám đầu vào với s_k:
Cách 2 ta sẽ dùng hàm của OpenCv như sau:
Và kết quả ta sẽ được như sau, bên trai là ảnh đẩu ra và bên phải là histogram và cdf tương ứng. Tài liệu tham khảo
|