当前位置:首页C# > 正文

c# OpenCV 图像裁剪、调整大小、旋转、透视

作者:野牛程序员:2023-12-18 18:03:14C#阅读 2436

使用C#和OpenCV库,可以执行图像裁剪、调整大小、旋转和透视变换等操作。以下是一个简单的示例代码,演示如何使用Emgu.CV库(一个OpenCV的.NET封装)来执行这些操作

using Emgu.CV;
using Emgu.CV.CvEnum;
using Emgu.CV.Structure;
using System;
using System.Drawing;

class Program
{
    static void Main()
    {
        // 读取图像
        Mat inputImage = CvInvoke.Imread("input.jpg");

        // 图像裁剪
        Rectangle roi = new Rectangle(100, 100, 300, 200);
        Mat croppedImage = new Mat(inputImage, roi);

        // 调整大小
        Size newSize = new Size(200, 150);
        Mat resizedImage = new Mat();
        CvInvoke.Resize(inputImage, resizedImage, newSize);

        // 旋转图像
        double angle = 30.0;
        Point center = new Point(inputImage.Width / 2, inputImage.Height / 2);
        Mat rotatedImage = new Mat();
        Mat rotationMatrix = CvInvoke.GetRotationMatrix2D(center, angle, 1.0);
        CvInvoke.WarpAffine(inputImage, rotatedImage, rotationMatrix, inputImage.Size);

        // 透视变换
        PointF[] srcPoints = new PointF[]
        {
            new PointF(100, 100),
            new PointF(300, 100),
            new PointF(300, 200),
            new PointF(100, 200)
        };
        PointF[] dstPoints = new PointF[]
        {
            new PointF(150, 100),
            new PointF(250, 100),
            new PointF(300, 200),
            new PointF(100, 200)
        };
        Mat perspectiveMatrix = CvInvoke.GetPerspectiveTransform(srcPoints, dstPoints);
        Mat perspectiveImage = new Mat();
        CvInvoke.WarpPerspective(inputImage, perspectiveImage, perspectiveMatrix, inputImage.Size);

        // 在这里可以使用裁剪、调整大小、旋转、透视的结果进行其他操作

        // 保存结果
        CvInvoke.Imwrite("cropped_image.jpg", croppedImage);
        CvInvoke.Imwrite("resized_image.jpg", resizedImage);
        CvInvoke.Imwrite("rotated_image.jpg", rotatedImage);
        CvInvoke.Imwrite("perspective_image.jpg", perspectiveImage);
    }
}


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击