cv::Mat的翻转和转置

cv::Mat的本质是矩阵。openCV对Mat类型的处理,实际上也是矩阵操作。这里给个小例子,介绍转置操作和翻转操作。这段代码受了

http://www.tuicool.com/articles/emIr2u

的启发。

原图:

cv::Mat的翻转和转置_第1张图片

Mat m1 = imread("E:\\lena.jpg");
	Mat m2;
	Mat m3;
	flip(m1, m2, 1);
	transpose(m1, m3);

	imwrite("E:\\flip.jpg", m2);
	imwrite("E:\\transpose.jpg", m3);

翻转操作的结果:

cv::Mat的翻转和转置_第2张图片

转置的结果:

cv::Mat的翻转和转置_第3张图片

注意,转置的结果不同于旋转。比方说矩阵:

cv::Mat的翻转和转置_第4张图片

转置后的结果是

cv::Mat的翻转和转置_第5张图片

若要实现M1的90度旋转,还要让M2绕第二列翻转。

同理,要旋转一个Mat格式的图像,也要经过Transpose和 flip两道操作才能完成。


你可能感兴趣的:(cv::Mat,opencv)