|
|
@ -210,6 +210,11 @@ public: |
|
|
|
* In theory, it should have a small value in order to maintain both parts in correspondence. |
|
|
|
* In theory, it should have a small value in order to maintain both parts in correspondence. |
|
|
|
* The method is stable for a large range of values of this parameter. |
|
|
|
* The method is stable for a large range of values of this parameter. |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
double gamma; |
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
|
|
* parameter for robustness |
|
|
|
|
|
|
|
*/ |
|
|
|
double theta; |
|
|
|
double theta; |
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
@ -241,12 +246,13 @@ public: |
|
|
|
bool useInitialFlow; |
|
|
|
bool useInitialFlow; |
|
|
|
|
|
|
|
|
|
|
|
private: |
|
|
|
private: |
|
|
|
void procOneScale(const GpuMat& I0, const GpuMat& I1, GpuMat& u1, GpuMat& u2); |
|
|
|
void procOneScale(const GpuMat& I0, const GpuMat& I1, GpuMat& u1, GpuMat& u2, GpuMat& u3); |
|
|
|
|
|
|
|
|
|
|
|
std::vector<GpuMat> I0s; |
|
|
|
std::vector<GpuMat> I0s; |
|
|
|
std::vector<GpuMat> I1s; |
|
|
|
std::vector<GpuMat> I1s; |
|
|
|
std::vector<GpuMat> u1s; |
|
|
|
std::vector<GpuMat> u1s; |
|
|
|
std::vector<GpuMat> u2s; |
|
|
|
std::vector<GpuMat> u2s; |
|
|
|
|
|
|
|
std::vector<GpuMat> u3s; |
|
|
|
|
|
|
|
|
|
|
|
GpuMat I1x_buf; |
|
|
|
GpuMat I1x_buf; |
|
|
|
GpuMat I1y_buf; |
|
|
|
GpuMat I1y_buf; |
|
|
@ -261,7 +267,9 @@ private: |
|
|
|
GpuMat p11_buf; |
|
|
|
GpuMat p11_buf; |
|
|
|
GpuMat p12_buf; |
|
|
|
GpuMat p12_buf; |
|
|
|
GpuMat p21_buf; |
|
|
|
GpuMat p21_buf; |
|
|
|
GpuMat p22_buf; |
|
|
|
GpuMat p22_buf; |
|
|
|
|
|
|
|
GpuMat p31_buf; |
|
|
|
|
|
|
|
GpuMat p32_buf; |
|
|
|
|
|
|
|
|
|
|
|
GpuMat diff_buf; |
|
|
|
GpuMat diff_buf; |
|
|
|
GpuMat norm_buf; |
|
|
|
GpuMat norm_buf; |
|
|
|