указатели — чтение файлов из URL в C ++ вместо локальных файлов с использованием библиотеки Point Cloud Library

Я новичок в библиотеке Point Cloud (PCL) и имею ограниченные знания C ++ о том, как работают указатели. Хотя мы можем загрузить файл из файла и визуализировать его (используя этот учебник), как мы можем прочитать его с HTTP-URL?

int main () {
pcl::PointCloud<pcl::PointXYZRGBA>::Ptr cloud (new pcl::PointCloud<pcl::PointXYZRGBA>);
pcl::io::loadPCDFile ("my_point_cloud.pcd", *cloud);

pcl::visualization::CloudViewer viewer("Cloud Viewer");

//blocks until the cloud is actually rendered
viewer.showCloud(cloud);

//use the following functions to get access to the underlying more advanced/powerful
//PCLVisualizer

while (!viewer.wasStopped ())
{
}
return 0;
}

0

Решение

Я не знаю, делает ли PCL это напрямую, но вы можете использовать CPR или же urdl Библиотеки C ++ либо скачать файл на локальный временный, или на самом деле работать в потоке.

Пример Urdl:

// For urdl::url.
#include <urdl/url.hpp>

// etc...

urdl::url url("http://somehost/path");
urdl::istream is("http://somehost/path");

и этот istream может использоваться либо напрямую (если PCL поддерживает это), либо вы можете записать данные о потоке в файл.

Пример программы с использованием cpr (a.k.a. C ​​++ Requests; на основе библиотеки C libcurl):

#include <cpr/cpr.h>

int main(int argc, char** argv) {
auto r = cpr::Get(cpr::Url{"https://api.github.com/repos/whoshuu/cpr/contributors"},
cpr::Authentication{"user", "pass"},
cpr::Parameters{{"anon", "true"}, {"key", "value"}});
r.status_code;                  // 200
r.header["content-type"];       // application/json; charset=utf-8
r.text;                         // JSON text string
}

(взято с официального сайта cpr.)

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector