Hi,
Thanks for your patience.
Please check this patch.
diff --git a/bin/aarch64/linux/release/nvx_demo_stereo_matching b/bin/aarch64/linux/release/nvx_demo_stereo_matching
index bffb088..76fb8c1 100755
Binary files a/bin/aarch64/linux/release/nvx_demo_stereo_matching and b/bin/aarch64/linux/release/nvx_demo_stereo_matching differ
diff --git a/data/stereo_matching_demo_config.ini b/data/stereo_matching_demo_config.ini
index d99894a..f047329 100644
--- a/data/stereo_matching_demo_config.ini
+++ b/data/stereo_matching_demo_config.ini
@@ -6,7 +6,7 @@ sad = 5
bt_clip_value = 31
max_diff = 32000
uniqueness_ratio = 0
-scanlines_mask = 85
+scanlines_mask = 255
flags = 2
ct_win_size = 0
hc_win_size = 1
diff --git a/demos/stereo_matching/obj/release/stereo_matching.o b/demos/stereo_matching/obj/release/stereo_matching.o
index 8db1679..a9e5188 100644
Binary files a/demos/stereo_matching/obj/release/stereo_matching.o and b/demos/stereo_matching/obj/release/stereo_matching.o differ
diff --git a/demos/stereo_matching/stereo_matching.cpp b/demos/stereo_matching/stereo_matching.cpp
index 311ceac..2549bc9 100644
--- a/demos/stereo_matching/stereo_matching.cpp
+++ b/demos/stereo_matching/stereo_matching.cpp
@@ -84,9 +84,12 @@ namespace hlsgm
private:
vx_graph main_graph_;
vx_node left_cvt_color_node_;
+ vx_node left_flip_node_;
vx_node right_cvt_color_node_;
+ vx_node right_flip_node_;
vx_node semi_global_matching_node_;
vx_node convert_depth_node_;
+ vx_node flip_depth_node_;
};
void SGBM::run()
@@ -121,16 +124,32 @@ namespace hlsgm
vx_image right_gray = vxCreateVirtualImage(main_graph_, width, height, VX_DF_IMAGE_U8);
NVXIO_CHECK_REFERENCE(right_gray);
+ vx_image flip_left_gray = vxCreateVirtualImage(main_graph_, width, height, VX_DF_IMAGE_U8);
+ NVXIO_CHECK_REFERENCE(left_gray);
+
+ vx_image flip_right_gray = vxCreateVirtualImage(main_graph_, width, height, VX_DF_IMAGE_U8);
+ NVXIO_CHECK_REFERENCE(right_gray);
+
+
left_cvt_color_node_ = vxColorConvertNode(main_graph_, left, left_gray);
NVXIO_CHECK_REFERENCE(left_cvt_color_node_);
+ left_flip_node_ = nvxFlipImageNode(main_graph_, left_gray, flip_left_gray, NVX_FLIP_HORIZONTAL);
+ NVXIO_CHECK_REFERENCE(left_flip_node_);
+
right_cvt_color_node_ = vxColorConvertNode(main_graph_, right, right_gray);
NVXIO_CHECK_REFERENCE(right_cvt_color_node_);
+ right_flip_node_ = nvxFlipImageNode(main_graph_, right_gray, flip_right_gray, NVX_FLIP_HORIZONTAL);
+ NVXIO_CHECK_REFERENCE(right_flip_node_);
+
// evaluate stereo
vx_image disparity_short = vxCreateVirtualImage(main_graph_, width, height, VX_DF_IMAGE_S16);
NVXIO_CHECK_REFERENCE(disparity_short);
+ vx_image flip_disparity = vxCreateVirtualImage(main_graph_, width, height, VX_DF_IMAGE_U8);
+ NVXIO_CHECK_REFERENCE(flip_disparity);
+
//
// The SGM algorithm is now added as a node to the graph via the
// nvxSemiGlobalMatchingNode().The input to the SGM node is previosuly
@@ -147,8 +166,8 @@ namespace hlsgm
semi_global_matching_node_ = nvxSemiGlobalMatchingNode(
main_graph_,
- left_gray,
- right_gray,
+ flip_left_gray,
+ flip_right_gray,
disparity_short,
params.min_disparity,
params.max_disparity,
@@ -168,16 +187,22 @@ namespace hlsgm
vx_int32 shift = 4;
vx_scalar s_shift = vxCreateScalar(context, VX_TYPE_INT32, &shift);
NVXIO_CHECK_REFERENCE(s_shift);
- convert_depth_node_ = vxConvertDepthNode(main_graph_, disparity_short, disparity, VX_CONVERT_POLICY_SATURATE, s_shift);
+ convert_depth_node_ = vxConvertDepthNode(main_graph_, disparity_short, flip_disparity, VX_CONVERT_POLICY_SATURATE, s_shift);
vxReleaseScalar(&s_shift);
NVXIO_CHECK_REFERENCE(convert_depth_node_);
+ flip_depth_node_ = nvxFlipImageNode(main_graph_, flip_disparity, disparity, NVX_FLIP_HORIZONTAL);
+ NVXIO_CHECK_REFERENCE(flip_depth_node_);
+
// verify the graph
NVXIO_SAFE_CALL( vxVerifyGraph(main_graph_) );
// clean up
vxReleaseImage(&left_gray);
vxReleaseImage(&right_gray);
+ vxReleaseImage(&flip_left_gray);
+ vxReleaseImage(&flip_right_gray);
+ vxReleaseImage(&flip_disparity);
vxReleaseImage(&disparity_short);
}
Thanks.