在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++
答案 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。您可以指定相同大小的零矩阵作为从图像中获取的子矩阵。