易

Ctrl + A "学习"
私信 关注
onlyloveyd
码龄9年

个人公众号【OpenCV or Android】,热爱Android、Kotlin、Flutter和OpenCV。毕业于华中科技大学计算机专业,曾就职于华为武汉研究所。目前在三线小城市生活,专注Android、OpenCV、Kotlin、Flutter等有趣的技术。

  • 420,471
    被访问量
  • 224
    原创文章
  • 8,385
    作者排名
  • 2,494
    粉丝数量
  • 毕业院校 华中科技大学
  • 目前就职 贵州广思信息网络有限公司
  • 于 2011-12-06 加入CSDN
获得成就
  • 博客专家认证
  • 获得303次点赞
  • 内容获得243次评论
  • 获得193次收藏
  • GitHub 获得994Stars
荣誉勋章
兴趣领域
  • #Android
    #数据结构#性能优化#Kotlin#Android Jetpack#Flutter
TA的专栏
  • 呱呱Android基础
    70篇
  • Android OpenCV
    57篇
  • 呱呱Apk实战
    29篇
  • 呱呱Android源码浅析
    10篇
  • 人脸识别
    3篇
  • Android Apk
    28篇
  • Android 基础知识
    63篇
  • Camera
    4篇
  • Android Framework
    10篇
  • Android HAL
    1篇
  • Linux
    9篇
  • Android 开发问题集
    4篇
  • 微信小程序
    3篇
  • Android开源库
    31篇
  • Vue
    1篇
  • 技多不压身
    12篇
  • Kotlin
    9篇
  • jquery
  • Android源码分析
    2篇
  • AngularJs
    1篇
  • Flutter
    5篇
  • Java
    5篇
  • ionic
    2篇
学与思
90后/Android/OpenCV/Kotlin/Flutter 关注公众号,文章永久免费看
关注回复【计算机视觉】【Android】【Flutter】【OpenCV】获取学习资料
  • 最近
  • 文章
  • 资源
  • 问答
  • 课程
  • 帖子
  • 收藏
  • 关注/订阅

协变和逆变

本文同步发表于我的微信公众号,在微信搜索 OpenCV or Android 即可关注。协变、逆变概念许多程序设计语言的类型系统支持子类型。例如,如果Cat是Animal的子类型,那么Cat类型的表达式可用于任何出现Animal类型表达式的地方。所谓的变型(variance)是指如何根据组成类型之间的子类型关系,来确定更复杂的类型之间(例如Cat列表之于Animal列表,回传Cat的函数之于回传Animal的函数…等等)的子类型关系。当我们用类型构造出更复杂的类型,原本类型的子类型性质可能被保持、.
原创
26阅读
0评论
1点赞
发布博客于 4 天前

inline, noinline, crossinline傻傻分不清楚

本文同步发表于我的微信公众号,扫描左侧二维码即可关注。概念内联函数(inline function):在计算机科学中,内联函数(有时称作在线函数或编译时期展开函数)是一种编程语言结构,用来建议编译器对一些特殊函数进行内联扩展(有时称作在线扩展);也就是说建议编译器将指定的函数体插入并取代每一处调用该函数的地方(上下文),从而节省了每次调用函数带来的额外时间开支。但在选择使用内联函数时,必须在程序占用空间和程序执行效率之间进行权衡,因为过多的比较复杂的函数进行内联扩展将带来很大的存储资源开支。另外还.
原创
22阅读
0评论
0点赞
发布博客于 10 天前

结合Android去水印程序谈谈分区存储

前言为了方便个人更新微信状态,上周花半天时间编写简单的抖音去水印APP。热心的小伙伴发现在Android11上无法保存视频。震惊,土豪竟然都是高端大气Android11。于是乎,分区存储的适配工作必须给土豪安排上。分区存储为了让用户更好地管理自己的文件并减少混乱,以 Android 10(API 级别 29)及更高版本为目标平台的应用在默认情况下被赋予了对外部存储空间的分区访问权限,即分区存储。此类应用在不请求任何与存储相关的用户权限时,只能访问外部存储空间上的应用专属目录,以及本应用所创建的特定类型
原创
50阅读
0评论
0点赞
发布博客于 16 天前

全网首发微信二维码引擎Android平台移植

2011年12月微信3.5版本正式上线“扫一扫”二维码,历经9年蜕变,“扫一扫”从二维码名片到扫码支付、从小程序码到健康码,二维码已经成为一种生活方式,连接着数字与现实。现在,在腾讯WeChatCV团队的贡献下,微信扫码引擎正式加入OpenCV开源了!号称只需要三行代码,你便轻松拥有微信的扫码能力。我只想说,真的没那么容易,我花了半天才完成微信二维码扫描引擎在Android平台上的基础实践。前言 全网首发微信二维码引擎An
原创
115阅读
2评论
0点赞
发布博客于 23 天前

Android抖音去水印小工具

前言微信8.0.0更新以后,大伙玩得不亦乐乎,除了会动的表情,特效的炸弹、烟花等,还有一个亮点就是微信个人状态背景,既可以挂图片,更可以挂视频,给人一种万物皆可短视频的感觉。我也很爱这个功能,但是奈何鄙人才疏学浅,没法制作炫酷的短视频。只能使用去抖音水印工具获取视频积累素材,但是目前接触的去水印工具:小程序:没广告的不能用,能用的大堆广告网页:速度慢且操作不便捷。想想自己是个程序员,得尊重下自己的职业,自己动手丰衣足食。以下内容,仅供学习娱乐使用。思路1. “抖音”,复制链接今年的《
原创
134阅读
2评论
0点赞
发布博客于 27 天前

Android OpenCV 摄像头实时预览

Android摄像头预览Android OpenCV开发过程中,我们有3种可选方式去实现Android摄像头预览功能:使用Android系统Camera API使用CameraX(JetPack组件)使用OpenCV SDK辅助类(JavaCameraView、JavaCamera2View等)当然,有人可能会有疑问?后面两种方式不也是使用Android系统的Camera APi嘛。你说的很有道理,只是CameraX为我们处理了很多麻烦的问题,如设备管理,生命周期管理等逻辑,让开发者更专注于生
原创
129阅读
1评论
1点赞
发布博客于 1 月前

Kotlin Flow场景化学习

目录结构何为Kotlin Flow?Flow,直接翻译就是“流”,如何理解呢?生活中,我们有水流,人流,车流等;开发中,我们有字节流,视频流等。参考这些内容,我们就很好理解”流“的概念,连续的内容输出形成“流”。Android技术层面上,使用过RxJava的朋友对生产者-消费者模式以及数据流的概念如数家珍,而Kotlin Flow是以协程为基础进行连续内容输出的开发库,实现与RxJava相似的功能,但是与Android结合更紧密,因为它是“亲儿子”。为何需要Kotlin Flow?RxJava相
原创
211阅读
2评论
0点赞
发布博客于 1 月前

