自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Ctrl + A "学习"

原创 关注【OpenCV or Android】,持续分享,感谢支持

欢迎关注我的微信公众号【OpenCV or Android】,感谢大家支持和鼓励! 公众号文章和CSDN不完全一致,公众号会分享更优质的内容以及书籍。 欢迎扫码关注。

2020-09-03 08:02:15 43 0

原创 CV经典入门教程:《计算机视觉:算法与应用》第二版

《计算机视觉:算法与应用》是一本高质量的入门教材。但美中不足的是,这本书写于十年前,涉及的机器学习、深度学习内容较少,而近年来,这两项技术又在视觉领域实现了爆炸式增长。为了弥补这一缺憾,最近,作者 Richard Szeliski 在自己的个人主页上宣布,《计算机视觉:算法与应用》第二版已经基本完...

2020-09-20 09:02:03 134 0

原创 Android OpenCV(三十四):直线拟合

概念 直线拟合 霍夫直线检测是检测图像中是否存在直线,直线拟合则是假定我们已经知道点数据是在一条直线上,需要利用这些数据拟合出一条直线,但是由于噪声的存在,这条直线可能并不会通过大多数的数据点,此时,我们无法使用直线检测方式来寻找直线,而只能通过直线拟合的方式来求出这条直线。那么如何拟合直线呢?...

2020-09-09 20:48:07 54 0

原创 Android OpenCV(三十三):霍夫圆检测

标准霍夫变换的原理就是把图像空间转换成参数空间(即霍夫空间),例如霍夫变换的直线检测就是在距离 -角度空间内进行检测。圆可以表示为: (x−a)2+(y−b)2=r2 (x-a)^2+(y-b)^2 = r^2 (x−a)2+(y−b)2=r2 其中a和b代表圆心坐标,r代表圆半径。因此,霍夫变换...

2020-09-02 21:08:46 65 0

原创 Jetpack ViewModel 基本使用

简介 ViewModel,直接翻译过来就是"视图模型",再换个说法,其实就是"界面模型"。界面,在Android系统中通常采用Activity和Fragment来承载。那么,“界面模型”,我理解就是用于处理界面数据,界面逻辑等内容的载体,便于分担传统MVC架...

2020-08-29 15:25:06 120 0

原创 Jetpack Paging3 基本使用

Paging3 Paging3,是Jetpack提供给开发者用来显示本地或者网络数据集的分页库。针对这类场景,传统的做法是用RecyclerView的加载更多来实现分页加载,很多逻辑需要自行处理且不一定完善。Paging3相当于是官网提供的一套解决方案。 特点 每一页的数据会缓存至内存中,以...

2020-08-02 21:34:08 640 1

原创 Android OpenCV(三十二):霍夫直线检测

霍夫变换利用点与线之间的对偶性,将图像空间中直线上离散的像素点通过参数方程映射为霍夫空间中的曲线,并将霍夫空间中多条曲线的交点作为直线方程的参数映射为图像空间中的直线。给定直线的参数方程,可以利用霍夫变换来检测图像中的直线。 霍夫直线检测 点和线的对偶性 图像空间中的点,对应霍夫空间中的直线...

2020-07-25 17:49:20 76 0

原创 Android OpenCV(三十一):​图像形态学
原力计划

简介 形态学(morphology)一词通常表示生物学的一个分支,它是研究动植物的形态和结构的学科。而我们图像处理中指的形态学,往往表示的是数学形态学。数学形态学(Mathematical morphology) 的语言是集合论。同样,形态学为大量的图像处理问题提供了一种一致的有力方法。数字形态...

2020-07-05 20:20:09 180 0

原创 Android OpenCV(三十):​图像膨胀

图像腐蚀、膨胀属于形态学的操作,就是基于形状的一系列图像处理操作。数字形态学的基本思想是:用具有一定形态的结构元素去量度和提取图像中的对应形状,以达到图像分析和识别的目的。图像腐蚀、膨胀是基于高亮部分(白色)操作的,膨胀是对高亮部分进行膨胀,类似“领域扩张”,腐蚀是高亮部分被腐蚀,类似“领域蚕食”...

2020-06-26 19:38:56 140 0

原创 Android OpenCV(二十九):​图像腐蚀

图像腐蚀、膨胀属于形态学的操作,就是基于形状的一系列图像处理操作。数字形态学的基本思想是:用具有一定形态的结构元素去量度和提取图像中的对应形状,以达到图像分析和识别的目的。图像腐蚀、膨胀是基于高亮部分(白色)操作的,膨胀是对高亮部分进行膨胀,类似“领域扩张”,腐蚀是高亮部分被腐蚀,类似“领域蚕食”...

