Gọi L là khoảng cách giữa hai mép trong của vi kẹp. Để tìm được L ta phải tìm hai điểm có đánh dấu + trên hai cánh tay của vi kẹp.
Một nhận xét là một ảnh I có kích thước là x,y (x là số dòng ,y là số cột) thì mỗi phần tử của ảnh có thể truy cập tương tự như các phần tử của một ma trận ví dụ như I(x1,y1). Các ảnh chỉ số cụ thể là ảnh chứa biên của vi kẹp ở trên thì các phần tử của ảnh có giá trị là 1 tại các điểm thuộc đường biên của vi kẹp còn các điểm khác (thuộc nền đen) có giá trị là 0.
Như vậy nhìn vào ảnh ở trên ta thấy để tìm được hai điểm có dấu + ta có thể thực hiện phương pháp quét lùi
Nguyễn Văn Thắng – Luận văn thạc sĩ hệ thống thực nghiệm
a) Thuật toán quét lùi
Thuật toán quét lùi này tương đối đơn giản. Đầu tiên xuất phát từ điểm có tọa độ là (Xmax,0) tăng dần giá trị của cột từ giá trị 0 đến giá trị cực đại. Sau mỗi lần tăng ta so sánh giá trị của điểm I (Xi,Yj) với 1. Nếu giá trị tại điểm I có giá trị bằng 1 có nghĩa là điểm ảnh đó thuộc đường biên. Ghi nhớ tạo độ điểm này lại và duyệt tiếp. Nếu giá trị tại điểm I đó có giá trị bằng 0 thì tiếp tục tăng giá trị chỉ số cột lên một. Giá trị chỉ số cột tăng đến giá trị cực đại Ymax mà vẫn chưa tìm đủ 4 điểm thuộc đường biên thì ta quay về phía bên trái giảm chỉ số dòng đi 1 đơn vị và lại cho chỉ số cột tăng từ 0 đến giá trị cực đại Ymax. Cứ như thế ta sẽ tìm được một dòng nào đó chứa cả 4 điểm thuộc biên của vi kẹp.
Để ý thấy rằng hai đầu của vi kẹp không cùng nằm trên một đường thẳng nằm ngang mà tay kẹp bên phải cao hơn tay kẹp bên trái. Do đó nếu ta chỉ tìm thấy có hai điểm biên trên một dòng thì có nghĩa là hai điểm biên đó chỉ thuộc một bên của vi kẹp và ta vẫn phải giảm số dòng đi một để tìm trên các dòng khác.
Sau khi tìm được 4 điểm thuộc biên của vi kẹp trên cùng một dòng, tọa độ cột của các điểm đó được giữ bởi một mảng P(1..4) và khoảng cách giữa hai đầu vi kẹp được tính là P(3) – P(2).
Hình 4.6 Lưu đồ thuật toán quét lùi
Begin [x,y] = size(ima) i=x k=k+1; P(k)=j; ima(i,j)=1 j=j+1; j<y i=i-1 j=1; k=0;P(1:4)=0 k=4 i>0 L=P(3)- P(2) End T T T F F F T
Nguyễn Văn Thắng – Luận văn thạc sĩ hệ thống thực nghiệm
Hình 4.7. Các tọa độ cần xác định của ảnh
Với thuật toán trên mục đích cuối cùng của chúng ta là đi tìm 4 điểm nằm trên đường biên. Nếu đường biên trơn tru không „bị vỡ‟ thì ta luôn luôn tìm được 4 điểm trong đó 2 điểm thuộc cánh tay kẹp bên trái và 2 điểm thuộc cánh tay kẹp bên phải. Tuy nhiên nếu gặp trường hợp đường biên không được như ý muốn như hình dưới đây thì thuật toán này sẽ tìm được 4 điểm thuộc biên nhưng chỉ ở một cánh tay của vi kẹp.
Hình 4.8 Ảnh phóng to của một bên kẹp khi đường biên không trơn
Như vậy công thức tính khoảng cách L không còn được đúng nữa. Ở đây không phải là do thuật toán bị sai mà là do chất lượng của ảnh thu được bị bóng hay nhòe, khiến cho việc khắc phục làm trơn ảnh là không thể được
Mặt khác thuật toán này có một nhược điểm là nếu gặp ảnh lớn thì số lần lặp sẽ là lớn dẫn đến việc không đáp ứng được thời gian thực. Có thể cải thiện thuật toán này bằng cách là không phải ở dòng nào ta cũng quét mà ta cho cách n dòng lại quét
một dòng. Như vậy thì số lần lặp sẽ giảm đi n lần, nhưng cũng phạm phải một sai số là n dòng.
Một thuật toán khác được tìm hiểu và đưa ra để cải thiện nhằm giảm bớt số lần lặp dẫn đến giảm thời gian xử lý.
b) Thuật toán quét trái phải
Thuật toán này xuất phát từ nhận xét là sự chuyển động của tay kẹp chỉ trong một phạm vi nhất định vì thế mà các tọa độ đã tìm được trong một lần duyệt sẽ thay đổi rất ít so với vị trí trước. Vì thế mà ta căn cứ vào điểm trước đó để tìm ra điểm hiện tại. Ta xuất phát từ trung điểm của hai điểm đã xác định từ lần trước ta quét về bên trái nếu gặp được biên của vi kẹp thì duyệt tiếp sang bên phải nếu cũng tìm được biên của vi kẹp thì hai điểm đó chính là hai điểm ta cần tìm. Nếu quét sang trái hoặc sang phải mà không tìm thấy biên thì giảm dòng đi 1 đơn vị và tiếp tục quay lại quét. Như vậy thì khoảng cách L sẽ được tính là tọa độ cột của điểm bên phải trừ đi tọa độ cột của điểm bên trái.