1 Thuật tốn Input: Ảnh A, kích thước H×W, – gọi ảnh mơi trường Ảnh B, kích thước H×W, – gọi ảnh chứa thủy vân (cùng kích thước với A) Chọn hệ số , cho + =1 Output: Ảnh D chứa thủy vân Mơ tả thuật tốn: Biến đổi DCT ảnh A thành ảnh AC Biến đổi DCT ảnh B thành ảnh BC Tạo ma trận DC for i=1 to H for j=1 to W DC(i,j) = *AC(i,j)+ *BC(i,j) Biến đổi DCT -1 (biến đổi ngược) DC thành D Giao diện - Lập trình GUI để chọn ảnh nhập hệ số , Hiển thị ảnh A, B, Tạo hiển thị ảnh D -2 Thuật toán Input: Ảnh A – gọi ảnh mơi trường Ảnh B – gọi ảnh chứa thủy vân (cùng kích thước với A) Chọn hệ số a, b khoảng {3, 5, , 20} Output: Ảnh D chứa thủy vân Mơ tả thuật tốn: Tính kích thước lưới: m = H/a, n=W/b Chia ảnh A, B thành lưới kích thước m×n; Biến đổi DCT khối ảnh A thành ảnh AC Biến đổi DCT khối ảnh B thành ảnh BC Tạo ma trận DC Với ô (i,j) lưới P(i,j) = trung bình cộng mức xám (i,j) ảnh A/255 Q(i,j) = trung bình cộng mức xám ô (i,j) ảnh B/255 (i,j) = P(i,j) /{P(i,j)+Q(i,j), (i,j) = Q(i,j) / {P(i,j)+Q(i,j) DC(i,j) = (i,j)*AC(i,j) + (i,j)*BC(i,j) Biến đổi DCT -1 (biến đổi ngược) ô ảnh DC thành ảnh D Giao diện - Lập trình GUI, để chọn ảnh nhập hệ số a, b Hiển thị ảnh A, B, Tạo hiển thị ảnh D