【发布时间】:2023-03-30 14:50:01
【问题描述】:
我必须初始化一个多通道 OpenCV 矩阵。我正在创建这样的多通道矩阵
cv::Mat A(img.size(), CV_16SC(levels));
其中levels 是矩阵中的通道数,可以是 20 - 300 之间的任何值。我无法初始化这个矩阵,只能为零。
如果我像这样初始化矩阵
cv::Mat A(img.size(), CV_16SC(levels), Scalar(1000));
我收到一条错误消息,指出“cv::scalarToRawData 中的断言失败 (cn
OpenCV 中是否有其他可用的方法来初始化这个多通道矩阵,或者我必须手动初始化这些值?
编辑: 我已经完成了以下操作来初始化这个多通道矩阵。希望这对遇到相同问题的人有所帮助
for (int j = 0; j < img.rows; ++j) for (int i = 0; i < img.cols; ++i)
{
short *p = A.ptr<short>(j) +(short)i*levels;
for (int l = 0; l < levels; ++l)
{
p[l] = 1000;
}
}
【问题讨论】: