自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

AndroidKt

Ctrl + A "学习"

  • 博客(330)
  • 资源 (16)
  • 收藏
  • 关注

原创 Android OpenCV(七十七):官方指南方式编译 OpenCV Android SDK.md

众所周知😳, OpenCV 4.9.0 罕见的在 Android 平台上做出调整,具体更新内容请移步。然而,近期笔者在查阅 OpenCV Github Wiki 时,又发现了新东西🤡,一篇名为的 Wiki。以前我们编译 SDK 采用的是CMake方式,具体可参考,而本篇新 Wiki 起草于 2023年11月23日,内容比较新,但是整体还是基于 CMake,只是采用 python 封装脚本方便执行而已,以前应该也可以采用这种方式执行,只是官方一直未正式发布指南。

2024-01-10 20:46:24 1052

原创 Android OpenCV(七十六): OpenCV 4.9.0 更新,终于有一点Android平台的调整了

😂 😂 太感动 ing,OpenCV 4.9.0 版本更新,官方 ChangeLog 里终于出现久违的 Android 平台变更。百年难得一见的变更,我们必须逐条看看。

2024-01-03 19:50:23 1290

原创 Android OpenCV(七十五): 看看刚”转正“的条形码识别

OpenCV 4.8.0 以后,条形码识别转正到主仓库,用法与二维码识别类似,一起看看。

2023-08-20 17:44:43 749

原创 Android OpenCV(七十四): Android OpenCV SDK 升级至 4.8.0

如昨日文章所述,,虽然系列文章已经停更很久,但是版本升级工作笔者是很乐意快速完成的。更新日志:https://github.com/opencv/opencv/wiki/ChangeLog#version480。

2023-08-20 17:40:11 732

原创 有趣的 Kotlin 0x15:data object

Kotlin 新成员 data object

2023-05-07 12:18:27 633 1

原创 有趣的 Kotlin 0x14:Base64编码

Kotlin 来到 1.8.20 版本, 又给开发者带来了很多更新, 今天关注下标准库中新增的Base64相关内容.

2023-04-23 20:47:43 716

原创 有趣的 Kotlin 0x13:密封类

跟着 ChatGPT 学 Kotlin,又是努力做一个 AI 出题人的一天~

2023-04-23 20:46:47 425

原创 有趣的 Kotlin 0x12:Nothing、Any、Unit

作为函数的返回类型,表示函数可以返回任何类型的对象。这在函数需要返回不同类型的对象时非常有用,例如一个工厂函数可以返回不同类型的对象。例如,在一个函数中,如果一个分支中抛出了异常,那么其他分支中的代码就永远不会执行,这时候可以使用。这在需要一个泛型类型参数,但又不关心具体类型的情况下非常有用。在一个类型的泛型参数中,表示这个泛型参数不会被使用,例如一个空的List。是一个特殊的类型,它表示一个函数不会返回任何有用的值。类型的声明,因为Kotlin会自动将没有返回值的函数的返回类型设置为。

2023-04-23 20:45:44 466

原创 Android OpenCV(七十三):吊打高斯模糊的StackBlur Android 实践

OpenCV 4.7.0 2022年12月28日Release,ChangeLog中提到Stackblur是一种高斯模糊的快速近似,由Mario Klingemann发明。其计算耗时不会随着kernel size的增大而增加,专为大kernel size的模糊滤波场景量身定制。使用建议:当kernel size > 9时,强烈建议用stackBlur替换高斯模糊。吊打高斯模糊的StackBlur来了!,已经给出了非常清晰的说明,不再赘述。

2023-03-01 20:03:41 840

原创 有趣的 Kotlin 0x11: joinToString,你真的了解嘛?

之前使用函数也就是用逗号连接集合元素形成字符串,也没有细看它的参数,但是今天和 ChatGPT 聊天时,发现它给我输出了诸多内容。

2023-03-01 20:02:18 696

原创 有趣的 Kotlin 0x10:操作符 ..<

操作符是 Kotlin 在 1.7.20 版本中引入的不包含尾部元素的左闭右开区间操作符。之前我们使用的比较多的操作符可能是。操作符之前,要实现**[0.0,10.0)** 区间,只能使用近似的方法。,两者均表示区间,前者是闭区间,后者则表示不包含末端元素的左闭右开区间。为什么可以实现时间类型的半开半闭区间呢?IDEA 会通过数学符号给出明确的范围提示。可以处理闭区间和左闭右开区间。但是针对浮点型,之前我们只能使用。的左闭右开区间却无法直接实现。操作符处理闭区间,但是对应。,但是依然会有误差。

