【问题标题】:OpenCV: In a matrix, how to assign same value to all elements in a rowOpenCV:在矩阵中,如何为一行中的所有元素分配相同的值
【发布时间】: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 对象,或者是否有任何其他功能。有人可以指导一下吗?

【问题讨论】:

    标签: c++ matlab opencv


    【解决方案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。
    猜你喜欢
    • 2014-03-21
    • 1970-01-01
    • 1970-01-01
    • 2012-02-27
    • 2018-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多