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 中的子元素动态分配高度?

如何为 Spark RDD 中的元素分配唯一的连续编号

如何为排除的元素生成带有零的向量组合矩阵?

MSVS 2010。如何为解决方案中的所有程序集分配相同的版本?

OPenCV中累加一个三通道矩阵中的所有元素:

如何为R中向量的特定元素分配名称