我无法理解为什么以下代码会引发 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 色彩空间。
有人能帮忙吗?
最佳答案
这条线有问题
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]
关于c++ - OpenCV cvtColor HSV2RGB 断言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36653581/