我无法理解为什么以下代码会引发SIGABRT。
cv::Mat someColor(1,1,CV_8UC3);
someColor.at<cv::Scalar>(0,0) = cv::Scalar(100, 100, 100);
cv::cvtColor(someColor, someColor, cv::COLOR_HSV2RGB);
提供的调试信息非常少。它在cvtColor调用上断言。 它应该像创建1像素HSV矩阵一样简单,并将其转换为RGB色彩空间。
有人可以帮忙吗?
答案 0 :(得分:1)
此行存在问题
someColor.at<cv::Scalar>(0,0) = cv::Scalar(100, 100, 100);
你可以像
那样做cv::Mat someColor(1,1,CV_8UC3,cv::Scalar(100, 100, 100));
cv::cvtColor(someColor, someColor, cv::COLOR_HSV2RGB);
cout << someColor;
输出:[61,87,100]