如何将像素设置为cv::Mat对象中的值
How to set a pixel to a value in a cv::Mat object?
我需要将Mat对象中的单个像素设置为某个值。
怎么做?
我正在使用openCV 2.1与visual studio 2010。
如果您正在处理uchar(CV_8U)矩阵:
mat.at<uchar>(row, column, channel) = val;
事实上,有4种方法可以在cv::Mat对象中获取/设置像素值,如OpenCV教程中所述。
在OpenCV教程中,@Régis提到的一个被称为On The Fly RA。这是最方便的,但也很耗时。
基于教程的实验,它还列出了所有4种方法的性能差异。
- 高效方式79.4717毫秒
- 迭代器83.7201毫秒
- 动态RA93.7878毫秒
- LUT功能32.5759毫秒
这里有一个例子:
vector<cv::Point3f> xyzBuffer;
cv::Mat xyzBuffMat = cv::Mat(307200, 1, CV_32FC3);
for (int i = 0; i < xyzBuffer.size(); i++) {
xyzBuffMat.at<cv::Vec3f>(i, 1, 0) = xyzBuffer[i].x;
xyzBuffMat.at<cv::Vec3f>(i, 1, 1) = xyzBuffer[i].y;
xyzBuffMat.at<cv::Vec3f>(i, 1, 2) = xyzBuffer[i].z;
}
相关文章:
- 如何将 cv::mat 对象从 python 模块传递到 c++ 函数并返回返回的 cv::mat 类型为对象?
- OpenCV Otsu的阈值:计算多个Mat对象的单个阈值
- 当我更改其他 Mat 对象时,垫子值会更改
- 无法在类中分配 cv::Mat 对象C++
- 将 Mat 对象C++传递给 Unity
- 为什么包装 setMouseCallback 会导致 Mat 对象为空
- OpenCV Mat对象复制速度更快
- 在cv::Mat对象上循环时,内存位置出现cv::异常
- OpenCV-C++中Mat对象的平均值
- OpenCV格式化程序类和Mat对象的cout产生链接器错误:体系结构x86_64的未定义符号:libopencv_co
- 如何从XML文件(OpenCV)将一定数量的行读入Mat对象
- 在 Java 客户端中创建 Mat 对象,使用 opencv 从C++服务器发送
- 通过套接字将 Mat 对象从 c++ 发送到 Java
- 为什么OpenCV Mat对象在嵌套for循环中指定了预期值后却不包含这些值
- 如何将像素设置为cv::Mat对象中的值
- 将Mat对象从androidjava传递到本机cpp部分
- I'm试图将像素数据转换为OpenCV Mat对象
- 如何在Android中从文件中读取OpenCV Mat对象
- Zeros Mat 对象具有除零以外的一些值
- 如何调整空的 cv::Mat 对象