Я пытаюсь перевести мой код Python на C ++ (для ускорения).
Мой код получает изображение через сокет и просто показывает его.
Код Python:
self._img = cv2.imdecode(np.fromstring(self._SocketData, np.uint8), 1)
if not self._img is None:
self._img = cv2.resize(self._img, (1280, 720))
cv2.imshow("1", self._img)
cv2.waitKey(1)
К сожалению, у меня проблема с "np.fromstring" в C ++.
Как это реализовать?
Я пытаюсь это:
while (ignored_error != boost::asio::error::eof) {
boost::array<uchar, 10000> RECV_DATA;
size_t ImageSize = image_recver.read_some(
boost::asio::buffer(RECV_DATA), ignored_error);
vector<uchar> Img (ImageSize);
for (int i = 0; i < ImageSize; i++) {
Img[i] = RECV_DATA[i];
}
Mat img(1280, 720, CV_64F, Img.data());
imshow("1", img);
waitKey(1);
}
Но этоне работает (я думаю, что это связано с "cv2.imdecode" и "np.fromstring").
Пожалуйста, помогите мне
PS Вообще, моя главная проблема именно в np.fromstringпотому что из сокета я получаю строку, а не несколько байтов или целых чисел, и я должен преобразовать строку в массив пикселей из (0-255 каждый)