c++ - OpenCV cvtColor HSV2RGB 断言

标签 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 色彩空间。

有人能帮忙吗?

最佳答案

这条线有问题

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/

相关文章:

c++ - glibc(或 libc6)库版本

c++ - 双数程序意外值

python - 在python中获取opencv UMat形状

opencv - opencv中边缘的特征检测

c++ - 用 forkpty 和 execvp fork bash 后,bash 不响应 SIGINT

c++ - log4cpp 给出 `unresolved external` 错误

c++ - 在 C++ 中调试参数损坏?

opencv - 如何从一个函数返回多个图像?

c++ - 无法从文件中读取视频,但可以从相机中读取

math - 绘制拟合线(OpenCV)