opencv - 垫子单 channel 元件访问

标签 opencv

使用三 channel Mat我们可以访问像

这样的元素
Mat draw(480, 480, CV_8UC3);
Vec3b pix(255,0,0);
draw.at<Vec3b>(i,j)=pix;

但是在单 channel Mat的情况下就像

 Mat draw(480, 480, CV_8UC1);

如何访问 Mat 元素。我已经尝试过类似的事情

 draw.at<float>(i,j)=255;

但结果错误。在上述情况下我错了吗?,任何帮助将不胜感激......

提前致谢..............

最佳答案

那个draw.at<float>(i,j)=255;应该是

draw.at<uchar>(i,j)=255;

您已将 Mat 声明为 8 位无符号字符类型,1 个 channel :

Mat draw(480, 480, CV_8UC1);

因此尝试将 4 字节数量写入单字节容器不仅会导致不正确的结果,而且可能会损坏其他数据结构。

以下内容将把 (255.0) 写入 4 个字节而不是 1:

draw.at<float>(i,j)=255;

关于opencv - 垫子单 channel 元件访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17064582/

相关文章:

python - 无法在openCV中显示图像显示窗口

python - 如何获得多个独立形状的组合凸包

c++ - adjustROI 会改变 cv::Mat 的 wholeSize 吗?

OpenCV:分割HSV图像并通过H channel 扫描

java - 使用 JavaFX 访问网络摄像头

android - OpenCV Android - 人像模式下的精致相机

python - 如何使用 Python 读取健康(游戏中)

python - opencv getImage() 错误

c++ - 具有可分离内核的2D模糊卷积

c++ - CvCvtColor(srcImage,destImage,CV_BGR2Lab)不工作