首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >opencv中的zeros函数不起作用

opencv中的zeros函数不起作用
EN

Stack Overflow用户
提问于 2013-07-15 03:48:29
回答 1查看 271关注 0票数 1

我一直在尝试学习和使用opencv矩阵,但我被困在了一个点上。

这是我的代码,

代码语言:javascript
复制
Mat my_img, im_rgb;

im_rgb = imread(imageName, 1);
my_img.create(im_rgb.size(), im_rgb.type()); 

cout << (int)my_img.at<Vec3b>(20,20).val[0] << " first\n";

my_img.zeros(im_rgb.size(), im_rgb.type()); 
cout << (int)my_img.at<Vec3b>(20,20).val[0] << " second \n" ;

my_img.at<Vec3b>(20,20).val[0] = 0;
cout << (int)my_img.at<Vec3b>(20,20).val[0] << third;

我读取图像并创建了一个与im_rgb, CV_8UC3类型相同的Mat, my_img

输出为

代码语言:javascript
复制
205 first
205 second
0 third

在对输出进行了多次尝试之后,我的解释是,当在矩阵中创建的my_img充满205,而当我调用zeros函数时,它什么也不做。但是我可以改变矩阵元素的值。

当我在matlab中尝试这一点时,它用0填充矩阵。

我在想,我到底做错了什么?谢谢,

EN

Stack Overflow用户

回答已采纳

发布于 2013-07-15 04:37:15

如果我没记错的话,zeroscv::Mat的一个静态函数,所以它不会影响对象。它的用法如下:

代码语言:javascript
复制
my_img = cv::Mat::zeros(im_rgb.size(), im_rgb.type());
票数 3
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17643072

复制
相关文章

相似问题

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