OpenCVSharp 4.5 仿射变换

用OpenCVSharp4.5 跑一遍OpenCV官方教程

原教程链接:https://docs.opencv.org/4.5.0/d4/d61/tutorial_warp_affine.html

核心函数:warpAffinegetRotationMatrix2D 

using System;
using OpenCvSharp;

namespace ConsoleApp1
{
    class tutorial18 : ITutorial
    {
        public void Run()
        {

            using (Mat src = new Mat("I:\\csharp\\images\\lena.png", ImreadModes.Color))
            {
                Point2f[] srcTri = new Point2f[3];
                srcTri[0] = new Point2f(0, 0);
                srcTri[1] = new Point2f( (float)(src.Cols - 1), 0);
                srcTri[2] = new Point2f(0, (float)(src.Rows - 1));

                Point2f[] dstTri = new Point2f[3];
                dstTri[0] = new Point2f(0, (float)src.Rows * 0.33f);
                dstTri[1] = new Point2f((float)src.Cols * 0.85f, (float)src.Rows * 0.25f);
                dstTri[2] = new Point2f((float)src.Cols * 0.15f, (float)src.Rows * 0.7f);
                Mat warp_mat = Cv2.GetAffineTransform(srcTri, dstTri);
                Mat warp_dst = Mat.Zeros(src.Rows, src.Cols, src.Type());
                Cv2.WarpAffine(src, warp_dst, warp_mat, warp_dst.Size());
                Point center = new Point(warp_dst.Cols / 2, warp_dst.Rows / 2);
                double angle = -50.0;
                double scale = 0.6;
                Mat rot_mat = Cv2.GetRotationMatrix2D(center, angle, scale);
                Mat warp_rotate_dst = new Mat();
                Cv2.WarpAffine(warp_dst, warp_rotate_dst, rot_mat, warp_dst.Size());
                Cv2.ImShow("Source image", src);
                Cv2.ImShow("Warp", warp_dst);
                Cv2.ImShow("Warp + Rotate", warp_rotate_dst);
                Cv2.WaitKey();
            }
        }
    }
}

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值