我有cv::Mat由RGB图像创建,每个组件8位,4通道(CV_8UC4)。我想将其转换为Graystyle Mat,然后将我的Graystyle Mat存回4通道Mat。我怎样才能做到这一点?以下代码将我带到EXC_BAD_ACCESS:
void myMethod(const Mat& mat) {
cv::Mat gray;
cv::cvtColor(mat, gray, CV_RGB2GRAY);
gray.copyTo(mat);
}
最佳答案
如果要更改数据,则不能使用const引用:
void toGrayscale(cv::Mat& mat)
{
cv::Mat gray;
cv::cvtColor(mat, gray, CV_RGB2GRAY);
cv::cvtColor(gray, mat, CV_GRAY2RGB);
}
编辑:由于Christian Rau的输入,更正了答案。
关于c++ - cv::Mat graystyle转换,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12298844/