Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt Opencv使用imread和QString文件名向量加载图像_Qt_Opencv_C++11_Qstring - Fatal编程技术网

Qt Opencv使用imread和QString文件名向量加载图像

Qt Opencv使用imread和QString文件名向量加载图像,qt,opencv,c++11,qstring,Qt,Opencv,C++11,Qstring,我一直在尝试使用opencv使用imread将循环中的一些图像读取到Mat(图像)的向量中,方法是从QString的向量中获取文件名,但它不会编译。我知道这是我的QString格式的问题,但似乎无法解决。我也尝试过…image=imread(image\u vector[I])。。。还有其他几种方式。非常感谢您的帮助 for ( unsigned int i = 0; i < image_names.size(); i++ ) { image = imread( image_na

我一直在尝试使用opencv使用
imread
将循环中的一些图像读取到
Mat
(图像)的向量中,方法是从
QString
的向量中获取文件名,但它不会编译。我知道这是我的
QString
格式的问题,但似乎无法解决。我也尝试过…
image=imread(image\u vector[I])。。。还有其他几种方式。非常感谢您的帮助

for ( unsigned int i = 0; i < image_names.size(); i++ )
{ 
    image = imread( image_names.data()->at(i) );

    if( !image.data )
    {
        qDebug()<< "Error";
    }
    else
    {
         image_vector.push_back( image );
    }
}
for(unsigned int i=0;iat(i));
如果(!image.data)
{

qDebug()要使用
imread
必须向其传递
std::string

Mat imread( const std::string& filename, int flags=1 );
在您的例子中,
image\u name
vector
,因此正确的代码是:

image = imread( image_names[i].toStdString());

image\u vector
中有什么内容?您似乎既从中读取了文件名,又向其中添加了cv矩阵?对不起,我输入了错误的名称,我已经编辑过。请尝试类似于
image\u names[I].toStdString().c\u str()
的内容。imread的声明是:
cv\u EXPORTS\u W Mat imread(const string&filename,int flags=1)因此,如果
image\u names
是QString的数组或向量,则应使用:
image=imread(image\u names[i].tostString());
Right:
image\u names.data()
返回QString*指针,而
image\u names.data()->at(i)
返回向量第一个QString的第i个QChar。