Ảnh đầu vào là ảnh đa cấp xám dạng *.jpg, sau khi đƣợc tải vào bộ nhớ sẽ đƣợc giải mã và chuyển sang dạng ma trận điểm ảnh (quá trình này đƣợc thực hiện tự động khi sử dụng hàm đọc ảnh trong matlab).
Nhƣ vậy về mặt logic thì cấu trúc vùng nhớ sử dụng để lƣu ảnh là một mảng hai chiều Im x n có kích thƣớc (m x n) phần tử.
Image = { I[i,j], i = 1..m, j = 1..n}
Trong đó I[i,j] là giá trị độ xám của điểm ảnh tƣơng ứng với tọa độ (i,j) trong ảnh
Ảnh 36 26 80 60 90 15 14 53 81 65 16 85 65 73 18 8 68 71 27 28 35 93 7 12 96 1 29 10 35 64 85 22 68 69 33 44 52 63 80 30 89 18 93 60 97 98 89 11 40 17 15 8 15 22 42 34 92 87 79 72 44 35 39 39 24 86 56 45 87 92 19 27 46 53 11 94 52 83 71 98 7 72 64 27 41 58 31 26 37 18 4 56 4 91 86 79 11 73 14 19 7 13 75 2 21 50 38 57 91 19 Ma trận điểm ảnh
Thông thƣờng với ảnh đa cấp xám thì giá trị độ xám của mỗi điểm ảnh nằm trong khoảng [0..255], nhƣ vậy kích thƣớc tối thiểu cho mỗi I[i,j] là 1Byte.
Chƣơng trình sẽ sử dụng mảng có thuộc tính nhƣ sau để lƣu trữ ảnh: - Mảng I hai chiều với I[i,j] kiểu Byte (Max(I[i,j])=255)
- Kích thƣớc của mảng là m x n với m là chiều cao của ảnh, n chiều rộng của ảnh và m, n kiểu Double (max(m/n)=232)
n (Double)
m (Double)
.. .. .. .. .. .. 1 Byte
Ảnh I
- Cấu trúc lƣu trữ lƣợc đồ xám (kết quả của các phép chiếu nghiêng).
Phép chiếu nghiêng là đi tính tổng các điểm đen theo phƣơng vng góc với hƣớng chiếu. Kết quả của phép chiếu sẽ đƣợc lƣu trữ vào một mảng một chiều H có kích thƣớc d phần tử. Trong dó H[i] (với i = [1..d]) là tổng số điểm đen của cột thứ i theo phƣơng chiếu.