首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >OpenCV个人像素访问

OpenCV个人像素访问
EN

Stack Overflow用户
提问于 2015-06-10 02:19:52
回答 1查看 237关注 0票数 1

我正在努力学习OpenCV,并且一直在阅读各种教程和书籍。我遇到了一个奇怪的问题。我在OpenCV中有一个3行3列3通道矩阵,名为test.我在里面填充了一些虚拟数据,如下所示:

代码语言:javascript
运行
复制
Mat test(3,3, CV_8UC3, Scalar(50,100,200));

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

代码语言:javascript
运行
复制
[[[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上的文档和其他答案,以便为单个像素访问执行以下操作:

代码语言:javascript
运行
复制
 test.at(1,1)[0];

当我打印出我得到的值时:

代码语言:javascript
运行
复制
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++。

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-10 02:36:58

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

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

您将看到小数点50等于字符'2‘,小数点100等于'd’。

在C++中,如果将值设置为int变量,然后将该int转换为char,则会得到这个结果。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30746014

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档