fanfuhan OpenCV 教學013 ~ OpenCV的-013圖片翻轉(顛倒/轉向/旋轉)

fanfuhan OpenCV 教學013 ~ OpenCV的-013圖片翻轉(顛倒/轉向/旋轉)

fanfuhan OpenCV 教學013 ~ OpenCV的-013圖片翻轉(顛倒/轉向/旋轉)

資料來源: https://fanfuhan.github.io/

https://fanfuhan.github.io/2019/03/27/opencv-013/

GITHUB:https://github.com/jash-git/fanfuhan_ML_OpenCV


X軸翻轉,flipcode = 0
Y軸翻轉, flipcode = 1

XY軸翻轉, flipcode = -1


C++

#include <iostream>
#include <opencv2/opencv.hpp>

using namespace std;
using namespace cv;

/*
 * 图像翻转
 */
int main() {
    Mat src = imread("../images/test.png");
    if (src.empty()) {
        cout << "could not load image.." << endl;
    }
    imshow("input", src);

    Mat dst;
    // X轴 倒影
    flip(src, dst, 0);
    imshow("x_flip", dst);

    // Y轴 镜像
    flip(src, dst, 1);
    imshow("y_flip", dst);

    // XY轴 对角
    flip(src, dst, -1);
    imshow("xy_flip", dst);

    waitKey(0);
    return 0;
}

Python

import cv2 as cv
import numpy as np

src = cv.imread("D:/vcprojects/images/test.png")
cv.namedWindow("input", cv.WINDOW_AUTOSIZE)
cv.imshow("input", src)

# X Flip 倒影
dst1 = cv.flip(src, 0);
cv.imshow("x-flip", dst1);

# Y Flip 镜像
dst2 = cv.flip(src, 1);
cv.imshow("y-flip", dst2);

# XY Flip 对角
dst3 = cv.flip(src, -1);
cv.imshow("xy-flip", dst3);

# custom y-flip
h, w, ch = src.shape
dst = np.zeros(src.shape, src.dtype)
for row in range(h):
    for col in range(w):
        b, g, r = src[row, col]
        dst[row, w - col - 1] = [b, g, r]
cv.imshow("custom-y-flip", dst)

cv.waitKey(0)
cv.destroyAllWindows()

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *