镜像

水平镜像

#include <opencv2/opencv.hpp>
using namespace cv;

int main()
{
    /*载入图像并显示*/
    Mat img = imread("C:\Users\Yang\Desktop\0.bmp", 0);
    Mat newImg = Mat::zeros(img.rows, img.cols, CV_8UC1);

    /*镜像*/
    for (int i = 0; i < img.rows; i++)
    {
       for (int j = 0; j < img.cols; j++)
        {
            newImg.at<uchar>(i, j) = img.at<uchar>(i, img.cols - j-1);
        }
    }

    imshow("效果图", newImg);
    waitKey(0);
    imwrite("C:\Users\Yang\Desktop\1.bmp", newImg);
    return 0;
}

垂直镜像     原理同上

#include <opencv2/opencv.hpp>
using namespace cv;

int main()
{
    /*载入图像并显示*/
    Mat img = imread("C:\Users\Yang\Desktop\0.bmp", 0);
    Mat newImg = Mat::zeros(img.rows, img.cols, CV_8UC1);

    /*镜像*/
    for (int i = 0; i < img.rows; i++)
    {
        for (int j = 0; j < img.cols; j++)
        {
            newImg.at<uchar>(i, j) = img.at<uchar>(img.rows-i-1, j);
        }
    }

    imshow("效果图", newImg);
    waitKey(0);
    imwrite("C:\Users\Yang\Desktop\1.bmp", newImg);

    return 0;

}
原文地址:https://www.cnblogs.com/lovebay/p/12852316.html