OpenCV cvtColor HSV2RGB断言

时间:2016-04-15 17:39:28

标签: c++ opencv

我无法理解为什么以下代码会引发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色彩空间。

有人可以帮忙吗?

1 个答案:

答案 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]