
学习笔记
文章平均质量分 85
haixin-561
这个作者很懒,什么都没留下…
展开
-
OpenCvSharp 学习笔记3 --图像的修改和保存 以及掩膜操作
一 :图像的颜色空间转换在OpenCvSharp中颜色转换函数为:Cv2.CvtColor()参数:参数说明src:源图像,8位无符号,16位无符号或单精度浮点dst:输出图像,具有与src相同的大小和深度code:颜色空间转换代码:(ColorConversionCodes)枚举类型代码: static void Main(string[] a...原创 2019-05-24 22:28:48 · 13514 阅读 · 4 评论 -
OpenCvSharp 学习笔记16 --处理边缘(BorderTypes)
一,卷积的边缘问题先看一幅图:定义了一个(3∗3)(3 * 3)(3∗3)的卷积核在 源数据上进行卷积操作,源 上面的黄色部分为卷积核的开始位置,输出 上面的黄色部分为卷积核的结束部分,但是卷积核的中心点(锚点)覆盖不了源数据的四边的边缘值(如上图的锚点盲区,输出的红色部分)。总结:图像卷积的时候边界像素,不能被卷积操作,原因在于边界像素没有跟 kernel 完全重复或者没有被kerne...原创 2019-06-09 00:51:56 · 8658 阅读 · 0 评论 -
OpenCvSharp 学习笔记17 --Sobel算子
一,什么是Sobel算子Sobel算子是像素图像边缘检测中最重要的算子之一Sobel算子是一个离散微分算子。(discrete differentiation operator)用来计算图像灰度的近似值Sobel算子功能集合了高斯平滑和微分求导又被称为一阶微分算子,求导算子,在水平和垂直两个方向上求导,得到图像X方向和Y方向的梯度图像。官方图例:在图片中 红圈处,是头发和脸交汇处...原创 2019-06-09 20:55:09 · 3615 阅读 · 1 评论 -
OpenCvSharp 学习笔记11 --图像的膨胀与腐蚀:形态学操作
形态学操作包括:开操作 – Open闭操作 – Close形态学梯度 – Morphological Gradient顶帽 – Top hat黑帽 – Black hatAPICV2.MorphologyEx()参数描述InputArray src源图像OutputArray dst输出图像MorphTypes op形态操作类型Inp...原创 2019-06-03 20:09:44 · 3186 阅读 · 0 评论 -
OpenCvSharp 学习笔记19 --Canny边缘检测
一 ,Canny算法介绍:Canny : 边缘检测是由 J.CannyJ.CannyJ.Canny 在1986年 对简单的 LaplaceLaplaceLaplace 滤波器改进而成的边缘检测算法。在CannyCannyCanny 算法中,先在 X 和 Y 方向求得一阶导数,然后将它们组合成4个方向 的导数。其中方向导数是局部最大值的点是组成边缘的候选项。CannyCannyCanny算法最明显...原创 2019-06-15 12:37:09 · 5838 阅读 · 1 评论 -
OpenCvSharp 学习笔记23--直方图均衡化
一,什么是直方图(Histogram)原创 2019-06-19 22:02:51 · 2272 阅读 · 0 评论 -
OpenCvSharp 学习笔记20-- 霍夫变换 - 直线检测 (Hough Line transform)
一,霍夫变换介绍:霍夫(Hough) 变换是一种用于检测线,圆或者图像中其他简单形状的方法。使用霍夫直线检测,首先要对图像进项边缘检测预处理。平面空间到极坐标空间的转换图像空间中的直线可以用两个变量表示。例如:在笛卡尔坐标系中:参数:(m,b)在极坐标系统:参数:(r,θ)霍夫变换基本原理是:二进制图像中的任何点都可能属于某可能的线。如果为我们将每一条线参数化,比如斜率为a...原创 2019-06-15 20:48:35 · 9653 阅读 · 0 评论 -
OpenCvSharp 学习笔记21-- 霍夫变换 - 圆检测 (Hough Circle transform)
一,霍夫圆检测原理:与霍夫直线检测相似已知图像每一个像素对应极坐标坐标点为(x,y)(x,y)(x,y):x=a+Rcos(θ)x=a+R\cos(\theta)x=a+Rcos(θ)y=b+Rsin(θ)y=b+R\sin(\theta)y=b+Rsin(θ)a,ba,ba,b : 表示极坐标中的圆心 ,R : 表示半径 ,θ\thetaθ : 0° ~ 360°假设 ...原创 2019-06-16 19:45:20 · 10258 阅读 · 5 评论 -
OpenCvSharp 学习笔记22-- 霍夫变换 -像素重映射
一,像素重映射介绍:简单的说就是把输入图像中各像素按照一定的规则映射到另一张图像对应的位置上去,形成一张新的图像。g(x,y)g(x,y)g(x,y) 是重映射之后的图像,h(x,y)h(x,y)h(x,y) 是功能函数,f 是源图像。官方图例:假设我们有一个图像 III :h(x,y)=(I.cols−x,y) h(x,y)=(I.cols-x,y)h(x,y)=(I.cols−...原创 2019-06-16 22:56:25 · 1406 阅读 · 0 评论 -
OpenCvSharp 学习笔记18 --Laplacian算子
理论:官方图例:使用 Sobel 算子进行一阶求导,得到边缘像素是最大值(最高点)。这是基于:在边缘区域中,像素强度显示出“跳跃”或强度的高度变化。获得强度的一阶导数,我们观察到边缘的特征是最大值,如图中所示。Laplace算子是进行二阶求导,从图上观察到二阶导数为零!因此,我们也可以使用此标准来尝试检测图像中的边缘。但请注意,零不仅会出现在边缘(它们实际上可能出现在其他无意义的位置); ...原创 2019-06-14 20:04:57 · 2416 阅读 · 0 评论 -
OpenCvSharp 学习笔记24--直方图均计算
一,直方图概念深入:先看一副官方图片:假设有一副图片,以及像素值(上图左)。把像素值分为不同的等级,每个等级称为bin。如图把直方图分为16个等级。每个等级包含不同的像素值范围(像素值最大255)。然后统计每个bin中像素出现的频率。一副灰度图像的像素范围按照上面的划分如下:[ 0 ~ 255]=[0 ~ 15] ⋃\bigcup⋃ [16 ~ 31] ⋃\bigcup⋃ [ 32 ~ ...原创 2019-06-23 21:25:31 · 2125 阅读 · 1 评论 -
OpenCvSharp 学习笔记15 --卷积和常用算子
一,卷积?卷积的概念:卷积是图像处理中的一个操作,是 kernelkernelkernel (卷积核) 在图像上每个像素的操作kernelkernelkernel 本质上是一个固定大小的矩阵数组,其中心点被称为锚点(anchor point)。卷积是如何工作的:把 kernel 放到像素数组上,求锚点周围覆盖的像素乘积之和(包括锚点),用来替换锚点覆盖下像素点值,成为卷积处理。...原创 2019-06-08 12:03:11 · 2537 阅读 · 0 评论 -
OpenCvSharp 学习笔记10 --图像的膨胀与腐蚀
一:形态学操作(morphology operators)- 膨胀与腐蚀图像形态学操作 – 基于形状的一系列图像处理操作的集合,主要是基于集合理论基础上的形态学数学形态学基本的四个操作 : 腐蚀,膨胀,开,闭膨胀和腐蚀是图像处理中最常用的形态学操作手段膨胀原理:跟卷积操作相似,假设有图像A和结构元素B,结构元素B在A上面移动,其中B定义其中心点为锚点,计算B覆盖下A的最大像素值用来替...原创 2019-06-02 21:46:54 · 7084 阅读 · 3 评论 -
OpenCvSharp 学习笔记2 --Mat对象简单的像素操作
1: 输出一个Mat对象的像素自定义一个Mat 对象,然后输出像素值(像素值基本都在 0 – 255 之间 ,图像为三通道)代码 public static void F1() { Scalar s = new Scalar(0, 0, 255); //定义一个三通道颜色(红色) Mat m = new Mat(100, 100...原创 2019-05-22 20:42:56 · 10382 阅读 · 1 评论 -
OpenCvSharp 学习笔记4 --像素操作2
一:API:1: AT();获取像素值,4个重载,用法大同小异public T At<T>(int i0, int i1) where T : struct; //返回指定数组元素的值。public T At<T>(int i0) where T : struct;public T At<T>(params int[] idx) where T : ...原创 2019-05-27 14:08:50 · 12694 阅读 · 5 评论 -
OpenCvSharp 学习笔记5 --图像的混合操作
一 API介绍:Cv2.AddWeighted(): 图像基于权重比相加computes weighted sum of two arrays (dst = alphasrc1 + betasrc2 + gamma)参数说明InputArray src1:输入的源图像1double alpha:输入的源图像src1的alpha的值 (图像权重比)Inp...原创 2019-05-27 19:56:56 · 3081 阅读 · 0 评论 -
OpenCvSharp 学习笔记6 --图像亮度和对比度调整
一 理论:图像变换有两种操作:1:点操作 – 像素变换2:区域操作 --邻域像素操作,图像周围的像素操作调整图像亮度和对比度属于像素变换的点操作。g(x,y)=αf(x,y)+β g(x,y)=\alpha f(x,y) + \betag(x,y)=αf(x,y)+β其中系数α>0,β是增益值 其中 系数 \alpha \gt0 , \beta 是增益值...原创 2019-05-27 21:13:23 · 6739 阅读 · 6 评论 -
OpenCvSharp 学习笔记12 --形态学操作应用 ,提取线条和文字
一:方法原理图像形态学操作的时候,可以通过自定义的结构元素实现结构元素对输入图像一些对象敏感,另一些不敏感。这样就会是敏感的对象改变而不敏感的对象保留输出。通过使用两个最基本的形态学操作:膨胀和腐蚀。使用不同的结构元素实现对输入图像的操作,得到不同的结果。**膨胀:**输出的像素值是结构元素覆盖下输入图像的最大像素值。**腐蚀:**输出的像素值是结构元素覆盖下输入图像的最小像素值。二:示意...原创 2019-06-05 20:50:27 · 5245 阅读 · 1 评论 -
OpenCvSharp 学习笔记8 --图像的模糊处理1(滤波)
一: 图像模糊处理(滤波)作用: 在进项图像处理之前的预处理,降低图像的噪点,提高图像的平滑度。公式:数学卷积图像的各个像素点是一个离散的数据,然而数学卷积是一种线性连续的操作(求和动作),所以有叫做线性滤波。g(i,j)=∑k,jf(i+k,j+l)h(k,j)g(i,j) = \sum_{k,j}{f(i+k,j+l)h(k,j)}g(i,j)=k,j∑f(i+k,j+l)h(k...原创 2019-05-31 22:18:54 · 4493 阅读 · 1 评论 -
OpenCvSharp 学习笔记9 --图像的模糊处理2(滤波)
一:中值滤波原理与作用:前面一节实现的是均值滤波,是取卷积计算后的平均值,而中值滤波是取卷积计算的中间值,中值滤波的好处是对图像的椒盐噪声有很好的抑制作用,因为图像的椒盐噪点,是图像某一片区域像素的极大值或者极小值,使用中值滤波可以过滤掉这些噪点。示例:下图是一个 6* 8 的像素矩阵,卷积和为黄色部分 3*3大小。卷积核的窗口所覆盖下的像素值:211,109,233,234,111...原创 2019-06-01 21:06:01 · 3021 阅读 · 0 评论 -
OpenCvSharp 学习笔记13 --图像上的上采样和降采样 _ 之高斯采样
一:图像金子塔概念我们再图像处理中经常后调整图像的大小,最常见的就是放大和缩小,这是几何变换的放大和缩小。在图像处理当中,最常见的就是通过图像金子塔产生一系列不同分辨率的图像。然后再不同的尺度空间来寻找图像的对应特征。因为不知道输入的图像到底是什么情况,而图像金子塔处理会保证图像特征一直存在,不会改变的,这是重要一点。一个图像 像金子塔样式有一系列的图像组成,最底下一张是图像最大的,最上方是...原创 2019-06-06 21:52:37 · 2242 阅读 · 0 评论 -
OpenCvSharp 学习笔记7 --绘制图形和文字
一 绘制线条API :Cv2.Line()参数说明img:源图像pt1:第一个点pt2:第二个点color线条颜色thickness:线条的厚度(粗细)lineType:线条类型 (枚举值)shift点坐标中的小数位数。[默认值为0]代码:private static Mat src;static void Mai...原创 2019-05-29 19:53:49 · 7981 阅读 · 0 评论 -
OpenCvSharp 学习笔记14 --基本的阈值操作
一:图像阈值概念(thresholding)阈值是什么?简单的说就是图像分割的标尺。举例说明,看下面图片有一堆苹果,有你喜欢的和你不喜欢的,怎样区分你喜欢的和不喜欢的,在你心中有一个标准,那我们就把这个标准量化来表示,比如,红色的是你喜欢的,其他的是你不喜欢的。那么,这个 “红色” 相当与阈值。分割出你喜欢的和你不喜欢的。同理,在图片中,一个简单的阈值例子就是选择一个像素值p,然后将小于p...原创 2019-06-07 22:33:22 · 5054 阅读 · 0 评论 -
OpenCvSharp 学习笔记24--直方图比较
一,直方图比较方法概述:对输入的两张图像计算得到直方图H1和H2,归一化到相同的尺度空间(如果比较的两个图像的大小不一致,计算直方图后得到的像素频次不一致,无法比较,必须归一化到相同的尺度空间才可以比较) 然后通过计算H1和H2的之间的距离得到两个直返图的相似程度进而比较图像本身的相似程度.OpenCV提供的比较方法有四种:1:Correlation 卡方比较:dcorrel(H1,H2)=...原创 2019-06-24 23:00:17 · 2567 阅读 · 0 评论