OpenCV单个像素访问



我正在尝试学习OpenCV,并一直在通过各种教程和书籍。我遇到了一个奇怪的问题。我有一个3行,3列3通道矩阵在OpenCV我命名为测试。我用这样的虚拟数据填充它:

Mat test(3,3, CV_8UC3, Scalar(50,100,200));

当我打印出矩阵时,我得到:

[[[50, 100, 200], [50, 100, 200], [50, 100, 200]], 
  [[50, 100, 200], [50, 100, 200], [50, 100, 200]], 
  [[50, 100, 200], [50, 100, 200], [50, 100, 200]]]

到目前为止一切顺利。

我想访问第1行第1列的每个单独的RGB值。我在StackOverFlow的文档和其他答案中阅读,为单个像素访问做以下操作:
test.at (1,1) [0];

当我打印出这些值时,我得到:

test.at<Vec3b>(1,1)[0] = 2
test.at<Vec3b>(1,1)[1] = d
test.at<Vec3b>(1,1)[2] = /310

你知道我做错了什么吗?我在Mac上运行OpenCV 2.10。语言是c++。

谢谢!

打印出来的值是存储整数值的ASCII字符。

例如,如果你查找ASCII表,在这个url, http://simple.wikipedia.org/wiki/ASCII

您将看到小数50相当于字符'2',小数100等于'd'。

在c++中,如果您将值设置为int变量,然后将int转换为char,则会得到此结果。

相关内容

  • 没有找到相关文章

最新更新