- 博客(539)
- 资源 (25)
- 问答 (3)
- 收藏
- 关注
原创 opencv 10 -- 图像 颜色空间转换
颜色空间,常见的有三种模式:灰色图 BGR HSV备注:在opencv里面,BGR,这个顺序要注意的,常见的是RGB的称呼经常用到的 两种:BGR↔Gray 和 BGR↔HSV函数是:cv2.cvtColor(input_image ,flag), 其中 flag是转换类型对于 BGR↔Gray 的转换,使用的 flag 就是 cv2.COLOR_BGR2GRAY 对于...
2018-05-31 15:14:31
2979
原创 opencv 9 -- 轮廓 层次结构
轮廓之间的父子关系使用函数 cv2.findContours 来查找轮廓, 我们需要传入一个参数:轮廓提取模式(Contour_Retrieval_Mode)。 我们总是 把它设置为 cv2.RETR_LIST 或者是 cv2.RETR_TREE,效果还可以。 但是它们到底代表什么呢? 同时,我们得到的结果包含 3 个数组, 第一个图像,第二个是轮廓,第三个是层次结构。 但是我们从...
2018-05-22 14:43:10
3191
1
原创 opencv 9 -- 轮廓 其他操作
1 凸缺陷对象上的任何 凹陷 都被成为凸缺陷OpenCV 中有一个函数 cv.convexityDefect() 可以帮助我们找到凸缺陷。函数调用如下hull = cv2.convexHull(cnt,returnPoints = False)defects = cv2.convexityDefects(cnt,hull)注意:如果要查找凸缺陷,在使用函数 cv2.conve...
2018-05-21 15:19:59
814
原创 opencv 9 -- 轮廓 性质
1 长宽比边界矩形的宽高比x,y,w,h = cv2.boundingRect(cnt)aspect_ratio = float(w)/h2 Extent轮廓面积与边界矩形面积的比area = cv2.contourArea(cnt)x,y,w,h = cv2.boundingRect(cnt)rect_area = w*hextent = float(ar...
2018-05-21 15:10:14
584
1
原创 opencv 9 -- 轮廓 特征 三
1 最小外接圆函数 cv2.minEnclosingCircle() 可以帮我们找到一个对象的外切圆。 它是所有能够包括对象的圆中面积最小的一个(x,y),radius = cv2.minEnclosingCircle(cnt)center = (int(x),int(y))radius = int(radius)img = cv2.circle(img,center,radius...
2018-05-21 14:56:27
552
原创 opencv 9 -- 轮廓 特征 二
1 凸包凸包与轮廓近似相似,但不同,虽然有些情况下它们给出的结果是一样的。 函数 cv2.convexHull() 可以用来检测一个曲线是否具有凸性缺陷,并能纠 正缺陷。一般来说,凸性曲线总是凸出来的,至少是平的。如果有地方凹进去 了就被叫做凸性缺陷。例如下图中的手。红色曲线显示了手的凸包,凸性缺陷 被双箭头标出来了hull = cv2.convexHull(points[, hull...
2018-05-21 14:47:48
370
原创 opencv 9 -- 轮廓 特征 一
查找轮廓的不同特征,例如面积,周长,重心,边界框1 矩图像的矩可以帮助我们计算图像的质心,面积等函数 cv2.moments() 会将计算得到的矩以一个字典的形式返回cnt = contours[0]M = cv2.moments(cnt) print M结果:{'mu02': 185.57864792644978, 'mu03': -96.285208702...
2018-05-21 14:38:36
629
原创 opencv 9 -- 轮廓 近似方法
这是函数 cv2.findCountours() 的第三个参数。它到底代表什么意思呢?轮廓是一个形状具有相同灰度值的边界。 它会存贮形状边界上所有的 (x,y) 坐标。 但是需要将所有的这些边界点都存储吗? 这就是这 个参数要告诉函数 cv2.findContours 的这个参数如果被设置为 cv2.CHAIN_APPROX_NONE,所有的边界点都会被存储。 但是我们真的需要这么...
2018-05-21 14:26:37
2794
1
原创 opencv 9 -- 轮廓 找 和 画
1 什么是轮廓轮廓可以简单认为成将连续的点(连着边界)连在一起的曲线,具有相同的颜色或者灰度。 轮廓在形状分析和物体的检测和识别中很有用–为了更加准确,要使用二值化图像。 –在寻找轮廓之前,要进行阈值化处理或者 Canny 边界检测 –查找轮廓的函数会修改原始图像 –如果你在找到轮廓之后还想使用原始图像的话,你应该将原始图像存储到其他变量中 –在 OpenCV 中,查找轮廓就像在...
2018-05-21 14:20:34
572
原创 opencv 8 --背景减除 -- BackgroundSubtractorMOG2
在很多基础应用中背景检出都是一个非常重要的步骤。例如顾客统计,使用一个静态摄像头来记录进入和离开房间的人数;或者是交通摄像头,需要提取交通工具的信息等。在所有的这些例子中,首先要将人或车单独提取出来。 技术上来说,我们需要从静止的背景中提取移动的前景如果你有一张背景(仅有背景不含前景)图像,比如没有顾客的房间,没有交通工具的道路等,那就好办了。我们只需要在新的图像中减去背景就可以得...
2018-05-21 11:29:17
13258
2
原创 opencv 7 -- 边界矩形
有两类边界矩形 一、直边界矩形—boundingRect()一个直矩形(就是没有旋转的矩形)。它不会考虑对象是否旋转。 所以边界矩形的面积不是最小的。 可以使用函数 cv2.boundingRect() 查找得到(x,y)为矩形左上角的坐标,(w,h)是矩形的宽和高x,y,w,h = cv2.boundingRect(cnt)cv2.boundingRect()接收的...
2018-05-21 10:38:25
1612
原创 opencv 6 --cv2.absdiff
absdiff 获取差分图 就是将两幅图像作差两张图片进行对比,返回的结果代表他们的差异之处一般用在 比较与背景图的差异diff = cv2.absdiff(background, gray_lwpCV)两个图片相减,这里用的是灰度图,类型是uint8在 OpenCV单通道使用的数据类型是 uint8,两个uint8的数相减得不到负数,会得到差的补码...
2018-05-21 10:03:10
20426
原创 opencv 5 -- 图像阈值
这章将说,二值化的问题将图像黑白化,是很多图像处理技术的必要一步目的:使得图像的像素值更单一、图像更简单阈值可以分为全局性质的阈值,也可以分为局部性质的阈值,可以是单阈值的也可以是多阈值的一、简单阈值–cv2.threshhold()像素值高于阈值时,我们给这个像素 赋予一个新值(可能是白色),否则我们给它赋予另外一种颜色(也许是黑色)。 这个函数就是 cv2.thresh...
2018-05-20 00:04:41
484
原创 opencv 4 -- 图像平滑与滤波
一、blur—图像均值平滑滤波简称 平均滤波这是由一个归一化卷积框完成的。 他只是用卷积框覆盖区域所有像素的平 均值来代替中心元素可以使用函数 cv2.blur() 和 cv2.boxFilter() 来完 这个任务import cv2import numpy as npfrom matplotlib import pyplot as pltimg = cv2.imr...
2018-05-19 17:53:27
637
原创 opencv 4 -- 图像平滑与滤波--核心卷积操作
opencv提供了四种低通滤波方式,基本原理是一致的,基本都是用 卷积核 进行处理什么叫卷积核?前面形态学处理章节,已经谈到核,基本思想跟深度学习网络中卷积层的那个核是一样的核从代码层面来讲,就是一个矩阵,一个表示大小范围的矩阵核,可以认为是过滤器,可以认为是一个窗口, 它通过不停的在画面上滑动,与原图相同的范围做卷积运算, 将计算结果替换掉原图对应区域的中心位置的值重复这...
2018-05-19 17:26:09
1326
原创 opencv 4 -- 图像平滑与滤波--理论解释
滤波的作用是什么?一般可以对图像进行低通滤波、高通滤波 低通滤波:帮助我们去除噪音,模糊图像 高通滤波:帮助我们找到图像的边缘每个输入的图片或者视频帧都会因自然震动、光照变化或者摄像头本身等原因而产生噪声 对噪声进行平滑是为了避免在运动和跟踪时将其检测出来这就是为什么要做图像的平滑以及滤波处理opencv提供的滤波,最主要的作用就是帮助我们做模糊处理 都是低通滤波模糊图...
2018-05-19 16:54:54
623
原创 opencv 3 -- waitKey()函数
函数功能: waitKey()函数的功能是不断刷新图像,频率时间为delay,单位为ms 返回值为当前键盘按键值1、waitKey()–是在一个给定的时间内(单位ms)等待用户按键触发; 如果用户没有按下键,则接续等待(循环)常见:设置waitKey(0),则表示程序会无限制的等待用户的按键事件一般在imgshow的时候,如果设置waitKey(0),代表按任意键继续2.显示...
2018-05-19 16:32:30
16737
1
原创 opencv 2 -- 形态学处理
原图展示 一、 图像腐蚀 图像腐蚀: 卷积核沿着图像滑动,如果与卷积核对应的原图 像的所有像素值都是 1,那么中心元素就保持原来的像素值,否则就变为零。根据卷积核的大小靠近前景的所有像素都会被腐蚀 掉(变为 0),所以前景物体会变小,整幅图像的白色区域会减少。这对于去除 白噪声很有用import cv2import numpy as npimg = cv2.imread('...
2018-05-19 16:11:30
465
原创 opencv 1-- getStructuringElement函数
getStructuringElement函数—获取结构化元素 形态学处理形态学操作,例如腐蚀,膨胀,开运算,闭运算等形态学操作是根据图像形状进行的简单操作 一般情况下对二值化图像进行的操作。需要输入两个参数: 一个是原始图像, 一个被称为结构化元素或核,它是用来决定操作的性质的OpenCV 函数 cv2.getStructuringElement()用户:e...
2018-05-19 15:16:38
17039
原创 神经网络速记概念解释
首先简要解释下网络过程: 1、将输入图像传递到第一个卷积层中,卷积后以激活图形式输出。 图片在卷积层中过滤后的特征会被输出,并传递下去 2、每个过滤器都会给出不同的特征,以帮助进行正确的类预测。 因为需要保证图像大小的一致,所以使用同样的填充(零填充), 否则填充会被使用,因为它可以帮助减少特征的数量 零填充,可以理解为特征稀疏化,留下来的特征更能代...
2018-04-24 17:08:48
1023
原创 keras量化分析之路(1)--获取历史交易数据
tushare提供方法,方便获取某只股票的历史交易数据方法名称:get_hist_data1。获取某只股票全部交易数据import tushare as tsts.get_hist_data('600848') #一次性获取全部日k线数据输出结果:是一个DataFrame结构的数据,index就是交易日期,也就是每个交易日 共有15列;说明如下:date:日期 —...
2018-04-22 22:20:05
3164
原创 keras量化分析之路(1)--DataFrame格式数据
写在开头: 今天正是开始量化之路,选择keras+tushare这两个好东西股票最重要的是价格,预测价格走势是最终目的 量化分析就是通过深度学习、神经网络达到自动预测价格的目的交易流水,即交易数据,获取他们可以用tushare每个交易数据必须有一个格式,DataFrame格式数据今天学习这个格式DataFrame格式数据说明: Pandas.DataFrame数据...
2018-04-22 22:00:02
4262
原创 Android 相机拍照,resultCode一直是0,不是-1的问题
最简单的坚决办法:先去创建文件夹路径,再去设置uri完美解决权限问题当然前提是target设置小于23;
2018-01-16 09:51:57
4408
2
转载 Gradle transitive = true
transitive = truetransitive dependencies 被称为依赖的依赖,称为“间接依赖”比较合适。compile('com.meituan.android.terminus:library:6.6.1.16@aar'){ transitive = true exclude module: 'hotel_model' excl
2017-10-24 09:54:33
14328
转载 lintOptions
android { lintOptions { // true--关闭lint报告的分析进度 quiet true // true--错误发生后停止gradle构建 abortOnError false // true--只报告error ignoreWarnings true /
2017-10-18 09:51:42
1114
原创 欢迎使用优快云-markdown编辑器
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl
2017-10-18 09:47:22
341
原创 Duplicate files copied in APK META-INF/
Error:Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'.> com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileException: Duplicat
2017-10-17 15:22:00
345
原创 javax.crypto.BadPaddingException: error:0407106B:rsa routines:RSA_padding_check_PKCS1_type_2:block t
RSA超过长度时报这个错,解决方法是 加密使用117 解密使用128 public static byte[] encryptByPublicKey(byte[] data, PublicKey publicKey){ int MAX_ENCRYPT_BLOCK = 117; try { Cipher cipher = Cipher.getInstance(CIPH
2017-06-02 10:32:49
11006
1
原创 EventBus : No subscribers registered for event class
EventBus不适合向一个不存在于activity栈中的activity发送消息,这样是失败的,例如:情况1:一个activity 还没有生成,就post,肯定报这样的错;情况2:一个activity曾经生成了,但是不在activity栈中了,也是收不到消息的
2017-02-24 13:39:45
15915
原创 多媒体格式
视频格式MP4 格式是一种新的即将普及的因特网视频格式。HTML5 、Flash 播放器以及优酷等视频网站均支持它。格式文件描述AVI.aviAVI (Audio Video Interleave) 格式是由微软开发的。所有运行 Windows 的计算机都支持 AVI 格式。它是因特网上很常见的格式,但非 Windows
2017-01-07 15:54:39
443
转载 adb 查看最上层成activity名字
linux:adb shell dumpsys activity | grep "mFocusedActivity"windows:adb shell dumpsys activity | findstr "mFocusedActivity"
2016-08-23 23:28:18
602
转载 win7 安装JDK7和JDK8 恶心的问题
这是本人学习Java过程中遇到的一些问题和解决方法,在此记录,方便本人查看,解决他人疑惑。本人win7 x64旗舰版,同时安装了JDK7和JDK8,卸载了JDK8之后,cmd命令行输入:java -version ,本以为显示java版本1.7,结果弹错:has value '1.7',but '1.8' is required.我查看JAVA_HOME,环
2016-08-23 11:20:47
3420
转载 实习杂记(33):surfaceTexture 和 surfaceview 的区别
为什么用surfaceTexture不用surface来展示呢?ICS之前都用的是surfaceview来展示video或者openGL的内容,surfacaview render在surface上,textureview render在surfaceTexture,textureview和surfaceview 这两者有什么区别呢?surfacevie
2016-08-13 23:51:08
1418
原创 实习杂记(32):getApplicationInfo或者getPackageManger出错
发生这种错误原因第一个是:binder通信getPackageManger 是通过binder通信的,最大通信是1M,而且这个binder通信是系统整个的,也就是当前整个手机APP所有应用同一个时刻,或者同一个时间内 进行通信 超过了IM,就会报:RuntimeException 和 RomatoException 这里大家想的办法是同步,不能一
2016-08-12 17:16:25
7917
原创 实习杂记(32):怎么查看android真机的各种包和权限列表
这个需求是我们某个功能需要用到一个系统权限,需要把所有的厂商的机子对应的权限都拿到因为手机厂商ROM了之后,有些权限是自己的包名,这个很烦的,就拿OPPO手机的这个权限:com.oppo.launcher.permission.READ_SETTINGS其他的手机也都是这样的,目前知道的至少23种,这个时候快速查看相应的权限是哪些 使用
2016-08-10 23:13:31
554
转载 实习杂记(31):android多dex方案四
下面这篇文章是android开发者上的,不好意思让我看到了,先转载收藏下,腾讯弃用了Google的multiDEX方案,美团和金山的方案好像是一样的,是Google,但是应该都是打破了父类委托机制开发者频道:http://geek.youkuaiyun.com/news/detail/93697本文为腾讯 Bugly 投稿,作者:李庆文,原文地址:http://dev.qq
2016-08-10 22:54:19
641
转载 实习杂记(31):android多dex方案三
美团Android DEX自动拆包及动态加载简介地址:http://tech.meituan.com/mt-android-auto-split-dex.html概述作为一个android开发者,在开发应用时,随着业务规模发展到一定程度,不断地加入新功能、添加新的类库,代码在急剧的膨胀,相应的apk包的大小也急剧增加, 那么终有一天,你会不幸遇到这个错误:生
2016-08-10 12:11:50
633
原创 实习杂记(31):android多dex方案二
这一章是在继续学习android多dex之前必须要准备的知识作为一个android开发者,在开发应用时,随着业务规模发展到一定程度,不断地加入新功能、添加新的类库,代码在急剧的膨胀,相应的apk包的大小也急剧增加, 那么终有一天,你会不幸遇到这个错误:生成的apk在android 2.3或之前的机器上无法安装,提示INSTALL_FAILED_DEXOPT方法数量过多,
2016-08-10 12:08:15
763
原创 实习杂记(31):android多dex方案一
Android默认的ClassLoader- 最顶端是`BootClassLoader` BootClassLoader源码如下:/** * Provides an explicit representation of the boot class loader. It sits at the * head of the class loader chain
2016-08-08 23:16:16
912
转载 实习杂记(30):虚拟机类的加载机制(4)
转载地址:http://blog.youkuaiyun.com/zhoudaxia/article/details/358242493 java程序动态扩展方式 Java的连接模型允许用户运行时扩展引用程序,既可以通过当前虚拟机中预定义的加载器加载编译时已知的类或者接口,又允许用户自行定义类装载器,在运行时动态扩展用户的程序。通过用户自定义的类装载器,你的程序可以装载在编译时并不知道或者尚未
2016-08-07 23:55:03
511
2
RecyclerView 需要的动画资源
2015-11-16
Android 贝塞尔曲线 实例源码
2014-11-07
activity切换特效
2014-11-06
android gif模式和图片展现模式 图片展现神器
2014-11-04
android OptionsMenu--利用xml实现源码
2014-11-01
android城市列表特效-触摸查找源码
2014-10-30
jquery.min.js
2014-10-13
Jama-1.0.1.jar包下载
2014-10-11
java 开发相当齐全的第三方包
2014-07-12
点九图,为什么只能是黑色的,或者纯色的,被面试官问了这个问题
2016-03-23
java转码问题 把一串字符串转换为汉字
2014-12-02
360浏览器复制文本特效 JS怎么实现
2014-09-15
TA创建的收藏夹 TA关注的收藏夹
TA关注的人