我一直在尝试通过使用imread
将循环中的某些图像读取到带有opencv的Mat
vector (图像)中,方法是从QString
vector 中获取文件名,但它不会编译。我知道问题出在我的QString
的格式上,但似乎无法解决。我也尝试过... image = imread( image_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 );
}
}
最佳答案
要使用imread
,您必须将std::string
传递给它。
Mat imread( const std::string& filename, int flags=1 );
在您的情况下,
image_names
是vector<QString>
,因此正确的代码是:image = imread( image_names[i].toStdString());
关于qt - Opencv使用QString文件名的imread和vector加载图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24267567/