OpenCV 断言错误 mat.hpp 第 570 行
Posted
技术标签:
【中文标题】OpenCV 断言错误 mat.hpp 第 570 行【英文标题】:OpenCV Assertion Error mat.hpp line 570 【发布时间】:2015-12-26 07:25:51 【问题描述】:当我尝试实现此代码以调用所有稍后使用的颜色时.. 它显示错误.. 有谁知道此代码有什么问题.. tq
// Extracting pure colors to use in demo
const int ncolors = 16;
std::vector<Scalar> colors;
for (int n = 0; n < ncolors; ++n)
Mat color(Size(1, 1), CV_32FC3);
color.at<float>(0) = (360) / ncolors * n;
color.at<float>(1) = 1.0;
color.at<float>(2) = 0.7;
cvtColor(color, color, CV_HSV2BGR);
color = color * 255;
colors.push_back(Scalar(color.at<float>(0), color.at<float>(1), color.at<float>(2)));
【问题讨论】:
【参考方案1】:矩阵color
是一个 1x1 矩阵,有 3 个通道,所以你应该访问为:
color.at<Vec3f>(0)[0] = 360.f / ncolors * n;
color.at<Vec3f>(0)[1] = 1.f;
color.at<Vec3f>(0)[2] = 0.7f;
您应该在构造标量时以类似方式访问它。
【讨论】:
以上是关于OpenCV 断言错误 mat.hpp 第 570 行的主要内容,如果未能解决你的问题,请参考以下文章