Tôi có một đồ chơi robot được theo dõi và tôi đang điều khiển nó bằng iPhone. Robot xuất ra một nguồn cấp dữ liệu camera trực tiếp có kích thước khung đã biết và tôi đang hiển thị nó trên UIImage.
Tôi đã thêm một con trỏ laser vào robot và cố định nó dọc theo trục của robot. Tôi đang cố gắng phát hiện dấu chấm con trỏ laser trên ảnh và do đó cố gắng tính toán độ gần của vật thể. Nếu chấm laser ở xa trung tâm, tôi biết rằng robot bị kẹt vào tường và cần phải sao lưu.
Làm cách nào để phát hiện một chấm các pixel màu đỏ trắng sáng trên màn hình? Một giải pháp sẽ là lấy mẫu màu của các pixel trong bán kính nhất định của tâm và phát hiện màu sáng của blob. Bất cứ ai có thể đề xuất một thuật toán cho hoạt động này?
Một cách tiếp cận khác là theo dõi vị trí trung bình của dấu chấm trong một vài khung hình cuối cùng, do đó làm giảm bán kính dự đoán. Nếu không có dấu chấm trong một khu vực được xác định trước, khu vực tìm kiếm có thể được mở rộng.
Cuối cùng, tôi muốn có thể dạy robot phát hiện thảm xung quanh nó. Thảm phản chiếu một con trỏ laser theo một cách nhất định và tôi muốn hiểu có bao nhiêu khung hình xung quanh robot có các thuộc tính tương tự. Nếu tôi biết con trỏ laser ở đâu trên màn hình, tôi có thể cắt một hình chữ nhật nhỏ từ hình ảnh đó và so sánh chúng với nhau. Có cách nào hiệu quả để so sánh nhiều hình ảnh nhỏ với nhau để hiểu nếu hình bóng của chúng khớp với nhau không?
Tôi nhận thấy rằng tia laser bị phản xạ khỏi các bề mặt bóng và hướng phản xạ này có thể cho tôi biết điều gì đó về hướng của bề mặt trong không gian, theo quy luật khúc xạ.
Cảm ơn bạn!