在没有循环的情况下在OpenCV C ++中使用Matlab冒号运算符

时间:2014-02-06 15:03:34

标签: c++ matlab opencv

在c ++中是否有任何解决方案我可以在Matlab中使用冒号。

在Matlab中

image(i,j-one_count:j-1)=0;

由于我使用Mat Structure Opencv,因此它也是矢量结构。

如何在不使用循环的情况下在C ++中编写相同的东西?

在另一个问题中,整个代码都是Matlab和C ++

Attempt to implementation Running Length Smoothing Algorithm in C++

2 个答案:

答案 0 :(得分:1)

考虑到您使用的是cv::Mat。您考虑过使用colRange(int startcol, int endcol)吗?

image.colRange( j-one_count - 1, j - 2 ) = 0;

答案 1 :(得分:0)

使用范围功能 您可以按如下方式使用它

image(Range(i,i+1),Range(j-one_count:j-1)) = Mat::zeros(1,j-one_count:j-1,image.type());

Range(a,b) can be used to get row/column from [a,b). ie from row/column a to row/column b-1

此外,您不能直接指定值0。您可以指定相同大小的零矩阵作为从图像中获取的子矩阵。