mirror of
https://github.com/opencv/opencv.git
synced 2025-08-06 14:36:36 +08:00
fix for gpu::StereoBeliefPropogation:
use continuous memory for internal buffers
(cherry picked from commit e2a9df408f
)
This commit is contained in:
parent
c7b471f10f
commit
558054a53d
@ -158,7 +158,7 @@ namespace
|
|||||||
|
|
||||||
init(stream);
|
init(stream);
|
||||||
|
|
||||||
datas[0].create(rows * rthis.ndisp, cols, rthis.msg_type);
|
createContinuous(rows * rthis.ndisp, cols, rthis.msg_type, datas[0]);
|
||||||
|
|
||||||
comp_data_callers[rthis.msg_type == CV_32F][left.channels()](left, right, datas[0], StreamAccessor::getStream(stream));
|
comp_data_callers[rthis.msg_type == CV_32F][left.channels()](left, right, datas[0], StreamAccessor::getStream(stream));
|
||||||
|
|
||||||
@ -187,10 +187,10 @@ namespace
|
|||||||
private:
|
private:
|
||||||
void init(Stream& stream)
|
void init(Stream& stream)
|
||||||
{
|
{
|
||||||
u.create(rows * rthis.ndisp, cols, rthis.msg_type);
|
createContinuous(rows * rthis.ndisp, cols, rthis.msg_type, u);
|
||||||
d.create(rows * rthis.ndisp, cols, rthis.msg_type);
|
createContinuous(rows * rthis.ndisp, cols, rthis.msg_type, d);
|
||||||
l.create(rows * rthis.ndisp, cols, rthis.msg_type);
|
createContinuous(rows * rthis.ndisp, cols, rthis.msg_type, l);
|
||||||
r.create(rows * rthis.ndisp, cols, rthis.msg_type);
|
createContinuous(rows * rthis.ndisp, cols, rthis.msg_type, r);
|
||||||
|
|
||||||
if (rthis.levels & 1)
|
if (rthis.levels & 1)
|
||||||
{
|
{
|
||||||
@ -216,10 +216,10 @@ namespace
|
|||||||
int less_rows = rows / 2;
|
int less_rows = rows / 2;
|
||||||
int less_cols = cols / 2;
|
int less_cols = cols / 2;
|
||||||
|
|
||||||
u2.create(less_rows * rthis.ndisp, less_cols, rthis.msg_type);
|
createContinuous(less_rows * rthis.ndisp, less_cols, rthis.msg_type, u2);
|
||||||
d2.create(less_rows * rthis.ndisp, less_cols, rthis.msg_type);
|
createContinuous(less_rows * rthis.ndisp, less_cols, rthis.msg_type, d2);
|
||||||
l2.create(less_rows * rthis.ndisp, less_cols, rthis.msg_type);
|
createContinuous(less_rows * rthis.ndisp, less_cols, rthis.msg_type, l2);
|
||||||
r2.create(less_rows * rthis.ndisp, less_cols, rthis.msg_type);
|
createContinuous(less_rows * rthis.ndisp, less_cols, rthis.msg_type, r2);
|
||||||
|
|
||||||
if ((rthis.levels & 1) == 0)
|
if ((rthis.levels & 1) == 0)
|
||||||
{
|
{
|
||||||
@ -286,7 +286,7 @@ namespace
|
|||||||
cols_all[i] = cols_all[i-1] / 2;
|
cols_all[i] = cols_all[i-1] / 2;
|
||||||
rows_all[i] = rows_all[i-1] / 2;
|
rows_all[i] = rows_all[i-1] / 2;
|
||||||
|
|
||||||
datas[i].create(rows_all[i] * rthis.ndisp, cols_all[i], rthis.msg_type);
|
createContinuous(rows_all[i] * rthis.ndisp, cols_all[i], rthis.msg_type, datas[i]);
|
||||||
|
|
||||||
data_step_down_callers[funcIdx](cols_all[i], rows_all[i], rows_all[i-1], datas[i-1], datas[i], cudaStream);
|
data_step_down_callers[funcIdx](cols_all[i], rows_all[i], rows_all[i-1], datas[i-1], datas[i], cudaStream);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user