C#+OpenCV基础(四)_旋转翻转透视
1.C#+OpenCV学习笔记(目录)-目录2.C#+OpenCV基础(一)_加载创建复制保存图片3.C#+OpenCV基础(二)_灰度化二值化4.C#+OpenCV基础(三)_修改高宽剪切拼接缩放
5.C#+OpenCV基础(四)_旋转翻转透视
6.C#+OpenCV基础(五)_添加边框7.C#+OpenCV基础(六)_均值中值高斯双边滤波8.C#+OpenCV基础(七)_图像金字塔9.C#+OpenCV基础(八)_获取修改图片亮度10.C#+OpenCV基础(九)_拆分合并图层11.C#+OpenCV基础(十)_灰度变化与直方图12.C#+OpenCV基础(十一)_图片基础计算13.C#+OpenCV基础(十二)_图片形态学计算14.C#+OpenCV基础(十三)_图片白平衡矫正15.C#+OpenCV基础(十四)_绘制像素、图形、文字16.C#+OpenCV基础(十五)_图像的基础分割方法17.C#+OpenCV基础(十六)_识别圆、直线、斑点、轮廓18.C#+OpenCV基础(十七)_计算图片相似度19.C#+OpenCV基础(十八)_模版匹配20.C#+OpenCV进阶(一)_人体识别21.C#+OpenCV进阶(二)_文字识别22.C#+OpenCV进阶(三)_操作摄像头与视频文件23.C#+OpenCV进阶(四)_录屏24.C#+OpenCV实战(一)_图片简易角度矫正25.C#+OpenCV实战(二)_春天转秋天26.C#+OpenCV实战(三)_玉米粒计数27.C#+OpenCV实战(四)_特定钢板缺陷检测1、旋转
/// <summary>
/// 旋转图片
/// </summary>
/// <param name="mat">图片</param>
/// <param name="rotate">旋转方向</param>
/// <returns></returns>
public static Mat Rotate(Mat mat, RotateFlags rotate)
{
Mat result = new Mat();
Cv2.Rotate(mat, result, rotate);
return result;
}
/// <summary>
/// 任意角度旋转图片
/// </summary>
/// <param name="mat">图片</param>
/// <param name="input">旋转矩阵;</param>
/// <param name="dsize">输出图片大小</param>
/// <param name="flags">像素插值方式</param>
/// <param name="borderMode">背景填充默认为常量</param>
/// <param name="borderValue">填充颜色默认为黑色</param>
/// <returns></returns>
public static Mat WarpAffine(Mat mat, InputArray input, Size dsize,
InterpolationFlags flags = InterpolationFlags.Linear, BorderTypes borderMode = BorderTypes.Constant, Scalar? borderValue = null)
{
Mat dst = new Mat();
//Mat input = Cv2.GetRotationMatrix2D(new Point2f(mat.Cols/2f,mat.Rows/2f),45,0.6);
Cv2.WarpAffine(mat, dst, input, dsize, flags, borderMode, borderValue); // dsize=mat.Size()
return dst;
}
2、翻转
/// <summary>
/// 翻转图片
/// </summary>
/// <param name="mat">图片</param>
/// <param name="flipCode">绕X/Y轴翻转</param>
/// <returns></returns>
public static Mat Flip(Mat mat, FlipMode flipCode)
{
Mat result = new Mat();
Cv2.Flip(mat, result, flipCode);
return result;
}
3、透视
/// <summary>
/// 透视图片
/// </summary>
/// <param name="mat">图片</param>
/// <param name="srcPoints">源图像中的 三角形顶点坐标 Point2f[] srcPoints = new Point2f[]{ new Point2f(0,0), new Point2f(mat.Cols,0), new Point2f(0,mat.Rows)};</param>
/// <param name="dstPoints">目标图像中的 三角形顶点坐标 Point2f[] dstPoints = new Point2f[]{ new Point2f(mat.Cols *0.00f,mat.Rows*0.33f), new Point2f(mat.Cols *0.85f,mat.Rows*0.25f), new Point2f(mat.Cols *0.15f,mat.Rows*0.70f)};</param>
/// <returns></returns>
public static Mat GetAffineTransform(Mat mat, Point2f[] srcPoints, Point2f[] dstPoints)
{
Mat dst = new Mat();
//Point2f[] srcPoints = new Point2f[]
//{
// new Point2f(0,0),
// new Point2f(mat.Cols,0),
// new Point2f(0,mat.Rows)
//};
//Point2f[] dstPoints = new Point2f[]
//{
// new Point2f(mat.Cols *0.00f,mat.Rows*0.33f),
// new Point2f(mat.Cols *0.85f,mat.Rows*0.25f),
// new Point2f(mat.Cols *0.15f,mat.Rows*0.70f)
//};
Mat input = Cv2.GetAffineTransform(srcPoints, dstPoints);
Cv2.WarpAffine(mat, dst, input, mat.Size()); // dsize=mat.Size()
return dst;
}
本文来自博客园,作者:꧁执笔小白꧂,转载请注明原文链接:https://www.cnblogs.com/qq2806933146xiaobai/p/18294361
合集:
C#+机器视觉OpenCV
分类:
C#+机器视觉OpenCV
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
2021-07-10 layui的table.render使用
2019-07-10 html根据下拉框选中的值修改背景颜色