Do ta chỉ cần xác định kích thước của mỗi đối tượng nên việc giảm bớt các điểm đen trước khi tìm kiếm không ảnh hưởng đến kết quả đạt được.
Sau khi loại bỏ bớt các điểm đen thì số lần phải tính đệ quy đã giảm đi nhiều lần. Ta tiến hành tính toán hình hộp bao quanh mỗi đối tượng ( hình hộp này được xác định dựa trên tọa độ của đỉnh trên bên trái Xmin, Ymin và đỉnh dưới bên phải Xmax, Ymax) kính thước của đối tượng cũng chính là kích thước của hình hộp bao quanh nó.
Giải thuật xác định hình hộp bao quanh mỗi đối tượng được mô tả như sau:
FOR i = 1 TO no_of_rows FOR j = 1 TO no_of_columns IF pxl[i,j] = 1
SET MAX_X = MIN_X = i SET MAX_Y = MIN_Y = j CALL PROC MCR(i,j)
PROC MCR (cur_x, cur_y)
FOR 8 ngbr_pxl OF pxl[cur_x, cur_y] IF ngbr_pxl = 1
IF ngbr_pxl_x > MAX_X SET MAX_X = ngbr_pxl_x IF ngbr_pxl_x < MIN_X SET MIN_X = ngbr_pxl_x IF ngbr_pxl_y > MAX_Y SET MAX_Y = ngbr_pxl_y IF ngbr_pxl_y < MIN_Y SET MIN_Y = ngbr_pxl_y SET ngbr_pxl = 0
CALL PROC MCR(ngbr_pxl_x, ngbr_pxl_y)
Giải thuật 2-2
Theo giải thuật này, trước hết ta duyệt ảnh lần lượt từ trên xuống, mỗi khi gặp một điểm đen( điểm đen này thuộc về một đối tượng nào đó và ta phải tìm được hình hộp bao quanh đối tượng này) ta thực hiện một thủ tục đệ quy MCR (cur_x, cur_y) (
với cur_x và cur_y là tọa độ của điểm hiện tại) để tìm tất cả các điểm đen xung quanh nó theo tám hướng. Nếu nó có điểm lân cận ngbr_pxl là điểm đen ta tiến hành cập
nhập lại tọa độ của hình hộp bao quanh rồi lại gọi thủ tục MCR(ngbr_pxl_x,
ngbr_pxl_y) để tìm tất cả các điểm đen lân cận với điểm này. Công việc tiếp tục cho đến khi không tìm thêm được điểm đen nào thuộc đối tượng hiện tại.
Như vậy khi duyệt ảnh, khi gặp một điểm đen, bằng việc tìm kiếm đệ quy theo tám hướng ta có thể xác định được toàn bộ đối tượng mà điểm đen đó thuộc về.
Kết quả xác định các hình hộp bao quanh mỗi đối tượng