算子:transpose(src, src);
transpose()可以实现像素下标的x和y轴坐标进行对调:dst(i,j)=src(j,i),接口形式
transpose(
InputArray src, // 输入图像
OutputArray dst, // 输出
)
算子:flip(src, src, 1);
flip()函数可以实现对图像的水平翻转、垂直翻转和双向翻转
void flip(
InputArray src, // 输入图像
OutputArray dst, // 输出
int flipCode = 0 // >0: 沿y-轴翻转, 0: 沿x-轴翻转, <0: x、y轴同时翻转
);
flip(img1,0)#水平轴翻转(上下翻转)
flip(img1,1)#垂直轴翻转(左右翻转)
flip(img1,-1)#双向翻转
#if 1 // 旋转角度
Mat rotate_img(Mat src, int idx) {
//旋转90度
if (idx == 1) {
transpose(src, src);
flip(src, src, 1);
return src;
}
//旋转180度
else if (idx == 2) {
flip(src, src, 0);
flip(src, src, 1);
return src;
}
//旋转270度
else if (idx == 3) {
transpose(src, src);
flip(src, src, 0);
return src;
}
else {
return src;
}
}
int main() {
Mat src = imread("C:\\Users\\19473\\Desktop\\opencv_images\\33.jpg");
if (!src.data)
{
printf("could not load image....\n");
}
imshow("原图", src);
Mat m1= rotate_img(src,1); //90度
imshow("90度", m1);
Mat m2 = rotate_img(src, 2); //180度
imshow("180度", m2);
Mat m3 = rotate_img(src, 3); //270度
imshow("270度", m3);
waitKey(0);
return 0;
}
#endif