OpenCV的Mat类没有删除一行或一列的函数,有时候要自己写。下面代码实现删除矩阵中指定的一列。
void DeleteOneColOfMat(Mat& object,int num)
{
if (num<0 || num>=object.cols)
{
cout<<" 列标号不在矩阵正常范围内 "<<endl;
}
else
{
if (num == object.cols-1)
{
object = object.t();
object.pop_back();
object = object.t();
}
else
{
for (int i=num+1;i<object.cols;i++)
{
object.col(i-1) = object.col(i) + Scalar(0,0,0,0);
}
object = object.t();
object.pop_back();
object = object.t();
}
}
}