我正在使用LabView和OpenCV从LabView中的文件夹(16位签名)加载未知数量的2D图片,然后将其提供给您执行s.th.的OpenCV。然后将它发送回LabView。
这是我的方法,但它不起作用,希望你可以帮助我?
更新:
唯一没有给我正确像素值的是如何从LabView访问3D数组。
答案 0 :(得分:0)
您只能读取一个图像:只有一个路径和一个IMAQ图像从for循环中输出。
我的建议:将IMAQ读取文件功能放在for循环中,并为IMAQ图像启用自动索引(记得在for循环的每次迭代中更改图像名称)。
然后,您可以在每个读取的图像上应用OpenCV功能。
答案 1 :(得分:-1)
你可以使用包含图像组路径的std :: vector。
您可以使用如下所示的函数来填充向量,以及图像的相对路径:
std::vector<std::String> imagelistVector(std::string path)
{
std::vector<std::String> fn;
cv::glob(path,fn,false);
return fn;
}
使用cv :: glob模板
用法例如:
vector<String> imglist=imagelistVector("data/*.jpg");
将在本地&#34;数据&#34;中读取所有带有.jpg扩展名的图像。夹
然后你可以使用列表来读取所有图像,使用类似的for循环:
for (unsigned int i =0; i<imglist.size(); i++)
{
Mat img = imread(filelist.at(i), CV_LOAD_IMAGE_COLOR);
//do something with each image
}
或者如果您想存储所有图像:
std::vector<cv::Mat> images;
for (unsigned int i =0; i<imglist.size(); i++)
{
Mat img = imread(filelist.at(i), CV_LOAD_IMAGE_COLOR);
images.push_back(img)
}
//do something with all or a group of images