Nói cách khác, tính chất đồng nhất sử dụng hàm cơ sở f và mức nhiễu cực đại cho phép h. Việc xem xét mức bw của tế bào (x, y) là tương đương với kết quả của hàm f nếu |bw-level(x, y) –f(x, y)|<h Nghĩa là nếu cả hai khác nhau không quá giá trị h. Sau đó kiểm tra xem có đủ nhiều tế bào (xác định bởi hệ số d) trong vùng phù hợp với kết quả của hàm f. Nếu có, hãy coi vùng R là đồng nhất và nó cho lại giá trị “true”. Mặt khác nó cho lại giá trị “false”. 3. Trước hết phân lớp mọi mức bw-level. Thí dụ, có thể phân lớp mọi bw-level giữa 0 và 0.1 là 1, mọi bw-level giữa 0.1 và 0.2 là 2, cho đến mức bw-level giữa 0.9 và 1 là mức 10. Tương tự như trên đây, nếu d nằm giữa 0 và 1 thì H class (R) cho lại “true” nếu trên (100*d)% của tế bào trong vừng R rơi vào cùng lớp. 4. Tính chất đồng nhất khác nữa được ký hiệu là H dyn , đó là phiên bản động của hàm H class . H class đặt mức ưu tiên cho các lớp chứ không phải đặt động. Ngược lại, ta có thể nói rằng R là đồng nhất, tuỳ theo giá trị Error! , nếu trên (100*d)% của tế bào trong vùng R nằm trong dải h của số thực r nào đó. Cuối cùng, chú ý rằng dự báo đồng nhất không phải chỉ trên cơ sở các mức b/w hay các mức xám. Nó dự báo tuỳ ý, khi cho trước vùng R, giá trị “true” hay “false” cho lại dựa trên một vài tính toán. Nó có thể quan tâm đến các hệ số như độ sâu, cường độ, kết cấu, lược đồ màu Cho trước ảnh I với tập pixel (m x n), hãy xác định đoạn của I với dự báo đồng nhất P là các tập R 1 , ,R k thoả mãn: 1. R i Ç R j =0 với mọi 1£ i ¹ j £ k, 2. I= R i È È R k , 3. H(R i )=true với mọi 1£ i £k, và 4. Với mọi i, j khác nhau, 1£ i, j £n, và R i È R j là vùng liên thông thì H(R i ÈR j )=false. Thí dụ, hãy xem xét vùng (4x4) chứa b-w levels chỉ ra trên bảng sau: Error! Cột Hàng 1 2 3 4 1 0.1 0.25 0.5 0.5 2 0.05 0.30 0.6 0.6 3 0.35 0.30 0.55 0.8 4 0.6 0.63 0.85 0.90 Hãy xem xét hàm dự báo đồng nhất Error! . Hàm dự báo đồng nhất này cho biết vùng R được xem như đồng nhất nếu tồn tại r sao cho mỗi tế bào trong vùng có mức bw là v thoả mãn |v-r| £ 0.03 Theo cách phân lớp này, dễ dàng thấy rằng ta có 5 vùng hình thành từ phân đoạn ảnh trên theo Error! như trên hình 3.5. R 1 ={(1,1), (1,2)} R 2 ={(1,3), (2,1), (2,2),(2,3)} R 3 ={(3,1),(3,2),(3,3),(4,2),(4,2)} R 4 ={(3,4),(4,3),(4,4)} R 5 ={(1,4),(2,4)} Dưới đây là phương pháp đơn giản tìm kiếm phân đoạn ảnh theo dự báo đồng nhất H: 1. Bẻ gẫy: Bắt đầu bằng toàn bộ ảnh. Nếu là đồng nhất, thực hiện xong và ảnh chính là đoạn hợp lệ. Nếu không, chia ảnh thành 2 phần và thực hiện lặp cho đến khi ta tìm ra R 1 , ,R n các vùng đồng nhất và thoả mãn mọi điều kiện (trừ điều kiện 4) trong định nghĩa thuộc tính đồng nhất. 2. Trộn: Kiểm tra xem những R i nào có thể trộn vào nhau. Kết thúc bước này ta có các đoạn hợp lệ R’ 1 , ,R’ k của ảnh, trong đó k£n và mỗi R’ i là hợp nhất của một vài R j . Giải thuật cài đặt các bước trên có thể mô tả dễ dàng bằng ba hàm và hàm chính có tên segment như sau: Giải thuật 3.1 function segment(I:image) SOL=0; check_split(I); merg(SOL); end function function check_split(R) if H(R)=”true” then addsol(R) else {X=split(R); check_split(X.part1); check_split(X.part2); } end function procedure addsol(R) SOL=SOLÈ{R} end procedure function merge(S) while S¹Æ do { Pick some Cand in S; merged=false; S=S-{Cand}; Enumerate S as C 1 , ,C k ; while i £ k do {if adjacent(Cand, C i ) then {Cand=Cand È C i ; S=S-{C i }; merged=true; } else {i=i+1; if merged then S=SÈ{Cand}; merged=false; } }}; end function 3.4 Truy vấn trên cơ sở tương tự Tại đây ta đã nghiên cứu kỹ thuật lấy ảnh làm đầu vào, cho lại phiên ảnh nén của ảnh đầu vào nhờ biến đổi ảnh DCT, DFT hay wavelet. Câu hỏi cần trả lời là: Cách nào có thể xác định nội dung của phân đoạn (hay ảnh phân đoạn) tương tự với ảnh khác (hay tập ảnh khác) hay không? Có nhiều trường hợp ứng dụng, khi có CSDL ảnh lớn, người sử dụng mong muốn truy vấn như “Đây là ảnh của một người. Hãy cho biết đó là ai?”. Có hai tiệm cận chính đến truy vấn ảnh trên cơ sở tương tự. 1. Tiệm cận thước đo: Trong tiệm cận này ta giả sử rằng có thước đo khoảng cách d để so sánh hai đối tượng ảnh. Hai đối tượng ảnh càng gần nhau thì chúng càng tương tự nhau. Vấn đề truy vấn trên cơ sở tương tự có thể được phát biểu như sau: Cho trước ảnh vào i, hãy tìm láng giềng gần nhất của i trong tập ảnh. Cho đến nay, tiệm cận thước đo được sử dụng nhiều nhất trong các CSDL ảnh. 2. Error! Tiệm cận biến đổi: Tiệm cận thước đo giả sử rằng quan niệm tương tự là “cố định”; có nghĩa rằng, trong bất kỳ ứng dụng nào, chỉ một quan niệm tương tự được sử dụng để làm chỉ mục dữ liệu (mặc dù nhiều ứng dụng sử dụng nhiều quan niệm tương tự khác nhau). Tương tự câu châm ngôn “Cái đẹp nằm trong mắt của người xem” thì cũng đúng với “Cái tương tự nằm trong mắt của người xem”. Thí dụ với hai ảnh, người này cho rằng hai con vật giống nhau (hai con khỉ), nhưng chuyên gia động vật cho rằng hai ảnh khác nhau: con đười ươi (hình 3.6a) và con tinh tinh (hình 3.6b). Tương tự với xâu ký tự “AI” và “intelligence”. Dưới con mắt người làm tin học thì chúng tương đương, nhưng với các chuyên gia sinh học thì AI lại là Artificial Insemination (thụ tinh nhân tạo) Do vậy, người sử dụng phải chỉ ra cái gì được coi là tương tự, thay cho việc để toàn bộ công việc cho hệ thống. 3.4.1 Tiệm cận thước đo Giả sử ta xem xét tập đối tượng Obj với các đặc tính pixel p 1 , ,p n . Mỗi đối tượng o được xem như tập S(o) của bộ (n+2) (n+2 tuple)có khuôn dạng sau: (xcoord, ycoord, v 1 , ,v n ) trong đó, v i là giá trị của thuộc tính p i kết hợp với tọa độ pixel (x, y). Rõ ràng, S(o) chứa (w x h) của bộ (n+2), trong đó w là độ rộng và h là độ cao của chữ nhật kết hợp với o. Thông thường, một đối tượng là toàn bộ ảnh hay đoạn ảnh. Thí dụ, cho trước CSDL ảnh mặt người. Nó bao gồm ảnh của nhiều người chụp dưới các điều kiện khác nhau thì một đối tượng có thể bao gồm nhiều mặt người. Trong tiệm cận thước đo, mức độ khác nhau được xác định bởi hàm khoảng cách d. Hàm d từ tập X đến khoảng cách đơn vị [0, 1] được gọi là hàm khoảng cách nếu thoả mãn các tiên đề sau đây. Với mọi x, y, z Î X ta có: d(x, y)=d(y,x) d(x,y)£d(x, z)+d(z,y) . segment(I:image) SOL=0; check_split(I); merg(SOL); end function function check_split(R) if H(R)=”true” then addsol(R) else {X=split(R); check_split(X .part1 ); check_split(X .part2 ); } end function. “false”. 3. Trước hết phân lớp mọi mức bw-level. Thí dụ, có thể phân lớp mọi bw-level giữa 0 và 0.1 là 1, mọi bw-level giữa 0.1 và 0.2 là 2, cho đến mức bw-level giữa 0.9 và 1 là mức 10. Tương. những R i nào có thể trộn vào nhau. Kết thúc bước này ta có các đoạn hợp lệ R’ 1 , ,R’ k của ảnh, trong đó k£n và mỗi R’ i là hợp nhất của một vài R j . Giải thuật cài đặt các bước trên có thể