我正在尝试在循环中运行cvtColor命令。
vector<Mat> RImages;
vector<Mat> hImages;
for ( int idx = 0; idx < blocks_width * blocks_height; idx++ )
{
...
Mat temp;
RImages.push_back( imread( filename , 1 ) );
hImages.push_back( cvtColor( RImages[ idx ], temp , CV_BGR2HSV ));
}
我收到错误:
无效使用void表达式 在ctColor。
答案 0 :(得分:4)
if (!alph.Contains(c))
{
decrypted += c;
continue;
}
此功能不返回任何内容。 cvtColor的结果存储在temp中。你的代码应该是这样的:
cvtColor( RImages[ idx ], temp , CV_BGR2HSV )
顺便说一句,您可以像这样优化您的代码:
vector<Mat> RImages;
vector<Mat> hImages;
for ( int idx = 0; idx < blocks_width * blocks_height; idx++ )
{
...
Mat temp;
RImages.push_back( imread( filename , 1 ) );
cvtColor( RImages[ idx ], temp , CV_BGR2HSV );
hImages.push_back(temp );
}