gpt4 book ai didi

c++ - 在循环中使用 cvtColor

转载 作者:搜寻专家 更新时间:2023-10-31 00:59:05 24 4
gpt4 key购买 nike

我正在尝试循环运行 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 ));
}

我收到错误信息:

invalid use of void expression in ctColor.

最佳答案

cvtColor( RImages[ idx ], temp , CV_BGR2HSV )

这个函数不返回任何东西。 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 ) );
cvtColor( RImages[ idx ], temp , CV_BGR2HSV );
hImages.push_back(temp );
}

顺便说一句,你可以像这样优化你的代码:

vector<Mat> RImages;
vector<Mat> hImages;
RImages.reserve(blocks_width * blocks_height);
hImages.reserve(blocks_width * blocks_height);
for ( int idx = 0; idx < blocks_width * blocks_height; idx++ )
{
...
Mat temp;
RImages.emplace_back(imread( filename , 1 ) );
cvtColor( RImages[ idx ], temp , CV_BGR2HSV );
hImages.emplace_back(temp );
}

关于c++ - 在循环中使用 cvtColor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34181406/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com