Android OpenCV(五十三):Shi-Tomasi角点检测

Shi-Tomasi角点检测在Harris角点检测中,Harris角点评价系数R表示为:R=det(M)−k(trace(M))2R=det(M)-k(trace(M))^2R=det(M)−k(trace(M))2det(M)=λ1λ2det(M)=λ_1λ_2det(M)=λ1​λ2​trace(M)=λ1+λ2trace(M)=λ_1+λ_2trace(M)=λ1​+λ2​其中det(M)=λ1λ2是矩阵的行列式,trace(M)=λ1+λ2是矩阵的迹其中det(M)=λ_1
原创
71阅读
0评论
0点赞
发布博客于 1 月前

商用密码应用安全性评估试题.docx.zip

商用密码应用安全性评估培训试题,通过密评资质人员必须掌握的内容。可以帮助密评人员通过国家密码管理局组织的考核。
zip
发布资源于 1 月前

Kotlin协程场景化学习

何为Kotlin协程?协程是一种并发设计模式,Kotlin协程是一个线程框架。为什么需要Kotlin协程?提供方便的线程操作API,编写逻辑清晰且简洁的线程代码。协程是Google在 Android 上进行异步编程的推荐解决方案。具有如下特点:轻量:您可以在单个线程上运行多个协程,因为协程支持挂起,不会使正在运行协程的线程阻塞。挂起比阻塞节省内存,且支持多个并行操作。内存泄漏更少:使用结构化并发机制在一个作用域内执行多项操作。内置取消支持:取消操作会自动在运行中的整个协程层次结构内传播。J
原创
116阅读
0评论
0点赞
发布博客于 1 月前

Android OpenCV(五十二):Harris角点检测

什么是角点?角点就是极值点,即在某方面属性特别突出的点。当然,你可以自己定义角点的属性(设置特定熵值进行角点检测)。角点可以是两条线的交叉处,也可以是位于相邻的两个主要方向不同的事物上的点。角点通常被定义为两条边的交点,或者说,角点的局部邻域应该具有两个不同区域的不同方向的边界。常见的角点有:灰度梯度的最大值对应的像素点;两条直线或者曲线的交点;一阶梯度的导数最大值和梯度方向变化率最大的像素点;一阶导数最大,二阶导数为零的像素点(指示物体边缘变化不连续的方向)。为什么要检测角点?角点是图像
原创
95阅读
2评论
0点赞
发布博客于 1 月前

Android OpenCV(五十一):图像插值

图像插值何为插值?插值是离散函数逼近的重要方法,利用它可通过函数在有限个点处的取值状况,估算出函数在其他点处的近似值。何为图像插值?从低分辨率图像生成高分辨率图像的过程(放大),用以恢复图像中所丢失的信息。APIpublic static void resize(Mat src, Mat dst, Size dsize, double fx, double fy, int interpolation) 参数一:src,输入源图像。参数二:dst,输出目标图像。参数三:
原创
83阅读
0评论
0点赞
发布博客于 2 月前

Android OpenCV(五十):图像翻转

