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;
}
本文来自博客园,作者:꧁执笔小白꧂,转载请注明原文链接:https://www.cnblogs.com/qq2806933146xiaobai/p/18294347