Java OpeCv 图像旋转

65 阅读1分钟

旋转需要配置旋转轴心Point(clone.width() / 2, (double) clone.height() / 2) 图像旋转的关键类为函数为:Imgproc.getRotationMatrix2D(轴心,旋转度数,旋转大小) 最后在Imgproc.warpAffine进行旋转

import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.Point;
import org.opencv.highgui.HighGui;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;

import java.awt.*;

public class WrapofflineRotate {

    static {
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
    }

    public static void main(String[] args) {

        // 读取图像-->旋转
        Mat imread = Imgcodecs.imread(
                "D:\Users\WorkWaiting\HelloOpenCv\res" +
                        "\factory_ic_mould_assembling.png");

        HighGui.imshow("factory_ic_mould_assembling",imread);
        HighGui.waitKey(0);

        //克隆一张图像
        Mat clone = imread.clone();
        // 旋转轴心
        Point point = new Point(clone.width() / 2, (double) clone.height() / 2);

        //配置旋转参数进行旋转
        Mat rotationMatrix2D = Imgproc.getRotationMatrix2D(point, 33, 1);
        Imgproc.warpAffine(imread, clone, rotationMatrix2D, clone.size(), Imgproc.INTER_NEAREST);

        //显示图像 按键盘Enter键进行切换旋转图像
        HighGui.imshow("factory_ic_mould_assembling", clone);


        //退出图像显示程序
        HighGui.waitKey(0);

        System.out.println("OK-->END Windows");
    }
}