2023-03-01 20:00:34 462

原创 Android OpenCV(七十二):DNN 人脸识别 FaceRecognizerSF

上一篇文章Android OpenCV(七十一):DNN 人脸检测 FaceDetectorYN,我们提到 OpenCV 4.5.4 版本以后,objdetect包下新增了基于YuNet的人脸检测类,除此之外,还新增了基于 DNN SFace 的人脸识别类——。

2022-11-14 19:45:34 2138 1

原创 Android OpenCV(七十一):DNN 人脸检测 FaceDetectorYN

针对人脸检测,之前我们在Android OpenCV(六十):HAAR 级联分类和Android 平台人脸检测并不复杂两篇文章中分别介绍过OpenCV 级联分类器识别与 libfacedetection 开源库两种方式。并且,OpenCV 人脸检测:级联分类器与YuNet效果对比有更好的检测率和效率可以检测被遮挡的面部以及侧脸更轻量,文件大小更小参数简单易调效率稳定在选用人脸检测模型时,应该首选考虑基于 CNN 的YuNet。

2022-10-22 21:13:36 2221

原创 Android OpenCV(七十):Android DNN 部署深度学习模型

OpenCV 3.3版本以后,OpenCV 加入了对深度神经网络推理运算的支持模块——DNN模块,它支持多种深度学习框架的模型,如Tensorflow、Caffe、Torch、Darknet,以及ONNX格式的模型。

2022-10-03 18:13:28 1836

原创 《Python编程:从入门到实践》读书笔记

听说 python 很好用,遂学习之

2022-10-01 08:05:14 660

原创 Android OpenCV(六十九):MNIST + KNN + Android 提高手写字识别

前两篇文章中案例均是手写数字识别。使用数据集为下方图片分割而成的 5000 张 20*20 的图片,训练算法分别为 KNN 和 决策树。但是从两篇文章末尾的视频可以看出,识别效果并不是很好,误识别的情况比较多。针对 KNN,尝试修改 K 值大小,识别效果依然无明显改善。在写决策树那篇文章时,发现 http://yann.lecun.com/exdb/mnist/ 网站上的训练图片有 6 万张,于是产生跟换训练集的想法。

2022-09-11 09:40:17 1208

原创 Android OpenCV(六十八):决策树

监督学习(supervised learning)的任务是学习一个模型,使模型能够对任意给定的输入,对其相应的输出做出一个好的预测。换言之,利用训练数据集学习一个模型,再用模型对测试样本集进行预测。分类问题(离散)与回归问题(连续)等都是监督学习,如KNN、决策树和随机森林等。非监督学习(unsupervised learning)则是直接对数据进行建模。没有给定事先标记过的训练范例,所用的数据没有属性或标签这一概念。自动对输入的资料进行分类或分群,以寻找数据的模型和规律。聚类算法。

2022-09-08 16:31:02 1338 3

原创 Android OpenCV(六十七):KNN

KNN(K- Nearest Neighbor)法即 K 最邻近法,最初由 Cover 和 Hart 于 1968 年提出,是一个理论上比较成熟的方法,也是最简单的机器学习算法之一。该方法的思路非常简单直观:如果一个样本在特征空间中的 K 个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。该方法在定类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类。.如上图,测试样本(绿色圆形)只能被归为第一类的蓝色方形或者第二类的红色三角形。

2022-09-06 12:54:33 1134

原创 有趣的 Kotlin 0x0F:Definitely non-nullable types

绝对不可能为空的类型。Kotlin 本身就有可空和不可空类型,为何又来一个呢?

2022-08-13 14:55:30 687

原创 有趣的 Kotlin 0x0E:DeepRecursiveFunction

T为传入参数类型;R为输出结果类型;block函数体。每一颗语法糖背后,总有几个 Kotlin 的工程师在为我们负重前行。🥸。

2022-08-02 21:23:27 613

原创 有趣的 Kotlin 0x0D:IntArray vs Array<Int>

IntArray 和 Array 如何选择?

2022-07-16 10:47:57 719

原创 Ubuntu 20.04 编译 libfacedetection

