我调用函数 rgbTOgray 并尝试使用 for 循环将“图像矢量”(这是彩色图像的矢量)中的每个图像复制到临时 cv::Mat 中。并且,使用 cvtColor 将其转换为灰度。这是代码:
std::vector<cv::Mat> rgbTOgray(std::vector<cv::Mat>& rgb_image)
{
cv::Mat temp_gray, temp_rgb;
std::vector<cv::Mat> gray_image;
std::vector<cv::Mat>::iterator itr;
for ( itr = rgb_image.begin() ; itr < rgb_image.end() ; itr++)
{
temp_rgb = *itr;
cvtColor(temp_rgb, temp_gray, CV_RGB2GRAY);
gray_image.push_back(temp_gray);
}
return gray_image;
}
编辑:我正在返回灰度图像“gray_image”的矢量。但这似乎不起作用。
EDIT_2: OpenCV 错误:在 cvtColor 中断言失败 (scn == 3 || scn == 4)
有人可以帮我吗?我是新手,正在学习所有这些东西。谢谢!