Я хочу вычислить что-то в C ++ и вернуть результат в python. Это часть кода C ++:
const Mat& flow_map_x, flow_map_y;
std::vector<unchar> encoded_x, encoded_y;
flow_map_x = ...;
flow_map_y = ...;
Mat flow_img_x(flow_map_x.size(), CV_8UC1);
Mat flow_img_y(flow_map_y.size(), CV_8UC1);
encoded_x.resize(flow_img_x.total());
encoded_y.resize(flow_img_y.total());
memcpy(encoded_x.data(), flow_img_x.data, flow_img_x.total());
memcpy(encoded_y.data(), flow_img_y.data, flow_img_y.total());
bp::str tmp = bp::str((const char*) encoded_x.data())
Ошибка при запуске скрипта Python:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 0: invalid start byte
После отладки я обнаружил, что ошибка исходит из этой строки:
bp::str tmp = bp::str((const char*) encoded_x.data())
Я не очень хорош в C ++. Может кто-нибудь сказать мне, как исправить ошибку? Заранее спасибо!