0
我有一个问题,我正确地使用我的矩阵类型从rgb到lms颜色空间与opencv的颜色转换。我发现的论文是here。我想要做的只是计算lms颜色三元组如下:RGB到LMS颜色空间转换与OpenCV
Mat actRGBVec = new Mat(1,3,Imgproc.COLOR_RGB2BGR);
Mat lmsResVec = new Mat(1,3,CvType.CV_64FC3);
lmsMat = new Mat(inputImg.rows(),inputImg.cols(),CvType.CV_64FC3);
// iterate through all pixels and multiply rgb values with the lms transformation matrix
try {
for (int x = 0; x < inputImg.rows(); x++) {
for (int y = 0; y < inputImg.cols(); y++) {
actRGBVal = inputImg.get(x, y);
// vector holding rgb info
actRGBVec.put(0, 0, actRGBVal);
Core.gemm(lmsTransformMat, actRGBVec, 1, null, 0, lmsResVec, 0);
lmsMat.put(x, y, lmsResVec.get(0, 0));
}
}
}
catch (Exception e) {
Log.d("ImageHandler","Error rgb to lms conversion! " + e.getMessage());
}
lmsMat是CV_64FC3类型。 inputImg的类型为Imgproc.COLOR_RGB2BGR。 lmsTransformMat的类型是CV_64FC1(因为它只包含标量值,这应该是正确的类型?)。
异常说:错误rgb到lms的转换! null 我在这里做错了什么?