2013-09-23 42 views
9

Tôi muốn sử dụng chức năng opencv cv::cornerSubPix() cho rằng tôi cần nhau, câu hỏi của tôi cv::TermCriteria là về tham số cuối cùng của chức năng này:cv :: TermCriteria hoạt động như thế nào trong opencv?

cv::TermCriteria(cv::TermCriteria::MAX_ITER + 
       cv::TermCriteria::EPS, 
       50, // max number of iterations 
       0.0001)); // min accuracy 

gì về tính chính xác phút ở đây nghĩa là gì?

+0

Tôi thấy câu trả lời ở đây không thực sự chi tiết. Bạn đã tìm thấy một lời giải thích tốt đẹp về TermCriteria? Tôi đang cố gắng để hiểu nó ngay bây giờ và tôi không tìm thấy bất kỳ lời giải thích tốt. – definera

+0

@ Crash-ID: \ Tôi không xin lỗi, tôi không sử dụng OpenCV nữa vì vậy chúc bạn may mắn với dự án của bạn – Engine

+0

Okey, cảm ơn anyway :) – definera

Trả lời

7

Cấu trúc của TermCriteria

TermCriteria(

int type, // CV_TERMCRIT_ITER, CV_TERMCRIT_EPS, or both 

int maxCount, 

double epsilon 
); 

Thông thường chúng ta sử dụng TermCriteria() chức năng để tạo ra cấu trúc chúng ta cần. Các số đầu tiên của chức năng này là một trong hai CV_TERMCRIT_ITER hoặc CV_TERMCRIT_EPS, mà nói với các thuật toán mà chúng tôi muốn chấm dứt hoặc sau một số lần lặp hoặc khi metric hội tụ đạt một số giá trị nhỏ (tương ứng). Hai đối số tiếp theo đặt các giá trị mà tại đó một, cái kia hoặc cả hai tiêu chí này sẽ chấm dứt thuật toán.

Lý do chúng tôi có cả hai tùy chọn là để chúng tôi có thể đặt loại thành CV_TERMCRIT_ITER | CV_TERMCRIT_EPS và do đó dừng khi đạt đến giới hạn.

3

Ý nghĩa chính xác của thuật ngữ epsilon phụ thuộc vào thuật toán mà tiêu chí chấm dứt được dự định. (Xem trang 299-300 của cuốn sách Learning OpenCV cho một số chi tiết trên cvTermCriteria)

đây, đặc biệt, từ documentation:

... quá trình vị trí góc tinh tế dừng hoặc sau criteria.maxCount lặp hoặc khi vị trí góc di chuyển theo nhỏ hơn criteria.epsilon trên một số lần lặp lại.

Vì vậy, các hạn epsilon xác định tính chính xác bạn cần trong các giá trị subpixel của bạn, ví dụ như một giá trị của 0.0001 có nghĩa là bạn đang yêu cầu cho các giá trị subpixel xuống với độ chính xác 1/10000 của một pixel. (Xem p 321 trong số Learning OpenCV cuốn sách)

Các vấn đề liên quan