随笔分类 - C#+机器视觉OpenCV
摘要:/// <summary> /// 板材瑕疵检测(凹凸坑、划痕、颜料瑕疵) /// </summary> /// <param name="mat">图片</param> /// <param name="resultMat">结果图片</param> /// <param name="minArc
阅读全文
摘要:/// <summary> /// 标注物体 -物体计数标注 /// 比如玉米粒计数并标注每个玉米 /// </summary> /// <param name="imgFile1"></param> /// <returns>物体位置;数量=contours.Length</returns> pu
阅读全文
摘要:/// <summary> /// 春天转化为秋天 /// </summary> /// <param name="mat">图片</param> /// <returns>结果图片</returns> public static Mat Cvt_Spring2Autumn(Mat mat) { M
阅读全文
摘要:/// <summary> /// 图像角度矫正-纸张 /// </summary> /// <param name="src">图片</param> /// <returns>结果图片</returns> /// <exception cref="Exception"></exception> p
阅读全文
摘要:/// <summary> /// 录屏线程 /// </summary> private static CancellationTokenSource cts; /// <summary> /// 录屏保存er /// </summary> private static VideoWriter _
阅读全文
摘要:1、VideoCapture的常用属性 #region 常用属性 //_ = videoCapture.CaptureType; // 获取视频的捕获类型(文件或摄像头) //_ = videoCapture.PosAviRatio; // 获取或设置视频的相对位置(0开头1结尾) //_ = vi
阅读全文
摘要:效果排名:Lbp < Haar < CNN 1、Lbp /// <summary> /// Lbp人脸识别 /// </summary> public static Mat FaceDetection_Lbp(Mat mat) { var lbpCascade = new CascadeClassi
阅读全文
摘要:MatchTemplate匹配图片:用于匹配光照角度未变化的图片。 SIFT特征点匹配图片:尺度不变特征变换(Scale-invariant feature transform,SIFT)。用于匹配光照角度未变化的图片,可在图像中检测出关键点,是一种局部特征描述子。 SURF特征点匹配图片:SURF
阅读全文
摘要:1、SSIM算法计算相似度 /// <summary> /// 两张图片的相似度(SSIM算法) /// </summary> /// <param name="mat1">图片1</param> /// <param name="mat2">图片2</param> /// <returns></r
阅读全文
摘要:一、简易图像 1、识别直线(霍夫直线变换) /// <summary> /// 检测直线并标注(霍夫直线变换) /// 需要优化 /// </summary> /// <param name="mat">图片</param> /// <param name="resultMat">结果图片</par
阅读全文
摘要:1、GrabCut人为干预分割前景 /// <summary> /// 检测边缘并标注(GrabCut人为干预分割前景;速度比分水岭算法慢,结果准确性高) /// </summary> /// <param name="img">图片</param> /// <param name="rect">前
阅读全文
摘要:1、绘制直线 /// <summary> /// 绘制直线 /// </summary> /// <param name="mat">图片</param> /// <param name="startPoint">线段的第一个点</param> /// <param name="endPoint">
阅读全文
摘要:1、膨胀 /// <summary> /// 膨胀 /// </summary> /// <param name="mat">图片</param> /// <param name="element">用于膨胀的结构内核;如果element=new Mat(),则使用3x3矩形结构化元素</param
阅读全文
摘要:1、位运算 Cv2.BitwiseAnd; // 与运算 Cv2.BitwiseOr; // 或运算 Cv2.BitwiseXor; // 异或运算 Cv2.BitwiseNot; // 取反运算 2、加减乘除 Cv2.Add; // 加运算 Cv2.Subtract; // 减运算 Cv2.Mul
阅读全文
摘要:1、灰度图的线性变换 /// <summary> /// 灰度图的线性变换 /// OpenCVHelper.GRAY_LinearTransform(srcMat, 1.2, 40) /// </summary> /// <param name="grayMat">灰度图片</param> ///
阅读全文
摘要:1、图片拆分通道图层 /// <summary> /// 图片拆分通道图层 /// </summary> /// <param name="mat">图片</param> /// <returns></returns> public static Mat[] SplitChannel(Mat mat
阅读全文
摘要:1、获取图片亮度 /// <summary> /// 获取图片的亮度(取HSV中V通道的均值) /// </summary> /// <param name="mat">图片</param> /// <returns></returns> public static Scalar GetVChann
阅读全文
摘要:1、高斯金字塔(向下取样;大->小) /// <summary> /// 高斯金字塔(向下取样;大->小) /// 分辨率变小而模糊 /// </summary> /// <param name="mat">图片</param> /// <param name="dstSize">输出图像的大小</
阅读全文
摘要:一、知识 卷积核:用来对图像矩阵进行平滑的矩阵,也称为过滤器。 锚点:卷积核和图像矩阵重叠,进行内积运算,运算后锚点位置的像素点会被计算值代替。默认其中心点为锚点。 步长:卷积核沿着图像矩阵移动的方向。 内积:卷积核和图像矩阵对应像素点相乘,然后相加得到一个总和。 二、实现 1、均值滤波 /// <
阅读全文