实现pythonnp.fromstring格式C++中的()

2024-09-28 21:26:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图把我的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格式"). 你知道吗

拜托,帮帮我

一般来说,我的主要问题是np.fromstring格式,因为我从套接字得到一个字符串,而不是一个字节或整数,我应该将一个字符串转换为像素数组,从(每个0-255)


Tags: 代码selfimgdata格式nperrorcv2
1条回答
网友
1楼 · 发布于 2024-09-28 21:26:07

谢谢大家的评论。我找到了解决办法:

    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_img = imdecode(Img, 1);

        imshow("1", img_img);
        waitKey(1);

    }

当然,还需要提出for循环。你知道吗

相关问题 更多 >