Về cơ bản, đây là câu hỏi tiếp theo cho một vấn đề từ vài tuần trước , mặc dù đây là về thuật toán nói chung mà không áp dụng cho vấn đề thực tế của tôi.
Thuật toán về cơ bản tìm kiếm thông qua tất cả các dòng trong ảnh, bắt đầu từ phía trên bên trái của nó, cho đến khi nó tìm thấy một pixel là một đường viền. Trong giả C ++:
int start = 0;
for(int i=0; i<amount_of_pixels; ++i)
{
if(pixels[i] == border)
{
start = i;
break;
}
}
Khi tìm thấy nó, nó bắt đầu thuật toán hình vuông diễu hành và tìm đường viền cho bất kỳ đối tượng nào mà pixel thuộc về.
Hãy nói rằng tôi có một cái gì đó như thế này:
Nơi mà tất cả mọi thứ trừ màu trắng là một đường viền.
Và đã tìm thấy các điểm đường viền của blob đầu tiên:
Đối với thuật toán chung, nó đã kết thúc. Nó tìm thấy một đường viền và đã thực hiện công việc của nó. Làm thế nào tôi có thể chuyển sang hai đốm màu khác để tìm đường viền của chúng?