cv :: Mat灰色转换

时间:2012-09-06 11:14:59

标签: c++ ios opencv computer-vision

我有从RGB图像创建的cv :: Mat,每个组件8位,4个通道(CV_8UC4)。我想将它转换成灰色的Mat,然后将我的灰色Mat转换成4通道Mat。我怎样才能做到这一点?下面的代码将我带到EXC_BAD_ACCESS:

void myMethod(const Mat& mat) {
      cv::Mat gray;
      cv::cvtColor(mat, gray, CV_RGB2GRAY);
      gray.copyTo(mat);
}

1 个答案:

答案 0 :(得分:3)

如果要更改数据,则不能使用const引用:

void toGrayscale(cv::Mat& mat)
{
     cv::Mat gray;
     cv::cvtColor(mat, gray, CV_RGB2GRAY);
     cv::cvtColor(gray, mat, CV_GRAY2RGB);
}

编辑:感谢Christian Rau的意见,纠正了答案。