其他
Android-kongqw
嵌入式安卓
展开
-
经验分享——工具类
最近工程抓取到了几个崩溃信息,查看了下抓取到的bug,都是工具类出现异常,以前写完工具类都要测试好多遍,不觉着工具类会出现什么问题,就没太在意,但是最近发现有好多奇葩设备,奇葩的自定义系统不按常规出牌,就是会有各种各样的问题。 工具类就是为其他方法提供方便使用的工具,那么最最重要的就是要保证工具自身好用,起码不能影响调用者。 下面总结几点Android下工具类需要具备的几点基本要原创 2016-01-25 12:08:53 · 983 阅读 · 1 评论 -
OpenCV实现图像阈值化
纯粹阅读,请移步OpenCV实现图像阈值化效果图源码KqwOpenCVBlurDemo阈值化是一种将我们想要在图像中分析的区域分割出来的方法。 我们把每个像素值都与一个预设的阈值做比较,再根据比较的结果调整像素值。类似这样Imgproc.threshold(src,src,100,255,Imgproc.THRESH_BINARY);其中100是阈值,255是最大值(纯白色的值)。常量 名称原创 2016-08-18 19:43:40 · 1466 阅读 · 0 评论 -
Android输出正弦波音频信号(左右声道对称)
转载请说明出处! 作者:kqw攻城狮 出处:个人站 | CSDN需求:左右声道分别输出不同的音频数据,波形要是一个正弦波,左右声道还要对称! 对硬件不是很了解,说是要通过音波避障。效果图之前已经介绍了如何在左右声道输出不同的音频数据。 那么这里主要介绍如何模拟出波形是正弦波的音频数据。模拟正弦波/** * 模拟正弦波音频数据 * @param isLeft 左右声道 * @return原创 2016-08-29 15:54:01 · 14062 阅读 · 2 评论 -
OpenCV高斯差分技术实现图像边缘检测
纯粹阅读,请移步OpenCV高斯差分技术实现图像边缘检测效果图源码KqwOpenCVFeaturesDemo边缘是图像中像素亮度变化明显的点。高斯差分算法步骤将图像转为灰度图像// 原图置灰Imgproc.cvtColor(src, grayMat, Imgproc.COLOR_BGR2GRAY);用两个不同的模糊半径对灰度图像执行高斯模糊(取得两幅高斯模糊图像)// 以两个不同的模糊半径原创 2016-08-19 12:09:21 · 4419 阅读 · 0 评论 -
OpenCV+JavaCV实现人脸识别
转载请说明出处! 作者:kqw攻城狮 出处:个人站 | CSDNOpenCV+JavaCV实现人脸识别OpenCV主要实现人脸检测功能JavaCV主要实现人脸对比功能具体的就不啰嗦了,本来最近很忙,主要是因为好多人私信我要 Android使用OpenCV实现「人脸检测」和「人脸识别」 的Demo,今天特意抽出时间写了一下。效果图源码KqwFaceDetectionDemo感觉有用的话,就给个st原创 2016-09-09 16:33:01 · 26478 阅读 · 19 评论 -
OpenCV使用Canny边缘检测器实现图像边缘检测
纯粹阅读,请移步OpenCV使用Canny边缘检测器实现图像边缘检测效果图源码KqwOpenCVFeaturesDemoCanny边缘检测器是一种被广泛使用的算法,并被认为是边缘检测最优的算法,该方法使用了比高斯差分算法更复杂的技巧,如多向灰度梯度和滞后阈值化。Canny边缘检测器算法基本步骤平滑图像:通过使用合适的模糊半径执行高斯模糊来减少图像内的噪声。计算图像的梯度:这里计算图像的梯度,并将原创 2016-08-19 17:18:47 · 9691 阅读 · 1 评论 -
OpenCV使用Sobel滤波器实现图像边缘检测
纯粹阅读,请移步OpenCV使用Sobel滤波器实现图像边缘检测效果图源码KqwOpenCVFeaturesDemoSobel滤波器也叫Sobel算子,与Canny边缘检测一样,需要计算像素的灰度梯度,只不过是换用另一种方式。使用Sobel算子计算边缘的步骤将图像转为灰度图像// 原图置灰Imgproc.cvtColor(src, grayMat, Imgproc.COLOR_BGR2GRAY)原创 2016-08-19 17:56:59 · 6411 阅读 · 0 评论 -
OpenCV使用Harris算法实现角点检测
纯粹阅读,请移步OpenCV使用Harris算法实现角点检测效果图源码KqwOpenCVFeaturesDemo角点是两条边缘的交点或者在局部邻域中有多个显著边缘方向的点。Harris角点检测是一种在角点检测中最常见的技术。Harris角点检测器在图像上使用滑动窗口计算亮度的变化。封装这里用到了RxJava。主要是因为图片处理是耗时操作,会阻塞线程,为了防止界面卡顿,这里使用RxJava进行了线程切原创 2016-08-19 19:55:14 · 2702 阅读 · 2 评论 -
OpenCV使用霍夫变换检测图像中的形状
霍夫变换是一种被广泛使用的利用数学等式的参数形式在图像中检测形状的技术。 例如直线、椭圆、圆等形状。霍夫变换可以检测任何能以参数形式表示的形状,随着形状的复杂(维数的增加,例如球体),计算的消耗也会增加。 我们通常考虑简单的霍夫形状,例如直线和圆。霍夫直线效果图步骤将图像置灰调用Imgproc.HoughLinesP(cannyEdges, lines, 1, Math.PI / 180,原创 2016-08-22 11:20:09 · 7909 阅读 · 0 评论 -
OpenCV检测图像轮廓
轮廓只不过是图像中连接的曲线,或者图像中连通部分的边界,轮廓通常以图像中的边缘来计算,但是,边缘和轮廓的区别在于轮廓是闭合的,而边缘可以是任意的。边缘的概念局限于点及其邻域像素,轮廓将目标作为整体进行处理。效果图源码KqwOpenCVFeaturesDemo步骤将图像置灰使用Canny边缘检测检测出图像的边缘调用Imgproc.findContours()方法检测图像轮廓在新的图像上画出轮廓原创 2016-08-22 11:53:18 · 3789 阅读 · 0 评论 -
环信即时通讯在Android平台的部署
官网环信下载SDK创建一个工程如果想要封装性好一点,也可以在工程里再创建一个环信的Library,然后将SDK里的jar和.so,都导入到工程清单文件下面是唤醒Library库里面的清单文件,包含了权限的设置、APPKEY的设置和服务的声明等。<manifest xmlns:android="http://schemas.android.com/apk/res/android" packag原创 2016-08-22 18:59:28 · 1175 阅读 · 0 评论 -
Android左右声道的控制
效果图源码源码下载,请先移步Android左右声道的控制我这里主要是用到了AudioTrack实现的左右声道的控制,手机一般都只有两个声道,即左声道和右声道,我们在输出的时候可以选择单声道,也可以选择双声道(立体声)。查看了AudioTrack的API,提供了play()、pause()、stop()、write()等一系列的方法。 通过write()方法,可以实现将音频数据发送出去(播放出来)。原创 2016-08-26 16:52:40 · 31430 阅读 · 3 评论 -
Android串口通信
Android串口通信 串口通信偏向嵌入式一点,是Android设备通过串口与其他设备进行通信的一种方式,本文介绍的Android纯串口的通信,并不是手机上的USB串口通信。 手机上是没有这个串口的哦。关于串口通信,Google已经给出了源码,地址在GitHub android-serialport-api四年前的代码,还是Eclipse工程,本文主要介绍如何在Android Studio中原创 2016-11-01 15:39:31 · 28862 阅读 · 10 评论 -
App启动优化最佳实践
转载请说明出处! 作者:kqw攻城狮 出处:个人站 | CSDN 看了医生写的文章一触即发——App启动优化最佳实践,收获是有的。做Android开发,一定写给过启动页,在这里做一些初始化的操作,还有就是显示推广信息。很普通的一个页面,以前测试也给我提出过bug,应用在启动的时候,有时候有白屏/黑屏。当时能做的就是尽量较少耗时操作,上面医生的文章里也有提到,但是通过主题的方式优化这个问题之原创 2016-11-14 18:45:46 · 1254 阅读 · 0 评论 -
Android使用DownloadManager实现文件下载
Android使用DownloadManager实现文件下载Android使用DownloadManager实现文件下载下载创建下载链接设置允许下载的网络环境Notification显示下载进度设置保存路径下载取消下载下载完成的监听Code下载广播接收者注册实现下载创建下载链接DownloadManager.Request request = new DownloadMa原创 2016-12-19 21:31:25 · 1579 阅读 · 0 评论 -
ADB笔记
Android Debug Bridge 本文以MAC OS为例ADB版本$ ./adb version如果出现$ ./adb version-bash: ./adb: No such file or directory说明你还没有配置环境变量你可以来到ADB的目录下再执行命令,目录在$ cd Library/Android/sdk/platform-tools/也可以自行google配置一原创 2017-03-21 15:52:17 · 1626 阅读 · 0 评论 -
Android使用OpenCV CamShift实现目标追踪
CamShift算法基于色值,适用于追踪颜色和背景差异较大的目标。原创 2017-05-11 11:28:35 · 3491 阅读 · 7 评论 -
OpenCV实现图像暗区扩张(腐蚀图片)
纯粹阅读,请移步OpenCV实现图像暗区扩张(腐蚀图片)效果图源码KqwOpenCVBlurDemo暗区扩张,也叫腐蚀,要实现这样的效果,我们可以选取一个合适大小的核,用被核覆盖的最小值代替锚点像素。我们首先定义一个合适大小的核Mat kernelErode = Imgproc.getStructuringElement(Imgproc.MORPH_ELLIPSE, new Size(5, 5));原创 2016-08-18 18:34:58 · 1664 阅读 · 0 评论 -
OpenCV中值模糊方法
纯粹阅读,请移步OpenCV中值模糊方法效果图源码KqwOpenCVBlurDemo步骤将获取到的Bitmap图片转成Mat对象// Bitmap转为MatMat src = new Mat(bitmap.getHeight(), bitmap.getWidth(), CvType.CV_8UC4);Utils.bitmapToMat(bitmap, src);调用OpenCV的中值模糊方原创 2016-08-18 15:58:52 · 2070 阅读 · 0 评论 -
Android 学习资料收集
Android 学习资料收集收集整理这份资料灵感来自于 trip_to_iOS, 征得同意引用了该资料的开头描述收集整理这份资料主要帮助初学者学习 Android 开发, 希望能快速帮助到他们快速入门, 找到适合自己学习资料, 节省再去收集学习资料时间.这份资料我会不断的更新完善, 同时也欢迎更多具有丰富经验的Android开发者将自己常用的工具、学习资料、学习心得等分享上来, 我将定期筛选合并转载 2016-03-09 15:01:08 · 2281 阅读 · 0 评论 -
GitHub Android Librarys Top 100 简介
GitHub Android Librarys Top 100 简介本项目主要对目前 GitHub 上排名前 100 的 Android 开源库进行简单的介绍, 至于排名完全是根据GitHub搜索Java语言选择 (Best Match) 得到的结果, 然后过滤了跟Android不相关的项目, 所以排名并不具备任何官方效力, 仅供参考学习, 方便初学者快速了解当前一些流行的Android开源库.转载 2016-03-09 15:04:50 · 2291 阅读 · 0 评论 -
Android进入商店并跳转到指定应用
Android进入商店并跳转到指定应用效果图对话框// 提示好评Dialog dialog = new AlertDialog.Builder(this) .setTitle("评价") .setMessage("大爷,给个好评吧~~") .setPositiveButton("准奏", new DialogInterface.OnClickList原创 2016-04-28 18:15:54 · 14736 阅读 · 1 评论 -
Working with System Permissions
Working with System Permissions——Android动态权限处理声明:本文属于译文,我看了一遍官方文档,读了一遍,把一些重复的没有什么意义的内容简单做了删减。———————————分割线—————————————为了保护系统的完整性和用户的隐私,安卓系统对每一个应用程序的都是有一定限制的。 如果应用程序想要使用它外部的资源或信息,该应用程序必须明确请求权限。 根据应用翻译 2016-04-21 17:34:28 · 1982 阅读 · 0 评论 -
Formatter
图片转载 2016-05-23 18:11:14 · 1181 阅读 · 0 评论 -
Android设备的唯一标识
Android设备的唯一标识IMEI权限<uses-permission android:name="android.permission.READ_PHONE_STATE" />获取IMEI/** * 获取IMEI * * @return IMEI */private String getIMEI() { try { TelephonyManager Teleph原创 2016-07-27 11:27:55 · 1068 阅读 · 0 评论 -
灵云语音唤醒
灵云语音唤醒严格来讲,灵云没有语音唤醒功能,但是通过命令词的方式可以实现实现方式用命令词的方式实现唤醒,用唤醒词做命令词,做好标识,然后循环开启命令词识别,当识别到唤醒的命令词的时候,视为被唤醒了。我个人认为这种方式实现唤醒意义不大,所以没有做demo,原因如下:录音都有前置端点时间1和后置端点时间2,这样一来,即使我们准确的说出唤醒词,也要在说完唤醒词以后,保证在后端点时间内不再有声音录入,才原创 2016-08-16 14:28:24 · 1689 阅读 · 0 评论 -
灵云语音合成
注册官网注册比较简单,就不做过多介绍了,注册万应用以后,在后台创建自己的应用,创建完应用以后需要给应用开通对应的语音能力。集成下载灵云SDK如果使用在线功能,下载对应的SDK,里面有jar包和so,就可以满足需求了。如果要使用离线的语音功能,还需要下载灵云资源文件源码GitHub灵云在线语音合成权限<uses-permission android:name="android.permission.I原创 2016-08-12 14:36:39 · 3024 阅读 · 0 评论 -
灵云语义理解
效果图源码GitHubSDK下载灵云SDK下载SDK集成下载SDK以后,将jar和so导入工程权限<uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permis原创 2016-08-15 12:08:29 · 2043 阅读 · 2 评论 -
灵云语音识别
源码GitHub在线语音识别SDK下载灵云SDK下载SDK集成下载SDK以后,将jar和so导入工程权限<uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-per原创 2016-08-15 16:31:15 · 3273 阅读 · 0 评论 -
灵云语法识别
源码GitHub在线语法识别SDK下载灵云SDK下载SDK集成下载SDK以后,将jar和so导入工程权限<uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-per原创 2016-08-16 13:23:54 · 2606 阅读 · 0 评论 -
OpenCV的部署
存粹阅读,请访问OpenCV的部署官网官网之前时间比较紧张,在网上找了很多文章,写了一个人脸识别的程序,也是模棱两可,今天开始抽时间系统学习一下OpenCV在Android上的使用。OpenCV版本后面用到的是OpenCV的2.4.11版本,据说新的3.x的版本和2.x的版本改动较大,2.x的版本学习完可以再看看与3.x版本的区别。毕竟老版本的学习资源更多一些。SDK我们下载完SDK以后,里面会有一原创 2016-08-17 18:02:18 · 1238 阅读 · 0 评论 -
OpenCV均值模糊方法
存粹越多,请访问OpenCV均值模糊方法效果图源码KqwOpenCVBlurDemo步骤将获取到的Bitmap图片转成Mat对象// Bitmap转为MatMat src = new Mat(bitmap.getHeight(), bitmap.getWidth(), CvType.CV_8UC4);Utils.bitmapToMat(bitmap, src);调用OpenCV的均值模糊方原创 2016-08-17 18:13:57 · 1753 阅读 · 0 评论 -
OpenCV高斯模糊方法
纯粹阅读,请移步OpenCV高斯模糊方法效果图源码KqwOpenCVBlurDemo步骤将获取到的Bitmap图片转成Mat对象// Bitmap转为MatMat src = new Mat(bitmap.getHeight(), bitmap.getWidth(), CvType.CV_8UC4);Utils.bitmapToMat(bitmap, src);调用OpenCV的高斯模糊方原创 2016-08-17 19:04:06 · 4659 阅读 · 0 评论 -
Android连接WIFI
效果图打开WIFI并获取WIFI列表连接到指定WIFI直接连接配置过的WIFI密码错误源码KqwWifiManagerDemoWIFI的获取、连接状态等等的信息,都是通过广播回调的.下面介绍了主要的方法,更多请查看KqwWifiManager注册广播接收者<!-- 监听网络状态的广播接收者 --><receiver android:name=".KqwWifiManager$NetworkBroa原创 2016-08-04 14:50:44 · 12717 阅读 · 2 评论 -
OpenCV实现图像亮区扩张
纯粹阅读,移步OpenCV实现图像亮区扩张效果图源码KqwOpenCVBlurDemo亮区扩张,也叫膨胀,要实现这样的效果,我们可以选取一个合适大小的核,用被核覆盖的最大值代替锚点像素。膨胀可以用来融合可能被分割的目标。我们首先定义一个合适大小的核Mat kernelDilate = Imgproc.getStructuringElement(Imgproc.MORPH_RECT, new Size原创 2016-08-18 18:06:29 · 1809 阅读 · 0 评论 -
OpenCV实现图片锐化
纯粹阅读,请移步OpenCV实现图片锐化效果图源码KqwOpenCVBlurDemo锐化也可以看作是一种线性滤波操作,并且锚点像素有较高的权重,而周围的像素权重较低。 因此,我们可以自定义一个这样的核。/* 自定义核 0 -1 0 -1 5 -1 0 -1 0 */Mat kernel = new Mat(3, 3, CvType.CV_16原创 2016-08-18 17:07:34 · 25640 阅读 · 0 评论 -
Android AES 加密、解密
AES加密介绍ASE 加密、解密的关键在于秘钥、只有使用加密时使用的秘钥,才可以解密。生成秘钥的代码网上一大堆,下面的代码可生成一个秘钥private SecretKey generateKey(String seed) throws Exception { // 获取秘钥生成器 KeyGenerator keyGenerator = KeyGenerator.ge...原创 2017-08-04 17:08:55 · 19021 阅读 · 2 评论