c++ - 用 ones 初始化 3 channel Mat

标签 c++ opencv

我正在尝试用 ones 初始化一个 3 channel 垫,但是

Mat img_l=Mat::ones(2048,3072,CV_8UC3)
cout << (uint)img_l.at<Vec3b>(4,4)[0] << (uint)img_l.at<Vec3b>(4,4)[1] << (uint)img_l.at<Vec3b>(4,4)[2] << endl;

返回 1 0 0

如何初始化 G、B 和 R channel ?

最佳答案

只需将标量分配给矩阵,如下所示:

img_l=Scalar::all(1);

img_l=Scalar(1,1,1,1);

关于c++ - 用 ones 初始化 3 channel Mat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25917681/

相关文章:

c++ - 在 Qt 中可视化来自 PMD Camboard Nano 的流

c++ - Uniform Circular LBP人脸识别实现

java - 在 Java 应用程序中使用的 OpenCV JNI 库中的内存使用跟踪工具

c++ - 在 .cpp 和 .h 中包含 header 的区别

c++ - 使用 C/C++ 命名进程内部互斥体?

c++ - MinGW 不将从模板类继承为模板

python - 在用于图像分割的全卷积神经网络中将Python中的索引值转换为(R,G,B)值(颜色图)

c# - 获取错误 CS0031 : Constant value `65535' cannot be converted to a `short'

opencv - 如何在不丢失精度的情况下将 CV_32F 类型的 CV::Mat 保存到文件中?

python - 使用OpenCV和Zbar在Python中检测QR码的大小