114 {
115 if (cudaSetDevice(
device_id_) != cudaSuccess) {
117 return false;
118 }
119
123
124 bool success = false;
125
126#if USE_GPU == 0
127 AINFO <<
"Fill in CPU mode ...";
129 AERROR <<
"Undistortion DO NOT support CPU mode!";
130 return false;
131 }
132 if (encoding == "rgb8") {
133 memcpy(
rgb_->mutable_cpu_data(), data,
rgb_->count() *
sizeof(data[0]));
135 success = true;
136 } else if (encoding == "bgr8") {
137 memcpy(
bgr_->mutable_cpu_data(), data,
bgr_->count() *
sizeof(data[0]));
139 success = true;
140 } else if (encoding == "gray" || encoding == "y") {
141 memcpy(
gray_->mutable_cpu_data(), data,
gray_->count() *
sizeof(data[0]));
143 success = true;
144 } else {
145 AERROR <<
"Unrecognized image encoding: " << encoding;
146 }
147#else
148 AINFO <<
"Fill in GPU mode ...";
149 if (encoding == "rgb8") {
151 cudaMemcpy(
ori_rgb_->mutable_gpu_data(), data,
154 } else {
155 cudaMemcpy(
rgb_->mutable_gpu_data(), data,
156 rgb_->rows() *
rgb_->width_step(), cudaMemcpyDefault);
157 success = true;
158 }
160 } else if (encoding == "bgr8") {
162 cudaMemcpy(
ori_bgr_->mutable_gpu_data(), data,
165 } else {
166 cudaMemcpy(
bgr_->mutable_gpu_data(), data,
167 bgr_->rows() *
bgr_->width_step(), cudaMemcpyDefault);
168 success = true;
169 }
171 } else if (encoding == "gray" || encoding == "y") {
173 cudaMemcpy(
ori_gray_->mutable_gpu_data(), data,
175 cudaMemcpyDefault);
177 } else {
178 cudaMemcpy(
gray_->mutable_gpu_data(), data,
179 gray_->rows() *
gray_->width_step(), cudaMemcpyDefault);
180 success = true;
181 }
183 } else {
184 AERROR <<
"Unrecognized image encoding: " << encoding;
185 }
186#endif
187
188 AINFO <<
"Done! (" << success <<
")";
189 return success;
190}
std::shared_ptr< base::Image8U > ori_gray_
std::shared_ptr< base::Image8U > gray_
std::shared_ptr< base::Image8U > ori_bgr_
std::shared_ptr< base::Image8U > bgr_
std::shared_ptr< base::Image8U > ori_rgb_
std::shared_ptr< UndistortionHandler > handler_
std::shared_ptr< base::Image8U > rgb_