C#+OpenCV基础(三)_修改高宽剪切拼接缩放

1、获取/设置图片高宽

 /// <summary>
 /// 获取图片宽高
 /// </summary>
 /// <param name="mat">图片</param>
 /// <returns></returns>
 public static (int w, int h) GetSize(Mat mat)
 {
     //Debug.WriteLine("宽:" + srcMat.Size().Width+",高:"+ srcMat.Size().Height);
     //Debug.WriteLine("宽2:" + srcMat.Width + ",高2:" + srcMat.Height);
     //Debug.WriteLine("宽Rows:" + srcMat.Rows + ",高Cols:" + srcMat.Cols);

     (int w, int h) value;
     value.w = mat.Width;
     value.h = mat.Height;
     return value;
 }

 /// <summary>
 /// 调整图片宽高
 /// 缩放图片
 /// </summary>
 /// <param name="mat">图片</param>
 /// <returns></returns>
 public static Mat SetSize(Mat mat, int width, int height)
 {
     Mat result = new Mat();
     Cv2.Resize(mat, result, new OpenCvSharp.Size(width, height));
     return result;
 }

2、剪切

/// <summary>
/// 剪切图片
/// </summary>
/// <param name="mat">图片</param>
/// <param name="x">坐标x</param>
/// <param name="y">坐标y</param>
/// <param name="w">宽度</param>
/// <param name="h">高度</param>
/// <returns></returns>
public static Mat CutImage(Mat mat, int x, int y, int w, int h)
{
    // 设置区域
    Rect rect = new Rect(x, y, w, h);

    Mat dst = new Mat(mat, rect);  // 创建新图片
    return dst;
}

3、拼接

/// <summary>
/// 拼接图片
/// </summary>
/// <param name="mats">图片集</param>
/// <param name="isH">是否是纵向拼接;true=纵向拼接,false=横向拼接</param>
/// <returns></returns>
public static Mat Concat(Mat[] mats, bool isV)
{
    Mat dst = new Mat();

    if (isV)
    {
        Cv2.VConcat(mats, dst);
    }
    else
    {
        Cv2.HConcat(mats, dst);
    }
    return dst;
}

4、缩放(压缩)

/// <summary>
/// 压缩图片
/// </summary>
/// <param name="mat">图片</param>
/// <param name="multiple">高与宽的压缩倍数;默认是2倍</param>
/// <returns></returns>
public static Mat CompressTo(Mat mat, int multiple = 2)
{
    // 创建压缩图片
    Mat result = new Mat();
    //压缩
    Cv2.Resize(mat, result, new OpenCvSharp.Size(mat.Cols / multiple, mat.Rows / multiple));
    return result;
}
posted @   ꧁执笔小白꧂  阅读(223)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
历史上的今天:
2021-07-10 layui的table.render使用
2019-07-10 html根据下拉框选中的值修改背景颜色
点击右上角即可分享
微信分享提示