Tôi đang sử dụng chức năng Kim tự tháp Lukas Kanade của OpenCV để ước tính lưu lượng quang học. tôi gọi số cvGoodFeaturesToTrack
và sau đó cvCalcOpticalFlowPyrLK
. Đây là mã của tôi:Luồng quang học sử dụng opencv
while(1)
{
...
cvGoodFeaturesToTrack(frameAth,eig_image,tmp_image,cornersA,&corner_count,0.01,5,NULL,3,0.4);
std::cout<<"CORNER COUNT AFTER GOOD FEATURES2TRACK CALL = "<<corner_count<<std::endl;
cvCalcOpticalFlowPyrLK(frameAth,frameBth,pyrA,pyrB,cornersA,cornersB,corner_count,cvSize(win_size,win_size),5,features_found,features_errors,cvTermCriteria(CV_TERMCRIT_ITER| CV_TERMCRIT_EPS,20,0.3),CV_LKFLOW_PYR_A_READY|CV_LKFLOW_PYR_B_READY);
cvCopy(frameBth,frameAth,0);
...
}
frameAth
là khung màu xám trước và frameBth
là khung màu xám hiện tại từ một webcam. Nhưng khi tôi đầu ra số lượng các tính năng tốt để theo dõi trong mỗi khung số giảm sau khi tổng thời gian và tiếp tục giảm. nhưng nếu tôi chấm dứt chương trình và thực thi lại mã (không làm ảnh hưởng đến lĩnh vực xem webcam) thì số điểm được hiển thị là các tính năng tốt để theo dõi ... làm thế nào có thể cho cùng một trường xem và cho cùng một cảnh chức năng cung cấp cho sự khác biệt về số điểm ... và sự khác biệt là cao ... một số điểm như các tính năng tốt để theo dõi sau 4 phút thực hiện là 20 hoặc 50 ... nhưng khi cùng một chương trình chấm dứt và thực hiện một lần nữa số lượng là 500 đến 700 khởi đầu nhưng một lần nữa từ từ giảm .. tôi đang sử dụng opencv trong 4 tháng qua vì vậy tôi đang lil mới để openCV..please hướng dẫn tôi hoặc cho tôi biết nơi tôi có thể tìm thấy một giải pháp ... rất nhiều thanx trước ..
@ sgar91 ... thanx ... tôi đã cải thiện hiệu suất theo đề xuất của bạn –
tôi đã gặp phải sự cố tương tự cách đây một thời gian. – sgarizvi
@rotating_image Tôi không hiểu tại sao câu trả lời này được chọn là được chấp nhận. Khi bạn đặt lại số lượng đối tượng địa lý, điều này không có ý nghĩa gì khi gọi 'cvCalcOpticalFlowPyrLK'. Nó sẽ cho bạn kết quả tương tự khi bạn không gọi nó ... Đọc tài liệu trước. – ArtemStorozhuk