5. Hình 2.18 chỉ ra cách làm không đúng khi chèn chữ nhật R11. Tiếp cận này không khả thi vì nút biểu diễn nhóm chứa chữ nhật R11 có thể là chỉ chứa duy Error! nhất một chữ nhật. 2.5.2 Xoá trong cây R-Trees Việc xóa các đối tượng từ cây R-Trees có thể gây ra một nút trong cây R-Tree trở nên thiếu hụt (underflow). Nhắc lại rằng một R-Tree bậc k phải bao gồm ít nhất K/2 hình chữ nhật trong nó. Khi chúng ta xoá một hình chữ nhật từ một R-Tree, chúng ta phải đảm bảo rằng nút đó không bị thiếu hụt. Ví dụ, xem xét R-Trees như hình 2.15 trình bày trên. Giả thiết chúng ta muốn xoá chữ nhật R9. Nút chứa R9 chỉ còn lại một nút trong nó nếu thực hiện xoá R9, kết quả là nút này sẽ phản ánh một điều kiện hụt. Trong trường hợp này chúng ta phải tạo ra nhóm logic mới. Một khả năng là sắp xếp lại các nhóm như sau: Group Rectangles G 1 R 1 , R 2 , R 3 G 2 R 4 , R 6 , R 7 G 3 R 5 , R 8 Cây R mới là kết quả của việc xóa nút R9, nó được thể hiện trên hình 2.19. Error! 2.6 So sánh các cấu trúc dữ liệu Trong chương này ta đã khảo sát 4 loại cấu trúc dữ liệu: cây k-d, cây tứ phân điểm, cây tứ phân MX và cây R. Mỗi chúng đều có ưu điểm và nhược điểm nhất định. · Cây tứ phân điểm rất dễ cài đặt. Tuy nhiên, cây tứ phân điểm có k nút thì có thể có độ cao là k, như vậy làm tăng độ phức tạp cho chèn và tìm kiếm (nó có thể là O(k)). Hơn nữa mỗi so sánh đòi hỏi so sánh hai tọa độ.Việc xóa nút trong cây loại này là khá khó khăn. vì việc tìm kiếm nút ứng viên thay thế cho nút đang xóa thông thường là không đơn giản. Cuối cùng truy vấn khoảng trong cây này cần O(2Ön), n là tổng số bản ghi trong cây. · Cây k-d rất dễ cài đặt. Tuy nhiên, cây k-d chứa k nút có thể có độ cao k, do vậy chèn và tìm kiếm có thể phức tạp. Trong thực tế đường dẫn từ gốc tới lá của cây loại này dài hơn trong cây tứ phân điểm bởi vì cây này là cây nhị phân. Độ phức tạp tồi nhất của tìm kiếm dải trong cây k-d là: Error! . Khi k=2, thì độ phức tạp còn Error! như cây tứ phân điểm. · Cây tứ phân MX đảm bảo có độ cao nhất là O(n), trong đó vùng được biểu diễn có (2 n x2 n ) tế bào. Nói cách khác việc chèn, xóa và tìm kiếm trong cây loại này cần thời gian là O(n). Tìm kiếm dải của cây này rất hiệu quả - O(N+2 h ), trong đó N là tổng số điểm kết quả truy vấn và h là độ cao của cây. · Tương tự với cây R. Tuy nhiên, cây R có thể có nhiều chữ nhật lưu trong cùng nút, nó phù hợp với xâm nhập đĩa từ bằng giảm độ cao của cây. · Một bất lợi của cây R là các chữ nhật bao kết hợp với các nút khác nhau có thể phủ lên nhau. Như vậy, việc tìm kiếm trong cây R thay vì đi theo một vết như các cây khác, là phải đi theo nhiều vết trong cây. Trường hợp này lại làm tăng số lần thâm nhập đĩa. · Tổng thể, cây R hiệu quả hơn cây k-d và cây tứ phân điểm trong các ứng dụng đa phương tiện bởi vì ứng dụng loại này đòi hỏi dung lượng đĩa rất lớn phải xâm nhập. Tuy nhiên nếu chỉ số nhỏ thì sử dụng cây tứ phân MX sẽ hiệu quả hơn. Chương 3 CƠ SỞ DỮ LIỆU ẢNH Chương này sẽ trình bày CSDL ảnh là gì? Sự khác nhau về truy vấn giữa CSDL ảnh với CSDL văn bản. Các định nghĩa trừu tượng về nội dung ảnh được đề xuất. Mô tả nội dung ảnh có thể thực hiện bằng tay hay tự động. Cả hai trường hợp đều cần cấu trúc dữ liệu để lưu trữ. Một vài kỹ thuật xử lý ảnh được khảo sát. Ba kỹ thuật tổng quát để hiện thực CSDL ảnh sẽ được trình bày. Chúng bao gồm, thứ nhất, CSDL ảnh được cài đặt bằng cách mở rộng mô hình quan hệ theo phương pháp đối tượng-quan hệ. Thứ hai, cài đặt bằng các cấu trúc dữ liệu n chiều như mô tả trong chương trước. Cuối cùng là cài đặt bằng phương pháp biến đổi ảnh. Vài chục năm gần đây nhiều cơ quan tham gia thu thập dữ liệu ảnh. NASA thu thập lượng lớn ảnh trái đất. US và nhiều nước khác lưu trữ ảnh hộ chiếu. Các bệnh viện có vô số ảnh chụp X quang và ảnh cắt lớp. Trong mô hình dữ liệu quan hệ truy vấn thường thực hiện với văn bản. Trong CSDL ảnh, với yêu cầu tìm ảnh của ai đó thì câu truy vấn là “Cho trước ảnh mẫu, hãy tìm kiếm mọi ảnh trong CSDL gần giống ảnh mẫu và cho biết các thuộc tính của ảnh cho lại”. Hai đặc tính quan trọng của truy vấn này là: câu truy vấn có ảnh kèm theo. Thứ hai, truy vấn hỏi ảnh “tương tự”. ,Trong trường hợp này phải xác định thế nào là tương tự. 3.1 Ảnh thô Phát biểu phi hình thức thì nội dung ảnh bao gồm các đối tượng trong ảnh mà ta cho nó là quan trọng từ góc nhìn của ứng dụng. Các đối tượng trong ảnh phải có các đặc tính kết hợp như sau: 1. Mô tả hình dạng: Mô tả hình dạng/vị trí của vùng trong đó có đối tượng. 2. Mô tả đặc tính: Mô tả đặc tính của từng điểm ảnh (hay nhóm điểm ảnh) trong ảnh. Thí dụ giá trị RGB của điểm ảnh, mức xám trong ảnh đen trắng Tổng quát thì không thể kết hợp các đặc tính với từng pixel mà phải xử lý từng tế bào (cell) – là nhóm các pixel vào cùng thời điểm. Thí dụ, hãy xem xét tập ảnh pic1.gif trên hình 3.1. Hình trên có hai đối tượng quan tâm tương ứng với hai mặt người, gọi chúng là đối tượng o 1 và o 2 . Hình chữ nhật bao quanh mặt người xác định mô tả hình dạng của mặt người. Tuy nhiên mô tả hình dạng không nhất thiết phải là chữ nhật, chúng có thể là đa giác hay tập các chữ nhật. Mô tả đặc tính kết hợp với mặt người thông thường bao gồm tập các cặp theo khuôn dạng (PropName, PropValue). Đặc tính bao gồm hai thành phần: tên đặc tính (thí dụ: R, G, B) và miền đặc tính xác định miền giá trị gán cho đặc tính (thí dụ: {0, ,8}). Thí dụ với tệp ảnh pic1.gif trên đây, đối tượng o 1 tương ứng với mặt người bên trái, có các đặc tính sau: 1. Mô tả hình dạng: chữ nhật: XLB=10, XUB=60, YLB=5, YUB=50. 2. Mô tả đặc tính: Thí dụ, điểm ảnh tại (14, 17) có R=5, G=1 và B=3. Tương tự với đối tượng 0 2 , chúng có thể có các thuộc tính sau: 1. Mô tả hình dạng: chữ nhật: XLB=80, XUB=120, YLB=20, YUB=55. 2. Mô tả đặc tính: Thí dụ, điểm ảnh tại (90, 30) có R=2, G=7 và B=4. Chú ý rằng, tổng quát thì thay vì xác định đặc tính cho từng pixel của ảnh, ta có thể chia vùng ảnh kích thước (a x b) pixels thành (m x n) tế bào, trong đó, a mod m=0, b mode n=0, m<a và n<b. Có nghĩa rằng, mỗi tế bào này sẽ biểu diễn vùng chữ nhật có độ lớn (a div m)x(b div n) pixel. Tế bào có hình chữ nhật. Các định nghĩa hình thức được phát biểu như sau: Định nghĩa 3.1: Mỗi ảnh I có cặp số nguyên dương (m, n) kết hợp và được gọi là độ phân giải lưới của ảnh. Nó chia ảnh ra (m x n) tế bào có kích thước bằng nhau, được gọi là lưới ảnh. Mỗi tế bào của ảnh I bao gồm tập các điểm ảnh. Định nghĩa 3.2: Thuộc tính tế bào là bộ ba (Name, Values, Method), trong đó Name là xâu ký tự chỉ tên đặc tính, Values là tập giá trị có thể gán cho đặc tính, Method là giải thuật cho ta biết cách tính toán các đặc tính. Thí dụ với ảnh đen trắng. Đặc tính của tế bào có thể là: (bwcolor, {b, w}, bwalgo) trong đó, tên đặc tính là bwcolor và các giá trị có thể là b và w. bwalgo có thể là giải thuật có đầu vào là tế bào và cho lại b hay w. Đôi khi tổ hợp b/w của các pixel trong tế bào. Mặt khác, với ảnh đa mức xám (0=w và 1=b), ta có đặc tính sau: (graylevel, [0, 1], grayalgo) trong đó, tên đặc tính là graylevel, giá trị của nó là số thực trong khoảng [0, 1] và phương thức grayalgo có đầu vào là tế bào để tính mức xám. Như đã nghiên cứu về cây R, tế bào được đặc trưng bới các cạnh bao (xác định bởi 4 số nguyên) là XLB, XUB, YLB và YUB.Thí dụ, nếu tế bào mô tả tập các pixel Error! {(i, j) | XLB £ i £ XUB & YLB £ j £ YUB} sau đó một phương thức tính giá trị trung bình có thể là: trong đó, findgray(i, j) cho lại mức xám của điểm ảnh (i, j). Thí dụ với ảnh màu, ta có ba đặc tính sau: (red, {0, , 7}), (green, {0, , 7}), (blue, {0, , 7}) Như vậy, nếu tế bào có các đặc tính: red=3; green=7; blue=1 thì nó chỉ ra một tổ hợp cụ thể của các thuộc tính RGB kết hợp với nút đó. Tổng quát thì, người xây dựng CSDL ảnh phải quyết định các đặc tính tế bào nào được quan tâm sau đó khớp các đặc tính lại để thoả mãn yêu cầu và tạo ra các phương thức kết hợp để xác định các đặc tính này. Định nghĩa 3.3 Một hình dạng (shape) đối tượng là tập P bất kỳ của các điểm, mà nếu p, q Î P, sau đó tồn tại trật tự các điểm p 1 , , p n trong P thoả mãn 1. p=p 1 và q=p n và . nhật. 2.5.2 Xoá trong cây R-Trees Việc xóa các đối tượng từ cây R-Trees có thể gây ra một nút trong cây R-Tree trở nên thiếu hụt (underflow). Nhắc lại rằng một R-Tree bậc k phải bao gồm ít. giản. Cuối cùng truy vấn khoảng trong cây này cần O(2Ön), n là tổng số bản ghi trong cây. · Cây k-d rất dễ cài đặt. Tuy nhiên, cây k-d chứa k nút có thể có độ cao k, do vậy chèn và tìm kiếm có. hiệu quả - O(N+2 h ), trong đó N là tổng số điểm kết quả truy vấn và h là độ cao của cây. · Tương tự với cây R. Tuy nhiên, cây R có thể có nhiều chữ nhật lưu trong cùng nút, nó phù hợp với