2020-06-25 19:42:55 268 0

原创 Android OpenCV(二十八):​图像距离变换

像素距离 对于像素p(x , y),q(s , t),z(v , w),用D(p , q)来表示像素p , q间的距离,像素间距离的D(x , y)应满足的如下条件: D(p , q) ≥ 0 D(p , q) = D(q , p) D(p , q) + D(q , z) ≥ D(p , z)...

2020-06-13 16:17:36 289 0

原创 Android OpenCV(二十七):​图像连通域

图像连通域 连通域 图像的连通域是指图像中具有相同像素值并且位置相邻的像素组成的区域, 连通域分析是指在图像中寻找出彼此互相独立的连通域并将其标记出来。 提取图像中不同的连通域是图像处理中较为常用的方法,例如在车牌识别、文字识别、目标检测等领域对感兴趣区域分割与识别。一般情况下,一个连通域内只包...

2020-06-07 14:59:51 140 0

原创 Android OpenCV(二十六):Canny算法边缘检测
原力计划

Canny算法边缘检测 Canny边缘检测算法是John F. Canny于 1986 年开发出来的一个多级边缘检测算法。截止2014年8月, Canny发表的该篇论文,已被引用19000余次。Canny 创立了边缘检测计算理论(Computational theory of edge dete...

2020-05-31 09:38:08 461 0

翻译 Moshi

Moshi 文章为对Moshi官方介绍的简单翻译。方便个人学习,加深印象。官方介绍:https://github.com/square/moshi 基础用法 依赖 Maven <dependency> <groupId>com.squareup.moshi</...

2020-05-24 18:45:00 130 0

原创 Android OpenCV(二十五): Laplacian 算子

Laplacian 算子 Laplacian算子具有各方向同性的特点,能够对任意方向的边缘进行提取,具有无方向性的优点,因此使用Laplacian算子提取边缘不需要分别检测X方向的边缘和Y方向的边缘,只需要一次边缘检测即可。Laplacian算子是一种二阶导数算子,对噪声比较敏感,因此常需要配合...

2020-05-23 18:42:35 195 0

原创 Android OpenCV(二十四):Scharr算子

Scharr算子 Scharr算子是对Sobel算子差异性的增强,因此两者之间的在检测图像边缘的原理和使用方式上相同。Scharr算子的边缘检测滤波的尺寸为3×3,因此也有称其为Scharr滤波器。可以通过将滤波器中的权重系数放大来增大像素值间的差异,弥补Sobel算子对图像中较弱的边缘提取效果...

2020-05-17 09:54:07 155 0

原创 Android OpenCV(二十三):Sobel算子

Sobel算子 索贝尔算子是计算机视觉领域的一种重要处理方法。 主要用于获得数字图像的一阶梯度,常见的应用和物理意义是边缘检测。 索贝尔算子是把图像中每个像素的上下左右四领域的灰度值加权差,在边缘处达到极值从而检测边缘。在技术上,它是一离散性差分算子,用来运算图像亮度函数的梯度之近似值。在图像的...

2020-05-16 08:25:43 334 0

原创 Android OpenCV(二十二):边缘检测

边缘检测 什么是图像的边缘? 图像的边缘是图像最基本的特征之一。所谓边缘(或边沿)是指周围像素灰度有跳跃性变化或“屋顶”变化的那些像素的集合。边缘是图像局部强度变化最明显的地方,它主要存在于目标与目标、目标与背景、区域与区域之间,因此它是图像分割依赖的重要特征。从本质上说,图像边缘是图像局部特性...

2020-05-02 09:36:09 906 4

原创 Android OpenCV(二十一):双边滤波

双边滤波 高斯滤波是以距离为权重,设计滤波模板作为滤波系数,只考虑了像素间的空间位置上的关系,因此滤波的结果会丢失边缘的信息。 高斯滤波的缺陷如下图所示:平坦区域正常滤波,图像细节没有变化,而在突变的边缘上,因为只使用了距离来确定滤波权重,导致边缘被模糊。 在高斯基础上,进一步优化,叠加了像素...

2020-05-01 10:05:20 329 0

原创 Android OpenCV(二十):高斯滤波

高斯滤波 高斯滤波是一种线性平滑滤波,适用于消除高斯噪声,广泛应用于图像处理的减噪过程。 通俗的讲,高斯滤波就是对整幅图像进行加权平均的过程,每一个像素点的值,都由其本身和邻域内的其他像素值经过加权平均后得到。高斯滤波的具体操作是:用一个模板(或称卷积、掩模)扫描图像中的每一个像素,用模板确定的...

2020-04-25 08:25:37 203 0

原创 Android OpenCV(十九):方框滤波

方框滤波 方框滤波和均值滤波核基本上是一致的,主要的区别是要不要归一化处理,如果使用归一化处理,方框滤波就是均值滤波。 API public static void boxFilter(Mat src, Mat dst, int ddepth, Size ksize, Point anchor...

2020-04-18 16:32:01 144 0

原创 Android OpenCV(十八):均值滤波

均值滤波 均值滤波也称为线性滤波,其采用的主要方法为邻域平均法。线性滤波的基本原理是用均值代替原图像中的各个像素值,即对待处理的当前像素点(x,y),选择一个模板,该模板由其近邻的若干像素组成,求模板中所有像素的均值,再把该均值赋予当前像素点(x,y),作为处理后图像在该点上的灰度g(x,y),...

2020-04-11 10:11:43 139 0

原创 Android OpenCV(十七):高斯噪声

高斯噪声 高斯噪声是指它的概率密度函数服从高斯分布(即正态分布)的一类噪声。常见的高斯噪声包括起伏噪声、宇宙噪声、热噪声和散粒噪声等等。这类噪声主要来源于电子电路噪声和低照明度或高温带来的传感器噪声,也成为正态噪声,是在实践中经常用到的噪声模型。 区别于椒盐噪声随机出现在图像中的任意位置,高斯噪...

2020-04-05 09:04:59 124 0

原创 Android OpenCV(十六):椒盐噪声

椒盐噪声 椒盐噪声也称为脉冲噪声,是图像中经常见到的一种噪声,它是一种随机出现的白点或者黑点,可能是亮的区域有黑色像素或是在暗的区域有白色像素(或是两者皆有)。椒盐噪声的成因可能是影像讯号受到突如其来的强烈干扰而产生、类比数位转换器或位元传输错误等。例如失效的感应器导致像素值为最小值,饱和的感应...

2020-03-31 08:55:09 255 0

原创 Android OpenCV(十五):图像卷积
原力计划

图像卷积 在信号处理中卷积操作需要给出一个卷积函数与信号进行计算,图像的卷积形式与其相同,需要给出一个卷积模板与原图像进行卷积计算。整个过程可以看成是一个卷积模板在另外一个大的图像上移动,对每个卷积模板覆盖的区域进行点乘,得到的值作为中心像素点的输出值。 卷积首先需要将卷积模板旋转180°,之后...

2020-03-29 09:13:51 126 0

原创 Android OpenCV(十四):图像直方图

图像直方图 图像直方图是统计图像中每个灰度值的个数,之后将图像灰度值作为横轴,以灰度值个数或者灰度值所占比率作为纵轴绘制的统计图。通过直方图可以看出图像中哪些灰度值数目较多,哪些较少。 直方图是图像中像素强度分布的图形表达方式。 直方图统计了每一个强度值所具有的像素个数。 API publ...

2020-03-21 17:11:04 249 0

原创 Android OpenCV(十三):图像金字塔
原力计划

图像金字塔 图像金字塔是图像中多尺度表达的一种,最主要用于图像的分割,是一种以多分辨率来解释图像的有效但概念简单的结构。 图像金字塔最初用于机器视觉和图像压缩,一幅图像的金字塔是一系列以金字塔形状排列的分辨率逐步降低,且来源于同一张原始图的图像集合。其通过梯次向下采样获得,直到达到某个终止条件才...

2020-03-14 12:57:29 174 0

原创 Android OpenCV(十二):极坐标变换

极坐标 极坐标系(polar coordinates)是指在平面内由极点、极轴和极径组成的坐标系。在平面上取定一点O,称为极点。从O出发引一条射线Ox,称为极轴。再取定一个单位长度,通常规定角度取逆时针方向为正。这样,平面上任一点P的位置就可以用线段OP的长度ρ以及从Ox到OP的角度θ来确定,有...

2020-03-12 10:35:50 168 0

原创 Android OpenCV(十一):图像仿射变换

仿射变换 仿射变换,又称仿射映射,是指在几何中,一个向量空间进行一次线性变换并接上一个平移,变换为另一个向量空间。 仿射变换能够保持图像的“平直性”,包括旋转,缩放,平移,错切操作。一般而言,仿射变换矩阵为23的矩阵,第三列的元素起着平移的作用,前面两列的数字对角线上是缩放,其余为旋转或者错切的...

2020-03-07 11:42:32 221 0

原创 Android OpenCV(十):图像透视变换

图像透视变换 透视变换(Perspective Transformation)是指利用透视中心、像点、目标点三点共线的条件,按透视旋转定律使承影面(透视面)绕迹线(透视轴)旋转某一角度,破坏原有的投影光线束,仍能保持承影面上投影几何图形不变的变换。透视变换是按照物体成像投影规律进行变换,即将物体...

2020-03-03 14:03:47 710 0

原创 Android OpenCV(九):LUT查找表

LUT查找表 LUT查找表,即像素灰度值的映射表,它以像素灰度值作为索引,以灰度值映射后的数值作为表中的内容。可以类比为我们编程过程中使用的Map,Key为像素灰度值,Value为灰度值映射后的数值。 API public static void LUT(Mat src, Mat lut, ...

2020-02-21 12:45:12 233 0

原创 Android OpenCV(八):图像二值化

图像二值化 简介 图像二值化( Image Binarization)就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的黑白效果的过程。在数字图像处理中,二值图像占有非常重要的地位,图像的二值化使图像中数据量大为减少,从而能凸显出目标的轮廓。 原理 图像的二值化处理就...

2020-02-12 11:18:48 699 0

原创 Android OpenCV(七):多通道分离与合并

多通道分离 API public static void split(Mat m, List<Mat> mv) 参数一:m,待分离的多通道图像 参数二:mv,分离后的单通道图像 操作 override fun onCreate(savedInstanceState: Bundle...

2020-02-10 11:18:21 251 0

原创 Android OpenCV(六):颜色模型及转换

颜色模型 RGB 采用三种颜色的英文首字母组成,分别是红色(Red)、绿色(Green)和蓝色(Blue)。虽然该颜色模型的命名方式是红色在前,但是在OpenCV中却是相反的顺序,第一个通道时蓝色(B)分量,第二个通道时绿色(G)分量,第三个通道时红色(R)分量。根据存储顺序的不同,OpenCV ...

2020-02-06 09:50:33 365 0

原创 Android OpenCV(五):亮度和对比度

亮度和对比度 对RGB色彩图像来讲,亮度越高,像素点对应的RGB值应该越大;亮度越低,像素点对应的RGB值应该越小。而对比度则是用来描述图像颜色与亮度之间的差异感知,对比度越大,图像的每个像素与周围的差异性也就越大,整个图像的细节就越显著;反之亦然。 调整图像亮度和对比度属于像素变换-点操作 g(...

2020-01-31 13:29:45 552 0

原创 Android OpenCV(四):绘制几何图形

绘制几何图形 直线 矩形 多边形 圆形 椭圆 文字 绘制直线 API public static void line(Mat img, Point pt1, Point pt2, Scalar color, int thickness, int lineType, int shift) ...

2020-01-28 17:01:24 444 0

原创 Android OpenCV(三):图像像素值统计

图像像素值统计 图像像素最大值、最小值以及位置 图像均值、标准差 查找最大值、最小值 API public static MinMaxLocResult minMaxLoc(Mat src, Mat mask) 参数src:输入的图像矩阵 参数mask:可选的掩码矩阵 返回值 M...

2020-01-24 08:04:29 479 3

原创 Android OpenCV(二):Mat像素操作

Mat Mat类用于表示一个多维的单通道或者多通道的稠密数组。能够用来保存实数或复数的向量、矩阵,灰度或彩色图像,立体元素,点云,张量以及直方图(高维的直方图使用SparseMat保存比较好)。简而言之,Mat就是用来保存多维的矩阵的。Mat对象中包含了图像的各种基本信息与图像像素数据。Mat是由...

2020-01-22 08:29:32 3684 0

原创 Android OpenCV(零):OpenCV Android SDK

OpenCV OpenCV,全称Open Source Computer VisionLibrary,是基于C/C++编写的,是BSD开源许可的计算机视觉开发框架,其开源协议允许在学术研究与商业应用开发中免费使用它。OpenCV支持Windows、Linux、Mac OS、iOS与Android操...

2020-01-14 20:29:24 951 1

原创 AndroidOpenCV(一):读取和写入图片

Android OpenCV OpenCV,即 Open Source Computer Vision Library。不赘述,可自行跳转查阅相关内容。 OpenCV Android SDK OpenCV Android SDK,下载OpenCV Android SDK即可开始OpenCV An...

2020-01-07 21:37:30 1680 2

提示
确定要删除当前文章?
取消 删除