Mã Gray được định nghĩa như là một dạng mã hóa các số nhị phân, trong đó, các vị trí của các điểm liền kề nhau được mã hóa có thứ tự đảo bit là không quá lớn lấy ý tưởng từ khoảng cách hamming như hình 2-1, có 2 kiểu mã hóa: Đó là mã nhị phân và mã Gray đối xứng[71][72] (hình 2-2 và hình 2-3).
Hình 2-1 Minh họa mã hóa 3bit nhị phân và thứ tự thay đổi tối thiểu giữa 2 giá trị theo khoảng cách hamming (nguồn: [71])
Hình 2-2 Mã hóa theo mã nhị phân (nguồn: [71])
Hình 2-3 Mã hóa theo dạng Mã Gray đối xứng (nguồn: [71])
Dựa trên hình 2-2 và 2-3 ta thấy rằng mã gray đối xứng có 2 điểm liền kề nhau được xác định bằng cách thay đổi 1bit trong chuỗi mã hóa, thuộc tính này làm cho khả năng mã hóa tốt hơn trong điều kiện nhiễu và có lợi khi áp dụng trong phương pháp ánh sáng cấu trúc.
Tạo mã gray nhằm đưa ra các ảnh vân theo mẫu và thứ tự tuân theo mã gray. Giả sử ta cần chiếu ảnh vân có kích thước W´H, ảnh vân chiếu thường được tạo cho hàng và cột, phương pháp tạo các ảnh vân chiếu hàng và cột này cơ bản giống nhau, do đó trong phần này chỉ trình bày phương án xây dựng vân cột.
Với ảnh vân có kích thước W´H như trên, ta có W số cột. Trước tiên, phải tính số bit N cần để mã hóa các điểm ảnh trên mỗi cột. Giá trị N được tính theo biểu thức:
𝑁 ≥ log!𝑊 (2-1)
Giả sử ảnh có độ rộng là 16 đơn vị điểm ảnh như bảng 2-1, sẽ phải cần 𝑁 = log!16 = 4 bit để mã hóa 16 pixel đó. Để chiếu ảnh vân mã hóa cho các pixel, chiếu lần lượt của 4 ảnh tương ứng với 4 bit, như vậy thì mỗi pixel cột sẽ được mã hóa bởi một mã Gray tương ứng với vị trí của cột đó.
Để dễ tưởng tượng ảnh chiếu như thế nào, ta hình dung bảng mã Gray đã lập ở trên sẽ được xoay ngang như sau để mã hóa các điểm ảnh của cột:
STT/BIT 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 3 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 4 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0
Bảng 2-1 Bảng mã Gray cho 16 bit
Các bit 0,1 được mã hóa vào ánh sáng tương ứng với ánh sáng tắt và bật. Ta có bảng vân chiếu như sau:
STT/BIT 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 2 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 3 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 4 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0
Bảng 2-2 Bảng mã Graycode mã hóa cho vân chiếu
Bảng 2-2 có 4 hàng tương ứng với 4 bit. Mỗi hàng này tạo thành một ảnh chiếu và như thế có một chuỗi của 4 ảnh được chiếu lên đối tượng đo.
Hình 2-4 Chuỗi ảnh mã Gray
Hình 2-5 Minh họa vân chiếu Graycode 10 bit
Hình 2-6 Các ảnh của vân chiếu của mã Graycode với 10 bit
Các bước tạo ảnh Gray được thực hiện như sau:
- Xác định số bít N của mã Gray cần chiếu từ thông số 𝑊 × 𝐻 của ảnh cần chiếu. - Tạo tập N ảnh nhị phân từ N bit mã hóa.
- Sau đó chuyển tập ảnh nhị phân này sang tập ảnh Gray như sau:
Giả sử Gi là bit được mã hóa gray thứ 𝑖, 𝐵" là bit được mã hóa nhị phân thứ i. + Với bit 0: 𝐺# = 𝐵#
+ Thực hiện vòng lặp với các anh binary còn lại từ bit thứ 𝑛 − 1về bit 0
𝐺[𝑖] = 𝐵[𝑖 + 1]𝑥𝑜𝑟 𝐵[𝑖] (2-2)
Dựa trên độ phân giải 𝑊 × 𝐻 của máy chiếu, ta có thể xác định số mũ 𝑛 của 2$, việc lựa chọn giá trị n sao cho độ phân giải của ảnh thu về của máy ảnh là tốt nhất. Giả sử diện tích chiếu của máy chiếu có độ phân giải 1140´912 điểm ảnh lên một mặt phẳng cách 300mm là 180´120mm (𝑊 × 𝐻)khi đó, vùng trung tâm của máy chiếu sẽ là 150´120 mm, Bảng 2-4 đánh giá độ phân giải khi thay đổi giá trị n:
Độ phân giải Độ phân giải vạch của máy ảnh (Đv. Điểm ảnh) Vùng trung tâm 150x120mm
Vùng chiếu toàn miền 180x120mm Số ảnh chiếu Giá trị Số ảnh chiếu Giá trị
Thấp 4 7 128 8 228
Trung bình 2 8 256 9 456
Cao 1 9 512 10 912
Bảng 2-3 Độ phân giải của hệ thống với giá trị 2n
Cấu hình của hệ thống có thể được lựa chọn khác nhau tùy thuộc vào yêu cầu trường nhìn và độ phân giải của bài toán. Với 𝑛 = 10 thì độ phân giải đạt được mức tối đa nhưng rất khó trong việc xác định các bit 0-1 trong ảnh vân chiếu cuối cùng, từ đó dẫn đến việc giải mã sai và kết quả tính toán cuối cùng không đạt được độ chính xác; trong trường hợp này, lựa chọn 𝑛 = 9 sẽ làm tăng độ phân giải của ảnh vân chiếu cuối cùng.
Sau khi đã có những ảnh vân chiếu, vấn đề đặt ra là làm thế nào để có thể xác định đâu là bit 0 và bit 1 trong ảnh. Phương pháp đơn giản nhất là sử dụng ngưỡng mức xám cho 2 mức 0-1, có thể lựa chọn giải pháp ngưỡng thích nghi thay cho ngưỡng cố định để có được kết quả tốt hơn. Tuy nhiên, sự thay đổi tần số trong miền không gian của các vân mã Gray gây khó khăn trong việc tìm ngưỡng cho mỗi điểm ảnh trong ảnh.
Để giải quyết vấn đề này, giải pháp sử dụng ảnh đảo cho mỗi bit vân chiếu được đưa ra, qua 2 ảnh: ảnh vân và ảnh đảo vân dễ dàng xác định được ngưỡng cho mỗi điểm ảnh. Nhược điểm của phương pháp này là làm tăng số lần lấy mẫu (số ảnh chụp gấp 2 lần) do đó thời gian thực hiện mỗi lần quét sẽ tăng thêm tương ứng.