图像翻转图像翻转图像翻转操作,就是将图像二维数组沿水平轴,垂直轴或者两个轴进行翻转操作。dstij={srcsrc.rows−i−1,jif  flipCode=0srci,src.cols−j−1if  flipCode>0srcsrc.rows−i−1,src.cols−j−1if  flipCode<0\texttt{dst} _{ij} = \left\{ \begin{array}{l l} \texttt{src} _{\texttt{src.rows}-i-1,j} &am
原创
83阅读
0评论
0点赞
发布博客于 2 月前

Android OpenCV(四十九):图像积分图

图像积分图积分图像是Crow在1984年首次提出,是为了在多尺度透视投影中提高渲染速度,是一种快速计算图像区域和与平方和的算法。其核心思想是对每个图像建立自己的积分图查找表,在图像积分处理计算阶段根据预先建立的积分图查找表,直接查找从而实现对均值卷积线性时间计算,做到了卷积执行的时间与半径窗口大小的无关联。图像积分图在图像特征提取HAAR/SURF、二值图像分析、图像相似相关性NCC计算、图像卷积快速计算等方面均有应用,是图像处理中的经典算法之一。原理积分图像采用不同的计算规则获取不同的积分图像:s
原创
178阅读
1评论
0点赞
发布博客于 2 月前

Android OpenCV(四十八):Poisson图像编辑

泊松图像编辑图像合成是图形处理的一个基本问题,其通过将源图像中一个物体或者一个区域嵌入到目标图像生成一个新的图像。在对图像进行合成的过程中,为了使合成后的图像更自然,合成边界应保持无缝。但如果原图像和目标图像有着明显不同的纹理特征,则直接合成后的图像会存在明显的边界。针对此问题,Prez等提出了一种利用构造Poisson方程求解像素最优值的方法,在保留了源图像梯度信息的同时,可以很好地融合源图像与目标图像的背景。该方法根据用户指定的边界条件求解一个Poisson方程,实现了梯度上的连续,从而达到边界处的无
原创
111阅读
0评论
0点赞
发布博客于 2 月前

Android OpenCV(四十七):脱色

脱色脱色是将彩色图像转换为灰度图像的过程。同时,它也是数字打印,风格化的黑白照片渲染以及许多单通道图像处理应用程序中的基本工具。Imgproc.cvtColor(rgb, gray, Imgproc.COLOR_RGB2GRAY)可以快速的实现图片脱色,其通过简单的计算将三通道图像转换成单通道图像,经典的灰度转换公式如下:GRAY=0.299∗R+0.587∗G+0.114∗BGRAY=0.299*R+0.587*G+0.114*BGRAY=0.299∗R+0.587∗G+0.114∗B但是转换过
原创
52阅读
0评论
0点赞
发布博客于 2 月前

AndroidOpenCV(四十六):非真实渲染

非真实渲染非真实感渲染(Non Photorealistic Rendering,简称NPR),是指利用计算机模拟各种视觉艺术的绘制风格,也用于发展新的绘制风格。比如模拟中国画、水彩、素描、油画、版画等艺术风格。NPR也可以把三维场景渲染出丰富的、特别的新视觉效果,使它具备创新的功能。NPR渲染以强烈的艺术形式应用在动画、游戏等娱乐领域中,也出现在工程、工业设计图纸中。广阔的应用领域,不仅是由于它的艺术表现形式丰富多样,还在于计算机能够辅助完成原本工作量大、难度高的创作工作。目前,基于三维软件的NPR
原创
152阅读
0评论
1点赞
发布博客于 2 月前

Android OpenCV(四十五):图像修复

图像修复实际应用中,图像常常容易受损,如存在污渍的镜头、旧照片的划痕、人为的涂画(比如马赛克),亦或是图像本身的损坏。将受到损坏的图像尽可能还原成原来的模样的技术,称之为图像修复。所谓修复,就代表图像大部分内容是完好的,所以,图像修复的原理,就是用完好的部分去推断受损部分的信息,特别是完好部分与受损部分的交界处,即受损区域的边缘,在这个推断过程中尤为重要。OpenCV给我们提供了inpaint方法来实现这个功能,并提供了两种图像修复的算法:基于Navier-Stokes的修复方法基于图像梯度的快速
原创
195阅读
0评论
0点赞
发布博客于 3 月前

Android OpenCV(四十四):图像分割(均值漂移)

图像分割图像分割就是把图像分成若干个特定的、具有独特性质的区域并提出感兴趣目标的技术和过程。它是由图像处理到图像分析的关键步骤。现有的图像分割方法主要分以下几类:基于阈值的分割方法、基于区域的分割方法、基于边缘的分割方法以及基于特定理论的分割方法等。从数学角度来看,图像分割是将数字图像划分成互不相交的区域的过程。图像分割的过程也是一个标记过程,即把属于同一区域的像素赋予相同的编号。均值漂移(Mean-Shift)MeanShfit 均值漂移算法是一种通用的聚类算法,通常可以实现彩色图像分割。基本思想
原创
85阅读
0评论
0点赞
发布博客于 3 月前

Android OpenCV(四十三):图像分割(Grabcut)

图像分割图像分割就是把图像分成若干个特定的、具有独特性质的区域并提出感兴趣目标的技术和过程。它是由图像处理到图像分析的关键步骤。现有的图像分割方法主要分以下几类:基于阈值的分割方法、基于区域的分割方法、基于边缘的分割方法以及基于特定理论的分割方法等。从数学角度来看,图像分割是将数字图像划分成互不相交的区域的过程。图像分割的过程也是一个标记过程,即把属于同一区域的像素赋予相同的编号。GrabcutGraphCut需要用户提供精确的前景背景的种子,而且当提供的种子无法覆盖所有分布时,必然会影响分割的准确度
原创
130阅读
0评论
0点赞
发布博客于 3 月前

Android OpenCV Native C++实现灰度图片

最近帮一位读者朋友在Android平台上集成部分OpenCV功能,考虑到移动端的特殊性,不建议采用全包集成,同时,市面上Android手机基本上都是基于arm的指令集。综合考虑,采用c++ & native库的方式来实现OpenCV能力的集成。环境Android Studio 4.1.1OpenCV 4.5.0NDK 21.1.6352462CMake 3.10.2环境搭建下载opencv-4.5.0-android-sdk下载地址:https://sourceforge.n.
原创
211阅读
0评论
1点赞
发布博客于 3 月前

OpenCV 官方版本百度云盘下载

最近下载OpenCV的官方版本时网速特别慢,考虑到大家可能也会遇到这个问题,于是乎,存于百度盘分享之。版本列表下载链接公众号内回复【OpenCV】,即可全量下载。
原创
636阅读
0评论
0点赞
发布博客于 3 月前

Android OpenCV(四十二):图像分割(分水岭法)

图像分割图像分割就是把图像分成若干个特定的、具有独特性质的区域并提出感兴趣目标的技术和过程。它是由图像处理到图像分析的关键步骤。现有的图像分割方法主要分以下几类:基于阈值的分割方法、基于区域的分割方法、基于边缘的分割方法以及基于特定理论的分割方法等。从数学角度来看,图像分割是将数字图像划分成互不相交的区域的过程。图像分割的过程也是一个标记过程,即把属于同一区域的像素赋予相同的编号。分水岭法分水岭算法介绍,下面这位知乎博主已经讲得非常详细了,详情请自行查阅。https://zhuanlan.zhihu
原创
126阅读
0评论
0点赞
发布博客于 3 月前

Android OpenCV(四十一):图像分割(漫水填充法)

图像分割图像分割就是把图像分成若干个特定的、具有独特性质的区域并提出感兴趣目标的技术和过程。它是由图像处理到图像分析的关键步骤。现有的图像分割方法主要分以下几类:基于阈值的分割方法、基于区域的分割方法、基于边缘的分割方法以及基于特定理论的分割方法等。从数学角度来看,图像分割是将数字图像划分成互不相交的区域的过程。图像分割的过程也是一个标记过程,即把属于同一区域的像素赋予相同的编号。漫水填充法漫水填充算法是根据像素灰度值之间的差值寻找相同区域实现分割。我们可以将图像的灰度值理解成像素点的高度,这样一张图
原创
150阅读
0评论
0点赞
发布博客于 3 月前

Android OpenCV(四十):QR二维码检测与识别

QR二维码QR码(英语:Quick Response Code;全称为快速响应矩阵图码)是二维码的一种,于1994年由日本DENSO WAVE公司发明。QR来自英文Quick Response的缩写,即快速反应,因为发明者希望QR码可以快速解码其内容。QR码使用四种标准化编码模式(数字、字母数字、字节(二进制)和日文(Shift_JIS))来存储数据。QR码常见于日本,为目前日本最通用的二维空间条码,在世界各国广泛运用于手机读码操作。QR码比普通一维条码具有快速读取和更大的存储资料容量,也无需要像一维条
原创
664阅读
4评论
0点赞
发布博客于 3 月前

Android OpenCV(三十九):模板匹配

什么是模板匹配?模板匹配是一种用于在较大图像中搜索和查找模板图像位置的方法。OpenCV提供matchTemplate()方法来实现模板匹配功能。模板匹配结果返回的是灰度图像,其中每个像素表示该像素的邻域与模板匹配程度。假设输入图像的大小(W * H),模板图像的大小为(w * h),则输出图像的大小将为(W - w + 1,H - h + 1)。获得结果后,可以使用minMaxLoc()方法查找最大/最小值位置,并将其作为矩形的左上角,以(w,h)作为矩形的宽度和高度来确定模板匹配到的区域。模板匹配原
原创
167阅读
0评论
0点赞
发布博客于 4 月前

Android OpenCV(三十八):凸包检测

凸包凸包(Convex Hull)是一个计算几何(图形学)中的概念。在一个实数向量空间V中,对于给定集合X,所有包含X的凸集的交集S被称为X的凸包。X的凸包可以用X内所有点(X1,…Xn)的凸组合来构造.在二维欧几里得空间中,凸包可想象为一条刚好包着所有点的橡皮圈。用不严谨的话来讲,给定二维平面上的点集,凸包就是将最外层的点连接起来构成的凸多边形,它能包含点集中所有的点。凸包缺陷如图所示,黑色的轮廓线为convexity hull(凸包),而convexity hull(凸包)与手掌之间的部分
原创
84阅读
0评论
0点赞
发布博客于 4 月前

Android OpenCV(三十七):轮廓外接多边形

前面我们提到轮廓发现、轮廓周长以及轮廓面积,然后通过轮廓面积和周长的固定关系来判断轮廓形状。但是针对不规则的形状,其实我们是很难通过数量关系来进行判断的。参考之前直线拟合的方式,我们也可以通过形状拟合的方式来对轮廓进行一定的分析。最常见的是将轮廓拟合成矩形等多边形。API最大外接矩形public static Rect boundingRect(Mat array)参数一:array,输入的灰度图或者二维点集合。该方法用于求取包含输入图像中物体轮廓或者二维点集的最大外接矩形。返回值为R.
原创
374阅读
2评论
0点赞
发布博客于 4 月前

Android OpenCV(三十六):轮廓面积与周长

轮廓面积与周长轮廓面积和轮廓周长都是轮廓的重要统计特征。轮廓面积是指每个轮廓中所有像素点围成区域的面积,单位为像素。轮廓周长是指每个轮廓中所有像素点围成区域的周长,单位同样为像素。通过分析轮廓面积和轮廓周长,我们可以区分物体的大小,识别物体的不同,同时还能分析出一些其他内容,例如,正方形区域的周长和面积是有固定关系的,圆形区域的周长和面积是有固定关系的。通过计算轮廓面积和周长,再结合这些固定关系,我们是可以得到一些结论的。API轮廓面积public static double contourArea
原创
266阅读
0评论
0点赞
发布博客于 4 月前

绿盟RSAS技术说明书.pdf.zip

本文将覆盖绿盟远程安全评估系统(NSFOCUS Remote Security Assessment System, 以下简称 NSFOCUS RSAS)的所有功能点,并详细介绍它的主要功能模块和使用方法。 F*NSFOELS
zip
发布资源于 5 月前

Android OpenCV(三十五):轮廓发现与绘制

图像轮廓是一系列相连的点组成的曲线,代表物体的基本外形。轮廓与边缘的区别在于,轮廓是连续的,边缘并不全部连续。轮廓发现的操作一般用于二值化图,所以通常会使用阈值分割或Canny边缘检测先得到二值图。注意,轮廓发现是针对白色物体的,一定要保证物体是白色,而背景是黑色,不然很多人在寻找轮廓时会找到图片最外面的一个框。轮廓层级部分内容翻译自:https://docs.opencv.org/3.1.0/d9/d8b/tutorial_py_contours_hierarchy.html通常我们使用.
原创
442阅读
0评论
0点赞
发布博客于 5 月前

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

《计算机视觉:算法与应用》是一本高质量的入门教材。但美中不足的是,这本书写于十年前,涉及的机器学习、深度学习内容较少,而近年来,这两项技术又在视觉领域实现了爆炸式增长。为了弥补这一缺憾,最近,作者 Richard Szeliski 在自己的个人主页上宣布,《计算机视觉:算法与应用》第二版已经基本完成,并发布了新书的 PDF 版本,向读者征集意见。新书主页:http://szeliski.org/Book/下载链接:https://www.dropbox.com/sh/88qvr1z7fpfx1t
原创
756阅读
0评论
2点赞
发布博客于 5 月前

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

概念直线拟合霍夫直线检测是检测图像中是否存在直线,直线拟合则是假定我们已经知道点数据是在一条直线上,需要利用这些数据拟合出一条直线,但是由于噪声的存在,这条直线可能并不会通过大多数的数据点,此时,我们无法使用直线检测方式来寻找直线,而只能通过直线拟合的方式来求出这条直线。那么如何拟合直线呢?一般我们采用最小二乘法来保证所有数据点距离直线的距离最小,从而得出这条拟合出来的直线。最小二乘法最小二乘法是由勒让德在19世纪发现的,形式如下式:标函数=∑(观测值−理论值)2 标函数=\sum(观测值-
原创
231阅读
0评论
0点赞
发布博客于 5 月前

关注【OpenCV or Android】,文章随时看,CSDN不定期更新

欢迎关注我的微信公众号【OpenCV or Android】,感谢大家支持和鼓励!公众号文章和CSDN不完全一致,公众号会分享更优质的内容以及书籍。欢迎扫码关注。
原创
127阅读
0评论
1点赞
发布博客于 5 月前

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代表圆半径。因此,霍夫变换的圆检测就是在这三个参数组成的三维空间内进行。原则上,霍夫变换可以检测任何形状。但复杂的形状需要的参数很多,霍夫空间的维数对应就多,因此在程序实现上所需的内存空间以及运行效率上都不利于把标准霍夫变换应用于实际复杂.
原创
301阅读
0评论
1点赞
发布博客于 5 月前

Jetpack ViewModel 基本使用

简介ViewModel,直接翻译过来就是"视图模型",再换个说法,其实就是"界面模型"。界面,在Android系统中通常采用Activity和Fragment来承载。那么,“界面模型”,我理解就是用于处理界面数据,界面逻辑等内容的载体,便于分担传统MVC架构中Controller角色的职责。由此,可总结ViewModel的基本作用:数据持久化如果系统销毁或重新创建界面控制器,则存储在其中的任何临时性界面相关数据都会丢失。例如,应用的某个 Activity 中可能包含用户列表。因配置更改而重新创建
原创
739阅读
0评论
0点赞
发布博客于 6 月前

Jetpack Paging3 基本使用

Paging3Paging3,是Jetpack提供给开发者用来显示本地或者网络数据集的分页库。针对这类场景,传统的做法是用RecyclerView的加载更多来实现分页加载,很多逻辑需要自行处理且不一定完善。Paging3相当于是官网提供的一套解决方案。特点每一页的数据会缓存至内存中,以此保证处理分页数据时更有效的使用系统资源内置请求重复数据删除功能,确保应用有效地使用网络带宽和系统资源支持Kotlin协程、Flow、LiveData以及RxJava内置错误处理支持,如刷新和重试功能。逻
原创
2445阅读
5评论
3点赞
发布博客于 6 月前

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

霍夫变换利用点与线之间的对偶性,将图像空间中直线上离散的像素点通过参数方程映射为霍夫空间中的曲线,并将霍夫空间中多条曲线的交点作为直线方程的参数映射为图像空间中的直线。给定直线的参数方程,可以利用霍夫变换来检测图像中的直线。霍夫直线检测点和线的对偶性图像空间中的点,对应霍夫空间中的直线图像空间中的直线,对应霍夫空间中的点共点的直线,在霍夫空间中对应的点在一条直线上共线的点,在霍夫空间中对应的直线交于一点极坐标参数方程对于平面中的一条直线,在笛卡尔坐标中,常见的有点.
原创
216阅读
0评论
0点赞
发布博客于 7 月前

The Linux Command Line中英文合集.zip

The Linux Command Line电子书中英文版本合集。学习 Linux 命令行会让你受益匪浅,给你极大的回报。如果你认为, 现在你已经是高手了。别急,其实你还不知道什么才是真正的高手。不像其他一些计算机技能, 一段时间之后可能就被淘汰了,命令行知识却不会落伍,你今天所学到的,在十年以后, 都会有用处。命令行通过了时间的检验。 如果你没有编程经验,也不要担心,我会带你入门。
zip
发布资源于 7 月前

kotlin-in-chinese.pdf

Kotlin入门必备教程。简洁明了,方便新手快速了解Kotlin核心内容。 Kotlin入门必备教程。简洁明了,方便新手快速了解Kotlin核心内容。
pdf
发布资源于 7 月前

等保2.0初级.zip

2019年最新发布的等级保护2.0标准,本文档为初级测评师培训教材,包含安全物理环境、安全通信网络、安全区域边界、安全计算环境等测评要求、测评方法、预期结果指南!
zip
发布资源于 7 月前

Android OpenCV(三十一):​图像形态学

简介形态学(morphology)一词通常表示生物学的一个分支,它是研究动植物的形态和结构的学科。而我们图像处理中指的形态学,往往表示的是数学形态学。数学形态学(Mathematical morphology) 的语言是集合论。同样,形态学为大量的图像处理问题提供了一种一致的有力方法。数字形态学中的集合表示图像中的不同对象。例如,在二值图像中,所有的黑色像素的集合是图像完整的形态学描述。形态学的基本操作有图像腐蚀、图像膨胀、开操作、闭操作、击中不击中等。主要应用于边界提取、区域填充、连通分量的提取、凸壳
原创
251阅读
0评论
0点赞
发布博客于 7 月前
Android OpenCV(三十):​图像膨胀
发布Blink于 8 月前

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

图像腐蚀、膨胀属于形态学的操作,就是基于形状的一系列图像处理操作。数字形态学的基本思想是:用具有一定形态的结构元素去量度和提取图像中的对应形状,以达到图像分析和识别的目的。图像腐蚀、膨胀是基于高亮部分(白色)操作的,膨胀是对高亮部分进行膨胀,类似“领域扩张”,腐蚀是高亮部分被腐蚀,类似“领域蚕食”。膨胀腐蚀的应用主要体现在消除噪声、分割独立元素或者连接相邻元素、寻找图像中明显极大值、极小值区域以及求图像的梯度。图像膨胀图像膨胀的作用是将目标图像扩大,运算效果取决于结构元素大小内容以及逻辑运算性质。.
原创
236阅读
0评论
0点赞
发布博客于 8 月前
Android OpenCV(二十九):​图像腐蚀
发布Blink于 8 月前

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

图像腐蚀、膨胀属于形态学的操作,就是基于形状的一系列图像处理操作。数字形态学的基本思想是:用具有一定形态的结构元素去量度和提取图像中的对应形状,以达到图像分析和识别的目的。图像腐蚀、膨胀是基于高亮部分(白色)操作的,膨胀是对高亮部分进行膨胀,类似“领域扩张”,腐蚀是高亮部分被腐蚀,类似“领域蚕食”。膨胀腐蚀的应用主要体现在消除噪声、分割独立元素或者连接相邻元素、寻找图像中明显极大值、极小值区域以及求图像的梯度。图像腐蚀图像腐蚀的作用是将目标图像收缩,运算效果取决于结构元素大小内容以及逻辑运算性质。.
原创
344阅读
0评论
1点赞
发布博客于 8 月前

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

像素距离对于像素p(x , y),q(s , t),z(v , w),用D(p , q)来表示像素p , q间的距离,像素间距离的D(x , y)应满足的如下条件:D(p , q) ≥ 0D(p , q) = D(q , p)D(p , q) + D(q , z) ≥ D(p , z)像素距离的分类及计算方法欧氏距离(Euclidean Distance)两个像素点之间的直线距离。与直角坐标系中两点之间的直线距离求取方式相同,分别计算两个像素在X方向和Y方向上的距离,之后利用勾股
原创
354阅读
0评论
0点赞
发布博客于 8 月前
Android OpenCV(二十七):​图像连通域
发布Blink于 8 月前

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

图像连通域连通域图像的连通域是指图像中具有相同像素值并且位置相邻的像素组成的区域,连通域分析是指在图像中寻找出彼此互相独立的连通域并将其标记出来。提取图像中不同的连通域是图像处理中较为常用的方法,例如在车牌识别、文字识别、目标检测等领域对感兴趣区域分割与识别。一般情况下,一个连通域内只包含一个像素值,因此为了防止像素值波动对提取不同连通域的影响,连通域分析常处理的是二值化后的图像邻域邻域,与指定元素相邻的像素集合。常用的有4邻域和8邻域。如果像素点A与B邻接,我们称A与B连通,于是
原创
222阅读
0评论
0点赞
发布博客于 8 月前

Android OpenCV(二十六):Canny算法边缘检测

Canny算法边缘检测Canny边缘检测算法是John F. Canny于 1986 年开发出来的一个多级边缘检测算法。截止2014年8月, Canny发表的该篇论文,已被引用19000余次。Canny 创立了边缘检测计算理论(Computational theory of edge detection)解释这项技术如何工作。通常情况下边缘检测的目的是在保留原有图像属性的情况下,显著减少图像的数据规模。有多种算法可以进行边缘检测,虽然Canny算法年代久远,但可以说它是边缘检测的一种标准算法,而且仍在
原创
579阅读
0评论
0点赞
发布博客于 9 月前

Moshi

Moshi文章为对Moshi官方介绍的简单翻译。方便个人学习,加深印象。官方介绍:https://github.com/square/moshi基础用法依赖Maven<dependency> <groupId>com.squareup.moshi</groupId> <artifactId>moshi</artifactId> <version>1.9.2</version></depend
翻译
255阅读
0评论
0点赞
发布博客于 9 月前

Android OpenCV(二十五): Laplacian 算子

Laplacian 算子Laplacian算子具有各方向同性的特点,能够对任意方向的边缘进行提取,具有无方向性的优点,因此使用Laplacian算子提取边缘不需要分别检测X方向的边缘和Y方向的边缘,只需要一次边缘检测即可。Laplacian算子是一种二阶导数算子,对噪声比较敏感,因此常需要配合高斯滤波一起使用。如果邻域系统是4邻域,Laplacian 算子的模板为:[0101−41010]\begin{bmatrix} 0&1&0\\1&-4&1\\0&1&
原创
275阅读
0评论
1点赞
发布博客于 9 月前

Android OpenCV(二十四):Scharr算子

Scharr算子Scharr算子是对Sobel算子差异性的增强,因此两者之间的在检测图像边缘的原理和使用方式上相同。Scharr算子的边缘检测滤波的尺寸为3×3,因此也有称其为Scharr滤波器。可以通过将滤波器中的权重系数放大来增大像素值间的差异,弥补Sobel算子对图像中较弱的边缘提取效果较差的缺点。APIpublic static void Scharr(Mat src, Mat dst, int ddepth, int dx, int dy, double scale, double d
原创
176阅读
0评论
0点赞
发布博客于 9 月前

Android OpenCV(二十三):Sobel算子

Sobel算子索贝尔算子是计算机视觉领域的一种重要处理方法。主要用于获得数字图像的一阶梯度,常见的应用和物理意义是边缘检测。索贝尔算子是把图像中每个像素的上下左右四领域的灰度值加权差,在边缘处达到极值从而检测边缘。在技术上,它是一离散性差分算子,用来运算图像亮度函数的梯度之近似值。在图像的任何一点使用此算子,将会产生对应的梯度矢量或是其法矢量。索贝尔算子不但产生较好的检测效果,而且对噪声具有平滑抑制作用,但是得到的边缘较粗,且可能出现伪边缘。该算子包含两组3x3的矩阵,分别为横向及纵向,将之与图像
原创
422阅读
0评论
0点赞
发布博客于 9 月前

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

边缘检测什么是图像的边缘?图像的边缘是图像最基本的特征之一。所谓边缘(或边沿)是指周围像素灰度有跳跃性变化或“屋顶”变化的那些像素的集合。边缘是图像局部强度变化最明显的地方,它主要存在于目标与目标、目标与背景、区域与区域之间,因此它是图像分割依赖的重要特征。从本质上说,图像边缘是图像局部特性不连续性(灰度突变、颜色突变、纹理结构突变等)的反应,它标志着一个区域的终结和另一个区域的开始。检测...
原创
1003阅读
4评论
0点赞
发布博客于 10 月前

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

双边滤波高斯滤波是以距离为权重,设计滤波模板作为滤波系数,只考虑了像素间的空间位置上的关系,因此滤波的结果会丢失边缘的信息。高斯滤波的缺陷如下图所示:平坦区域正常滤波,图像细节没有变化,而在突变的边缘上,因为只使用了距离来确定滤波权重,导致边缘被模糊。在高斯基础上,进一步优化,叠加了像素值的考虑,因此也就引出了双边滤波,一种非线性滤波,滤波效果对保留边缘更有效。为了理解双边滤波的距离...
原创
391阅读
0评论
0点赞
发布博客于 10 月前

Android OpenCV(二十):高斯滤波

高斯滤波高斯滤波是一种线性平滑滤波,适用于消除高斯噪声,广泛应用于图像处理的减噪过程。 通俗的讲,高斯滤波就是对整幅图像进行加权平均的过程,每一个像素点的值,都由其本身和邻域内的其他像素值经过加权平均后得到。高斯滤波的具体操作是:用一个模板(或称卷积、掩模)扫描图像中的每一个像素,用模板确定的邻域内像素的加权平均灰度值去替代模板中心像素点的值。高斯滤波是利用高斯核的一个2维的卷积算子,用于图...
原创
256阅读
0评论
0点赞
发布博客于 10 月前

《Java开发手册》泰山版.zip

阿里巴巴《Java开发手册》泰山版
zip
发布资源于 10 月前

Android OpenCV(十九):方框滤波

方框滤波方框滤波和均值滤波核基本上是一致的,主要的区别是要不要归一化处理,如果使用归一化处理,方框滤波就是均值滤波。APIpublic static void boxFilter(Mat src, Mat dst, int ddepth, Size ksize, Point anchor, boolean normalize, int borderType)参数一:src,输入图像...
原创
172阅读
0评论
0点赞
发布博客于 10 月前
Android OpenCV(十八):均值滤波
发布Blink于 10 月前

Android OpenCV(十八):均值滤波

均值滤波均值滤波也称为线性滤波,其采用的主要方法为邻域平均法。线性滤波的基本原理是用均值代替原图像中的各个像素值,即对待处理的当前像素点(x,y),选择一个模板,该模板由其近邻的若干像素组成,求模板中所有像素的均值,再把该均值赋予当前像素点(x,y),作为处理后图像在该点上的灰度g(x,y),即g(x,y)=∑f(x,y)/m m为该模板中包含当前像素在内的像素总个数。从频率域观点来看均值滤波...
原创
192阅读
0评论
1点赞
发布博客于 10 月前

Android OpenCV(十七):高斯噪声

高斯噪声高斯噪声是指它的概率密度函数服从高斯分布(即正态分布)的一类噪声。常见的高斯噪声包括起伏噪声、宇宙噪声、热噪声和散粒噪声等等。这类噪声主要来源于电子电路噪声和低照明度或高温带来的传感器噪声,也成为正态噪声,是在实践中经常用到的噪声模型。区别于椒盐噪声随机出现在图像中的任意位置,高斯噪声出现在图像中的所有位置。且概率密度函数如下所示:p(z)=12πδe−(z−μ)2δ2p(z) ...
原创
166阅读
0评论
0点赞
发布博客于 10 月前

Android OpenCV(十六):椒盐噪声

椒盐噪声椒盐噪声也称为脉冲噪声,是图像中经常见到的一种噪声,它是一种随机出现的白点或者黑点,可能是亮的区域有黑色像素或是在暗的区域有白色像素(或是两者皆有)。椒盐噪声的成因可能是影像讯号受到突如其来的强烈干扰而产生、类比数位转换器或位元传输错误等。例如失效的感应器导致像素值为最小值,饱和的感应器导致像素值为最大值。椒盐噪声是指两种噪声:盐噪声(salt noise)及椒噪声(pepper no...
原创
312阅读
0评论
0点赞
发布博客于 11 月前

Android OpenCV(十五):图像卷积

图像卷积在信号处理中卷积操作需要给出一个卷积函数与信号进行计算,图像的卷积形式与其相同,需要给出一个卷积模板与原图像进行卷积计算。整个过程可以看成是一个卷积模板在另外一个大的图像上移动,对每个卷积模板覆盖的区域进行点乘,得到的值作为中心像素点的输出值。卷积首先需要将卷积模板旋转180°,之后从图像的左上角开始移动旋转后的卷积模板,从左到右,从上到下依次进行卷积计算,最终得到卷积后的图像。卷积...
原创
190阅读
0评论
0点赞
发布博客于 1 年前

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

图像直方图图像直方图是统计图像中每个灰度值的个数,之后将图像灰度值作为横轴,以灰度值个数或者灰度值所占比率作为纵轴绘制的统计图。通过直方图可以看出图像中哪些灰度值数目较多,哪些较少。直方图是图像中像素强度分布的图形表达方式。直方图统计了每一个强度值所具有的像素个数。APIpublic static void calcHist(List<Mat> images, Mat...
原创
345阅读
0评论
0点赞
发布博客于 1 年前

Android OpenCV(十三):图像金字塔

图像金字塔图像金字塔是图像中多尺度表达的一种,最主要用于图像的分割,是一种以多分辨率来解释图像的有效但概念简单的结构。图像金字塔最初用于机器视觉和图像压缩,一幅图像的金字塔是一系列以金字塔形状排列的分辨率逐步降低,且来源于同一张原始图的图像集合。其通过梯次向下采样获得,直到达到某个终止条件才停止采样。金字塔的底部是待处理图像的高分辨率表示,而顶部是低分辨率的近似。我们将一层一层的图像比喻...
原创
214阅读
0评论
0点赞
发布博客于 1 年前

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

极坐标极坐标系(polar coordinates)是指在平面内由极点、极轴和极径组成的坐标系。在平面上取定一点O,称为极点。从O出发引一条射线Ox,称为极轴。再取定一个单位长度,通常规定角度取逆时针方向为正。这样,平面上任一点P的位置就可以用线段OP的长度ρ以及从Ox到OP的角度θ来确定,有序数对(ρ,θ)就称为P点的极坐标,记为P(ρ,θ);ρ称为P点的极径,θ称为P点的极角。极坐标和笛...
原创
234阅读
0评论
0点赞
发布博客于 1 年前

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

仿射变换仿射变换,又称仿射映射,是指在几何中,一个向量空间进行一次线性变换并接上一个平移,变换为另一个向量空间。 仿射变换能够保持图像的“平直性”,包括旋转,缩放,平移,错切操作。一般而言,仿射变换矩阵为23的矩阵,第三列的元素起着平移的作用,前面两列的数字对角线上是缩放,其余为旋转或者错切的作用。仿射变换是一种二维坐标(x, y)到二维坐标(u, v)的线性变换。数学表达式如下:对应的...
原创
326阅读
0评论
0点赞
发布博客于 1 年前

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

图像透视变换透视变换(Perspective Transformation)是指利用透视中心、像点、目标点三点共线的条件,按透视旋转定律使承影面(透视面)绕迹线(透视轴)旋转某一角度,破坏原有的投影光线束,仍能保持承影面上投影几何图形不变的变换。透视变换是按照物体成像投影规律进行变换,即将物体重新投影到新的成像平面。透视变换常用于机器人视觉导航研究中,由于相机视场与地面存在倾斜角使得物体成像产...
原创
1005阅读
0评论
0点赞
发布博客于 1 年前

Android OpenCV(九):LUT查找表

LUT查找表LUT查找表,即像素灰度值的映射表,它以像素灰度值作为索引,以灰度值映射后的数值作为表中的内容。可以类比为我们编程过程中使用的Map,Key为像素灰度值,Value为灰度值映射后的数值。APIpublic static void LUT(Mat src, Mat lut, Mat dst)参数一:src,输入图像矩阵,其数据类型只能是CV_8U参数二:lut,256...
原创
307阅读
0评论
0点赞
发布博客于 1 年前

Android OpenCV(八):图像二值化

图像二值化简介图像二值化( Image Binarization)就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的黑白效果的过程。在数字图像处理中,二值图像占有非常重要的地位,图像的二值化使图像中数据量大为减少,从而能凸显出目标的轮廓。原理图像的二值化处理就是将图像上的点的灰度值为0或255,也就是将整个图像呈现出明显的黑白效果。即将256个亮度等级的灰度图...
原创
1094阅读
0评论
1点赞
发布博客于 1 年前

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

多通道分离APIpublic static void split(Mat m, List<Mat> mv)参数一:m,待分离的多通道图像参数二:mv,分离后的单通道图像操作override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) mBi...
原创
356阅读
0评论
0点赞
发布博客于 1 年前
Android OpenCV(六):颜色模型及转换
发布Blink于 1 年前

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

颜色模型RGB采用三种颜色的英文首字母组成,分别是红色(Red)、绿色(Green)和蓝色(Blue)。虽然该颜色模型的命名方式是红色在前,但是在OpenCV中却是相反的顺序,第一个通道时蓝色(B)分量,第二个通道时绿色(G)分量,第三个通道时红色(R)分量。根据存储顺序的不同,OpenCV 4中提供了这种顺序的反序格式,用于存储第一个通道是红色分量的图像,但是这两种格式的图像的颜色空间是相同...
原创
512阅读
0评论
2点赞
发布博客于 1 年前

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

亮度和对比度对RGB色彩图像来讲,亮度越高,像素点对应的RGB值应该越大;亮度越低,像素点对应的RGB值应该越小。而对比度则是用来描述图像颜色与亮度之间的差异感知,对比度越大,图像的每个像素与周围的差异性也就越大,整个图像的细节就越显著;反之亦然。调整图像亮度和对比度属于像素变换-点操作g(i,j) = αf(i,j) +β (其中 α>0 ,α 增益(放大倍数),用来控制图像的对比度...
原创
718阅读
0评论
0点赞
发布博客于 1 年前

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

绘制几何图形直线矩形多边形圆形椭圆文字绘制直线APIpublic static void line(Mat img, Point pt1, Point pt2, Scalar color, int thickness, int lineType, int shift) 参数一:img,输入图像参数二:pt1,起点参数三:pt2,终点参数四:color,绘制直线的颜...
原创
651阅读
0评论
2点赞
发布博客于 1 年前

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

图像像素值统计图像像素最大值、最小值以及位置图像均值、标准差查找最大值、最小值APIpublic static MinMaxLocResult minMaxLoc(Mat src, Mat mask)参数src:输入的图像矩阵参数mask:可选的掩码矩阵返回值 MinMaxLocResult:记录最小值、最大值及其位置public static class Mi...
原创
694阅读
3评论
1点赞
发布博客于 1 年前
Android OpenCV(二):Mat像素操作
发布Blink于 1 年前

Android OpenCV(二):Mat像素操作

MatMat类用于表示一个多维的单通道或者多通道的稠密数组。能够用来保存实数或复数的向量、矩阵,灰度或彩色图像,立体元素,点云,张量以及直方图(高维的直方图使用SparseMat保存比较好)。简而言之,Mat就是用来保存多维的矩阵的。Mat对象中包含了图像的各种基本信息与图像像素数据。Mat是由头部与数据部分组成的,其中头部还包含一个指向数据的指针。Mat方法方法使用p...
原创
4090阅读
0评论
4点赞
发布博客于 1 年前

继续学习 https://mp.weixin.qq.com/s/adu5qrG0VyD9ZicU1lnhRA

 
发布Blink于 1 年前

Android OpenCV(零):OpenCV Android SDK

OpenCVOpenCV,全称Open Source Computer VisionLibrary,是基于C/C++编写的,是BSD开源许可的计算机视觉开发框架,其开源协议允许在学术研究与商业应用开发中免费使用它。OpenCV支持Windows、Linux、Mac OS、iOS与Android操作系统上的应用开发。OpenCV Android SDKOpenCV Android SDK 是O...
原创
1151阅读
1评论
0点赞
发布博客于 1 年前

从零开始OpenCV Android学习 https://mp.weixin.qq.com/s/tt_Pe9SxqOqm1xg6VLH_zw

 
发布Blink于 1 年前
AndroidOpenCV(一):读取和写入图片
发布Blink于 1 年前

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

Android OpenCVOpenCV,即 Open Source Computer Vision Library。不赘述,可自行跳转查阅相关内容。OpenCV Android SDKOpenCV Android SDK,下载OpenCV Android SDK即可开始OpenCV Android客户端的学习与使用。读取Utils.loadResource:从资源文件中加载为Mat...
原创
3329阅读
8评论
4点赞
发布博客于 1 年前
LazyKeyboard 安全键盘新版本V1.4
发布Blink于 2 年前

LazyKeyboard 安全键盘新版本V1.4

LazyKeyboard自定义字母、符号、数字安全键盘。最初版本采用PopupWindow的方式实现。最近抽空升级至v1.4版本。主要做了如下方面的调整。迁移至AndroidX采用Dialog实现方式增加自定义属性(键盘类型选中/未选中颜色,键盘类型选择区域背景,键盘区域背景)删减代码,尽量简洁使用方式添加依赖项目根目录build.gradleallprojects { ...
原创
349阅读
0评论
1点赞
发布博客于 2 年前

class-dump-z.zip

class-dump-z.zip资源包分享,支持win/linux/mac/iphone等,
zip
发布资源于 2 年前
利用libfacedetection实现Android端人脸检测
发布Blink于 2 年前

利用libfacedetection实现Android端人脸检测

libfacedetectionlibfacedetection是一个基于CNN的人脸检测的开源库。Android平台使用Android-FaceDetection基于libfacedetection实现人脸检测。采用libfacedetection开源项目部分代码并整理成模块,方便后续使用。效果...
原创
2078阅读
1评论
1点赞
发布博客于 2 年前

越自律,越自由~

 
发布Blink于 2 年前

Ubuntu16.04 libfacedetection人脸检测

libfacedetectionlibfacedetection是Github上一个开源的人脸检测率高,检测效率高的库(相较于OpenCV提供的基础识别模型)。检测速度能达到1500FPS。下载并配置# 下载git clone https://github.com/ShiqiYu/libfacedetection.git# 修改CMakeLists.txtcd libfacedete...
原创
606阅读
2评论
1点赞
发布博客于 2 年前

Ubuntu16.04 安装OpenCV 3.4.7

Ubuntu OpenCV 3.4.7 安装下载OpenCV-3.4.7源码包前往OpenCV下载地址:https://opencv.org/releases.html,选择Open-3.4.7 Source 下载opencv-3.4.7.zip包后解压安装OpenCV依赖包sudo apt-get install build-essentialsudo apt-get insta...
原创
1368阅读
0评论
2点赞
发布博客于 2 年前

Using Pako in Ionic&Angular

ionic PakoWhat’s Pakozlib port to javascript, very fast!Functiongzip & base64decode base64 & gunzipinstallnpm install --save @types/pakonpm install --save pakoTypeScriptimport ...
原创
200阅读
0评论
0点赞
发布博客于 2 年前

《LeetCode-0005》 最长回文子串-Longest Palindromic Substring

https://leetcode-cn.com/problems/longest-palindromic-substring/题目给定一个字符串 s,找到 s中最长的回文子串。你可以假设s的最大长度为 1000。示例 1:输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例 2:输入: "cbbd"输出: "bb"概念回文串:一个正读和...
原创
188阅读
0评论
0点赞
发布博客于 2 年前

ionic4 and Angular7 WanAndroid Client

ionic-wanandroid基于ionic4 + ng7构建一个ionic WanAndroid.com客户端使用到阿里移动端组件库ng-zorro-antd-mobile,功能点首页轮播图首页公众号,导航数据最新项目搜索知识体系Native插件HttpDeviceFileInAppBrowserAppMinimizeionic-Keyboardionic...
原创
406阅读
2评论
0点赞
发布博客于 2 年前

《LeetCode-0004》 寻找两个有序数组的中位数-Median of Two Sorted Arrays

https://leetcode-cn.com/problems/median-of-two-sorted-arrays/题目给定两个大小为 m 和 n 的有序数组nums1和 nums2。请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。你可以假设 nums1 和 nums2 不会同时为空。示例 1:nums1 = [1, 3]nums2 ...
原创
341阅读
3评论
3点赞
发布博客于 2 年前

《LeetCode-0003》 无重复字符的最长子串-Longest Substring Without Repeating Characters

https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/题目给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"...
原创
287阅读
4评论
0点赞
发布博客于 2 年前

《LeetCode-0002》 两数相加-Add Two Numbers

https://leetcode-cn.com/problems/add-two-numbers/题目给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例输入:(2 ->...
原创
135阅读
0评论
0点赞
发布博客于 2 年前

《LeetCode-0001》 两数之和-TwoSum

https://leetcode-cn.com/problems/two-sum/题目给定一个整数数组nums 和一个目标值 target ,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例给定 nums = [2, 7, 11, 15], target = 9因为 nums[...
原创
207阅读
0评论
0点赞
发布博客于 2 年前

MacOS 10.11.6 Android源码编译并刷机

前言Mac OS之前是10.14版本,Xcode也是最新的Xcode 10,与官文要求的编译环境相差很大,导致编译过程中出现各种奇葩错误,无力解决,遂重装系统。好在Mac OS重装系统很方便,在线安装即可。所以,安装10.11版本,目前编译Android6.0.1源码无问题。环境Mac OS :10.11.6 OS X EI CapitanJDK:jdk7Xcode:离线安装的Xcod...
原创
365阅读
0评论
0点赞
发布博客于 2 年前