diff --git a/components/rgbd-sources/src/calibrate.cpp b/components/rgbd-sources/src/calibrate.cpp
index e1b1512d60271313f905f1417e06a29a2ae85a2e..0134afbcd042efe7baf90dd9c9a202593de78a79 100644
--- a/components/rgbd-sources/src/calibrate.cpp
+++ b/components/rgbd-sources/src/calibrate.cpp
@@ -493,14 +493,15 @@ bool Calibrate::_recalibrate(vector<vector<Point2f>> *imagePoints,
 }
 
 bool Calibrate::undistort(cv::Mat &l, cv::Mat &r) {
-	local_->get(l, r);
+	Mat l_tmp, r_tmp;
+	local_->get(l_tmp, r_tmp);
 	if (!calibrated_) return false;
-	if (l.empty() || r.empty()) {
+	if (l_tmp.empty() || r_tmp.empty()) {
 		LOG(ERROR) << "l/r empty in undistort()!!!";
 		return false;
 	}
-	remap(l, l, map1_[0], map2_[0], INTER_LINEAR);
-	if (local_->isStereo()) remap(r, r, map1_[1], map2_[1], INTER_LINEAR);
+	remap(l_tmp, l, map1_[0], map2_[0], INTER_LINEAR);
+	if (local_->isStereo()) remap(r_tmp, r, map1_[1], map2_[1], INTER_LINEAR);
 	return true;
 }