合集-C#+机器视觉OpenCV
摘要:一、学习笔记背景 该笔记主要是对书籍《OpenCV4.5 计算机视觉开发实战 基于VC++》学习成果的记录,实现了该书中的大部分基础知识代码;除此之外又记录一些有趣博客的复刻代码。 本笔记不会讲解基础知识与图像处理算法的发展史,推荐购买一本实体书与本笔记一起观看。 二、目录 1、基础 C#+Open
阅读全文
摘要:1、加载 (1)加载彩图 /// <summary> /// 加载图片 /// ImreadModes.AnyColor:任意图像 /// ImreadModes.Color:三通道 /// ImreadModes.Grayscale:灰度图 /// </summary> /// <param na
阅读全文
摘要:1、灰度化 /// <summary> /// BGR图片转为灰度图片(只显示亮度不显示色彩) /// </summary> /// <param name="mat">图片</param> public static Mat BGR2GRAY(Mat mat) { Mat gray = new M
阅读全文
摘要:1、获取/设置图片高宽 /// <summary> /// 获取图片宽高 /// </summary> /// <param name="mat">图片</param> /// <returns></returns> public static (int w, int h) GetSize(Mat
阅读全文
摘要:1、旋转 /// <summary> /// 旋转图片 /// </summary> /// <param name="mat">图片</param> /// <param name="rotate">旋转方向</param> /// <returns></returns> public stati
阅读全文
摘要:/// <summary> /// 添加边框 /// </summary> /// <param name="srcMat">图片</param> /// <param name="top">顶部</param> /// <param name="bottom">底部</param> /// <pa
阅读全文
摘要:一、知识 卷积核:用来对图像矩阵进行平滑的矩阵,也称为过滤器。 锚点:卷积核和图像矩阵重叠,进行内积运算,运算后锚点位置的像素点会被计算值代替。默认其中心点为锚点。 步长:卷积核沿着图像矩阵移动的方向。 内积:卷积核和图像矩阵对应像素点相乘,然后相加得到一个总和。 二、实现 1、均值滤波 /// <
阅读全文
摘要:1、高斯金字塔(向下取样;大->小) /// <summary> /// 高斯金字塔(向下取样;大->小) /// 分辨率变小而模糊 /// </summary> /// <param name="mat">图片</param> /// <param name="dstSize">输出图像的大小</
阅读全文
摘要:1、获取图片亮度 /// <summary> /// 获取图片的亮度(取HSV中V通道的均值) /// </summary> /// <param name="mat">图片</param> /// <returns></returns> public static Scalar GetVChann
阅读全文
摘要:1、图片拆分通道图层 /// <summary> /// 图片拆分通道图层 /// </summary> /// <param name="mat">图片</param> /// <returns></returns> public static Mat[] SplitChannel(Mat mat
阅读全文
摘要:1、灰度图的线性变换 /// <summary> /// 灰度图的线性变换 /// OpenCVHelper.GRAY_LinearTransform(srcMat, 1.2, 40) /// </summary> /// <param name="grayMat">灰度图片</param> ///
阅读全文
摘要:1、位运算 Cv2.BitwiseAnd; // 与运算 Cv2.BitwiseOr; // 或运算 Cv2.BitwiseXor; // 异或运算 Cv2.BitwiseNot; // 取反运算 2、加减乘除 Cv2.Add; // 加运算 Cv2.Subtract; // 减运算 Cv2.Mul
阅读全文
摘要:1、膨胀 /// <summary> /// 膨胀 /// </summary> /// <param name="mat">图片</param> /// <param name="element">用于膨胀的结构内核;如果element=new Mat(),则使用3x3矩形结构化元素</param
阅读全文
摘要:1、白平衡矫正 -灰度幂律变换(伽马变换) /// <summary> /// 白平衡矫正 -灰度幂律变换(伽马变换) /// 对过曝和过暗的图片进行矫正 /// </summary> /// <param name="srcMat">图片</param> /// <returns>返回黑白图片</
阅读全文
摘要:1、绘制直线 /// <summary> /// 绘制直线 /// </summary> /// <param name="mat">图片</param> /// <param name="startPoint">线段的第一个点</param> /// <param name="endPoint">
阅读全文
摘要:1、GrabCut人为干预分割前景 /// <summary> /// 检测边缘并标注(GrabCut人为干预分割前景;速度比分水岭算法慢,结果准确性高) /// </summary> /// <param name="img">图片</param> /// <param name="rect">前
阅读全文
摘要:一、简易图像 1、识别直线(霍夫直线变换) /// <summary> /// 检测直线并标注(霍夫直线变换) /// 需要优化 /// </summary> /// <param name="mat">图片</param> /// <param name="resultMat">结果图片</par
阅读全文
摘要:1、SSIM算法计算相似度 /// <summary> /// 两张图片的相似度(SSIM算法) /// </summary> /// <param name="mat1">图片1</param> /// <param name="mat2">图片2</param> /// <returns></r
阅读全文
摘要:MatchTemplate匹配图片:用于匹配光照角度未变化的图片。 SIFT特征点匹配图片:尺度不变特征变换(Scale-invariant feature transform,SIFT)。用于匹配光照角度未变化的图片,可在图像中检测出关键点,是一种局部特征描述子。 SURF特征点匹配图片:SURF
阅读全文
摘要:效果排名:Lbp < Haar < CNN 1、Lbp /// <summary> /// Lbp人脸识别 /// </summary> public static Mat FaceDetection_Lbp(Mat mat) { var lbpCascade = new CascadeClassi
阅读全文