OpenCV Mat结构的图片 旋转顺时针90度 180度 270度 逆时针90度

Mat matRotateClockWise90(Mat src)
{
	if (src.empty())
	{
		qDebug()<<"RorateMat src is empty!";
	}
	// 矩阵转置
	transpose(src, src);
	//0: 沿X轴翻转; >0: 沿Y轴翻转; <0: 沿X轴和Y轴翻转
	flip(src, src, 1);// 翻转模式,flipCode == 0垂直翻转(沿X轴翻转),flipCode>0水平翻转(沿Y轴翻转),flipCode<0水平垂直翻转(先沿X轴翻转,再沿Y轴翻转,等价于旋转180°)
	return src;
}
 
Mat matRotateClockWise180(Mat src)//顺时针180
{
	if (src.empty())
	{
		qDebug() << "RorateMat src is empty!";
	}
	
	//0: 沿X轴翻转; >0: 沿Y轴翻转; <0: 沿X轴和Y轴翻转
	flip(src, src, 0);// 翻转模式,flipCode == 0垂直翻转(沿X轴翻转),flipCode>0水平翻转(沿Y轴翻转),flipCode<0水平垂直翻转(先沿X轴翻转,再沿Y轴翻转,等价于旋转180°)
	flip(src, src, 1);
	return src;
	//transpose(src, src);// 矩阵转置
}
 
Mat matRotateClockWise270(Mat src)//顺时针270
{
	if (src.empty())
	{
		qDebug() << "RorateMat src is empty!";
	}
	// 矩阵转置
	//transpose(src, src);
	//0: 沿X轴翻转; >0: 沿Y轴翻转; <0: 沿X轴和Y轴翻转
	transpose(src, src);// 翻转模式,flipCode == 0垂直翻转(沿X轴翻转),flipCode>0水平翻转(沿Y轴翻转),flipCode<0水平垂直翻转(先沿X轴翻转,再沿Y轴翻转,等价于旋转180°)
	flip(src, src, 0);
	return src;
}
 
Mat myRotateAntiClockWise90(Mat src)//逆时针90°
{
	if (src.empty())
	{
	  qDebug()<<"mat is empty!";
	}
	transpose(src, src);
	flip(src, src, 0);
        return src;
}

 

你可能感兴趣的:(Linux编程)