OpenCV:在矩阵中,如何为一行中的所有元素分配相同的值
Posted
技术标签:
【中文标题】OpenCV:在矩阵中,如何为一行中的所有元素分配相同的值【英文标题】:OpenCV: In a matrix, how to assign same value to all elements in a row 【发布时间】:2015-07-08 09:11:53 【问题描述】:对于 Matlab 中的以下表达式,OpenCV 等价物是什么?
A(2,:)=3;
据我所知,我可以在 OpenCV 中这样做:
Mat Arepeated;
repeat(value, 1, A.cols, Arepeated);
Arepeated.copyTo(A.row(1));
这里value
是一个值为 3 的 1x1 Mat。有没有比我上面写的更有效的方法?
This post 建议使用 std::fill
,但 examples 仅显示其用于矢量对象的用法。我不确定它是否也可以应用于 Mat 对象,或者是否有任何其他功能。有人可以指导一下吗?
【问题讨论】:
【参考方案1】:怎么样:
A.row(1).setTo(Scalar(value));
【讨论】:
如果我想将多行设置为零,我必须使用循环还是有更短的方法? @Ruchir 你可以使用:A.rowRange(4,8).setTo(Scalar(value))
是的,谢谢。但是,我只是意识到在 openCV 中,endrow 索引是排他的,而不是 Matlab。所以,(4,8) 只表示 4,5,6,7,而不是 8。以上是关于OpenCV:在矩阵中,如何为一行中的所有元素分配相同的值的主要内容,如果未能解决你的问题,请参考以下文章
在 Flutter 中,如何为 Card 中的子元素动态分配高度?