环境准备OpenCV 4.5.5参考文章:Ubuntu 安装 OpenCV4.5.5Android NDK r23b网址:https://developer.android.google.cn/ndk/downloads解压并配置环境变量 export ANDROID_NDK=/home/opencv/android/android-ndk(替换成自己的解压目录)libfacedetection 源码网址:https://github.com/ShiqiYu/libfacedete

2022-05-15 14:29:06 670 2

原创 Ubuntu 安装 OpenCV 4.5.5

换源(可选)换个源,加快下载速度。sudo cp /etc/apt/sources.list /etc/apt/sources.list.baksudo gedit /etc/apt/sources.list清华源# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse# deb-s.

2022-05-03 16:26:49 8612 17

原创 Android OpenCV(六十六):边框扩展

前言就难易程度而言,边框扩展这部分内容不应该出现在 KMeans 之后,纯属意外。今天查阅 OpenCV 官方文档时,发现官方竟然单独花了一篇文章讲解这个,而自己只是在Android OpenCV(五十九):盲水印 一节中提到过,所以,我们还是结合官方案例在 Android 平台上实践一下。APIpublic static void copyMakeBorder(Mat src, Mat dst, int top, int bottom, int left, int right, int borde

2022-04-30 16:56:28 3429

原创 Android OpenCV(六十五):K均值

K 均值k 均值聚类算法(k-means clustering algorithm)是一种迭代求解的聚类分析算法。算法主要分为 4 步:预将数据分为 K 组,并随机选取 K 个对象作为初始的聚类中心;计算每个对象与各个种子聚类中心之间的距离,把每个对象分配给距离它最近的聚类中心;计算每个聚类的平均值,并将均值作为新的聚类中心;重复步骤 2 和 3 ,直到每个聚类满足终止条件。终止条件可以是没有(或最小数目)对象被重新分配给不同的聚类,没有(或最小数目)聚类中心再发生变化,误差平方和局部最小。

2022-04-17 15:17:44 4378

原创 Jetpack Compose(二):TextField

TextField属性按照 Material 设计标准,输入框分为两种:filled text field 和 outlined text field。在 Compose 的世界里,分别对应:TextField 和 OutlinedTextField。@Composablefun TextField( value: TextFieldValue, onValueChange: (TextFieldValue) -> Unit, modifier: Modifier

2022-04-05 19:28:57 1104

原创 Jetpack Compose(一):Text

前言自从去年参加 Android 官方发起了 Jetpack Compose 的推广活动:Jetpack Compose 开发者挑战赛以后,再未系统的学习过 Jetpack Compose 的内容,一晃一年就过去了,官方版本已经更新至稳定版 本1.1.1,Alpha 版本 1.2.0-alpha04。从今天开始,继续自学 Jetpack Compose,就从文本 Text 开始吧,用不用得上再说。Text属性@Composablefun Text( text: String,

2022-04-05 09:14:16 459

原创 Android OpenCV(六十四):图像矩

图像矩矩(英文:moment),亦被称作动差,其概念最初应该来自于物理学,例如我们熟知的力矩。在物理学中,矩用来表示物体形状的物理量,为重要参数指标。定义在实数域上的实函数相对于值 ccc 的 nnn 阶矩为:μn=∫−∞∞(x−c)nf(x)dx\mu_n = \int_{-\infty}^\infty(x-c)^nf(x)dxμn​=∫−∞∞​(x−c)nf(x)dx如果f(x)f(x)f(x)是概率密度函数,则容易看出相对于值 0 的 1 阶矩是连续随机变量的数学期望。考虑几个特殊场景,方便

2022-03-20 20:13:09 7058

原创 Android OpenCV(六十三):斑点检测

斑点斑点(Blob) ,指图像中连接在一起的一组像素,它们具有一些共同的属性(例如灰度值)。如下图中,暗色连接区域就是斑点。而斑点检测的目标是识别和标记这些区域。API主要涉及两个类:SimpleBlobDetector 和 SimpleBlobDetector_Params。斑点检测器:SimpleBlobDetectorpublic static SimpleBlobDetector create(SimpleBlobDetector_Params parameters)参数一:p

2022-03-13 18:41:29 8283

原创 Android OpenCV(六十二):伪彩色增强

伪彩色增强伪彩色增强是把黑白图像的各个不同灰度级按照线性或非线性的映射函数变换成不同的彩色,得到一幅彩色图像的技术。为什么有时候需要做伪彩色增强?主要原因是人对图像灰度的分辨能力比较低,只能分辨出几十级,而对色彩的辨别能力却非常强,可以分辨出 上千种颜色,为了更有效地提取图形信息,使原图像细节更易辨认,目标更容易识别。原理每一个灰度值都对应颜色空间中的某一种颜色,每个像素的颜色不是由每个基色分量的数值直接决定,而是把像素值当作颜色查找表(color look-up table,CLUT)的

2022-03-05 19:14:09 5319

原创 Retrofit SOAP协议实践

前言作为 Android 开发,平时和后端聊得最多的除了喝酒就是接口。常用语:Restful 和 WebService,前者现在聊得多,后者以前聊得多。默认含义分别为:Restful:HTTP 协议 和 JSON 格式WebService:特指 Soap 协议 和 XML 格式针对基于 HTTP 协议且格式为 JSON 的 Restful 接口,Android 客户端一般采用 Retrofit + Gson/Moshi 的方案解决。而针对 Soap 协议 和 XML 格式的 Soap Web

2022-02-11 08:14:25 216

原创 Android OpenCV(六十一):图像锐化

图像锐化图像锐化,是凸显图像边缘,使图像边缘更加清晰的一种图像处理方式。原理主要就是利用图像的高频分量来实现的,将原图像的高频分量提取出来,再和原图像按一定规则叠加起来,最终得到的图像就是锐化后的图像。主要有两种方式提取高频分量:高通滤波器直接提取原图 - 低通滤波器提取低频 = 高频方式一:高通滤波器使用高通滤波器来提取图像高频分量,如 Sobel 算子、Laplace 算子、梯度 Prewitt 算子等。其中Sobel提取出来的边缘比较粗糙,Laplace 提取出来的边缘更加细腻,因此也更

2022-01-27 20:53:33 4318

原创 Paging 3 分组列表

前言为什么命名为 “Android Jetpack” ?Android JetPack = Android Jet Pack = 安卓喷气发动机组件。再看看下面这个直冲云霄的 Android 机器人,是不是觉得还挺有意思?虽说天天混迹技术社区耳濡目染 Android Jetpack,但是鲜有机会实践。今天就从 Paging3 开始,上手这套组件。Paging3 是 Google 推出的一个应用于Android平台的分页加载库。相较于历史版本,Paging3 功能更丰富、更易用。主要优势如下:

2022-01-23 16:28:15 1816

原创 小手一抖,BUG 就有

前言最近有个 Android 项目重启了,同事无意中将 targetSdkVersion 从 29 升级至 30,引发一个兼容性问题,记录一下。先看看官网 Android 11 行为变更,调整不算太多,开发者比较关注的应该是 强制分区存储 或者 Toast API 内部变更,鲜有人注意到 Package visibility 的行为变更,上述兼容性问题便是由此而生。问题private fun isAppInstalled(pkgName: String): Boolean { val p

2022-01-01 08:50:34 232 6

原创 一招解决 Github 加载慢问题

前言GitHub · Build software better, together.Github 是开发者提高生产力的必备工具,是程序员心目中永远的神。但是 Github 在国内的访问速度很不稳定,时而快如闪电,时而慢如"闪电"。大部分时候,图片都是裂开的。严重影响鄙人拔刀(复制代码)的速度。至于是不是普遍现象,大伙打开百度搜索下 “Github访问”,看看长尾词便知。有条件的朋友可以采用非常科学的上网方式解决问题,像我这样吃馒头都嫌贵的人,自然只能另谋出路。如果你遇到 Github

2021-12-27 19:52:09 4756 2

原创 Android OpenCV(六十):HAAR级联检测器

前言级联分类器级联分类器的概念出自2001年Paul Viola与Michael Jones提出的论文《基于级联分类器的快速对象检测》。其是基于级联分类技术实现对人脸对象的实时快速检测,总结来说级联分类器具有如下几个特征:高拒绝率与低通过率。弱分类器组合级联。实时快速计算。常见的级联分类器大多是基于LBP特征与HAAR特征实现的。基于LBP与HAAR特征针对特定目标训练得到分类器数据,可以保存、加载、有效地进行对象识别。人脸检测就是其中最典型的例子之一。HAAR 特征HAAR小波基函数,

2021-12-12 14:38:38 3965

原创 Kotlin tailrec

前言尾调用一个函数内最后一个动作是调用函数的情形(即这个调用的返回值直接被当前函数返回的情形)fun shape(x: Int): Int { return rect(x)}尾递归尾调用在尾部位置调用函数本身的情形。尾递归属于递归的一种特殊情形。尾调用不一定是递归调用,但是尾递归特别有用,也比较容易实现。fun shape(x: Int): Int { return shape(x-1)}尾递归在普通尾调用的基础上,多出了2个特征:在尾部调用的是函数自身 (Self

2021-12-11 18:43:59 2089 2

原创 大厂文档校正服务,直接拿去用

前言之前在 Android OpenCV 系列文章中,发布过三篇关于图像校正的文章:平面倾斜图像校正Z 轴图像倾斜校正智能裁剪矫正 - SmartCrop其中,只有 智能裁剪矫正 - SmartCrop 具备实用价值。身为一个靠谱的开发人员,针对一个需求怎么可能只储备一个解决方案呢?所以,今天再介绍一个大厂图像校正解决方案,在巨人的肩膀上“接着奏乐接着舞”。目录华为文档校正服务一、简介1.1 服务介绍文档校正服务支持自动识别文档在图片中的位置,能够根据识别到的位置信息

2021-12-05 08:34:17 2780

原创 Activity Result API,顺手

今天打开 Typora 写作时,发现这款陪伴自己多年的工具终于发布了正式版本且以购买序列号的形式落地产品变现,毫无迟疑,第一时间购买序列号支持,付费是对产品和知识的助力,用爱发电很难持续,希望开发这款工具的开发者伴随工具越来越好。前言启动另一个 activity(无论是应用中的 activity 还是其他应用中的 activity)不一定是单向操作。很多场景下,我们启动另一个 activity 是为了接收返回的结果。例如,应用可启动相机应用并接收拍摄的照片作为结果。在过去的很长一段时间里,开发者皆是.

2021-11-28 17:51:07 695

原创 平时写作离不开的几个工具

工欲善其事必先利其器,今天我们不谈技术,谈谈技术输出。前言毕业后刚开始在 CSDN 上写博客时,和 Markdown 素未谋面,和 Gitee 面面相觑,Typora 闻所未闻,PicGo 不知为何物……现在,它们皆是成为我工作生活中的一部分。目录一、编写工具MarkdownMarkdown:https://daringfireball.net/projects/markdown/Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档。在 2004.

2021-11-20 20:13:04 556

smarttool.rar

国密算法工具SmartTool_V1.3国密算法工具SmartTool_V1.3国密算法工具SmartTool_V1.3

2021-04-29

The Linux Command Line中英文合集.zip

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

2020-07-20

kotlin-in-chinese.pdf

Kotlin入门必备教程。简洁明了,方便新手快速了解Kotlin核心内容。 Kotlin入门必备教程。简洁明了,方便新手快速了解Kotlin核心内容。

2020-07-16

等保2.0初级.zip

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

2020-07-13

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

阿里巴巴《Java开发手册》泰山版

2020-04-23

class-dump-z.zip

class-dump-z.zip资源包分享,支持win/linux/mac/iphone等,

2019-12-03

PowerDesign12以及PDMReader

由于PDMReader对于PowerDesign高版本支持得并不好,使用PowerDesign16.5生成的pdm文件使用最高版本的PDMReader无法导入。根据个人测试,附件这两个版本是可以配合使用的,分享一下

2018-10-30

Oracel ODBC32位驱动

解决PowerDesign只支持32位oracel驱动问题

2018-10-30

nmap-7.40端口扫描工具

nmap-7.40端口扫描工具

2017-06-08

opencsv.jar

opencsv.jar包,方便进行数据的导入导出

2017-03-21

DrawerLayoutDemo

关于Android开发中的DrawerLayout和NavigationView的使用示例

2016-06-24

RecyclerView Demo

使用Android RecyclerView 的demo程序,与博文 http://blog.csdn.net/poorkick/article/details/51583833 配合使用

2016-06-04

RecyclerView使用Demo

RecyclerView使用Demo

2016-06-04

Android简易天气预报

Android简易天气预报,与http://blog.csdn.net/poorkick/article/details/51308646配合使用

2016-05-04

简易贪吃蛇

http://blog.csdn.net/poorkick/article/details/51203618 代码,简易贪吃蛇

2016-04-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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