- 博客(38)
- 资源 (14)
- 收藏
- 关注
原创 Java使用OpenCV实现人脸识别/人眼检测/图片截取/合成/添加水印
官方下载opencv安装文件: http://opencv.org/releases.html,以windows版本为例,下载opencv-3.1.0.exe安装后,在build目录下 D:\opencv\opencv\build\java,获取opencv-310.jar,copy至项目opncv目录(需要新建)同时需要dll文件 与 各识别xml文件,进行不同特征的识别(人脸,侧脸,眼
2017-09-30 14:14:19 17958 8
原创 Java实现调用百度AI开放云平台(人脸识别API)
1.注册开发人员并查看官网API文档 网址:http://ai.baidu.com/docs2.在管理中心创建应用及查看相关参数 AppID APIKey SecretKey都需要保存起来3.测试 3.1、调用百度云人脸识别API需要两步1、首先根据创建的应用,获取token,该token有效期为1个月; token的授权服务地址
2017-09-29 13:30:00 19108 3
原创 Java使用OpenCV和Tesseract-OCR实现银行卡图片处理与卡号识别
直接上代码,代码每一步都是解释与插图,一步步实现,如果不清楚opencv的环境如何搭建,可上网查或者参见我的前几篇博客,不多说了, java代码如下:package com.zmx.opencvtest;import org.opencv.core.*;import org.opencv.imgcodecs.Imgcodecs;import org.opencv.imgproc.Im
2017-09-28 16:53:42 14664 14
翻译 java利用tesseract-OCR对图像进行字符识别
1.windows下的Tesseract-OCR安装Tesseract-OCR下载: http://pan.baidu.com/s/1miRU6EG 识别语言库: 官网地址: https://github.com/tesseract-ocr/langdata 或者网盘: http://pan.baidu.com/s/1kV18iov安装完后ocr后,将语言库文件
2017-09-28 15:12:57 14984 2
转载 Java开发Opencv之(二)读取与显示图片
上一篇介绍了Java版本的OpenCV环境配置以及第一个示例程序,在第一个示例程序中,只是使用了控制台输出的方式,打印图像mat对象的一些信息,没有使用GUI形式展示出来。而且程序的结构以及运行方式等也没有做详细的介绍。这篇文章就这些问题展开详细的说明,为了有直观的认识,先把这篇文章要实现的效果展现出来,如下图,换了一张大图来展示。 具体调用的方法如下就两行,new一个对象然后调用ims
2017-09-27 15:54:45 15118 1
转载 Java开发Opencv之(一)开发环境安装与配置
一、下载和安装所需的开发环境 使用Java开发程序,当然必不可少的自然是JDK了,关于JDK的安装和环境变量的配置在此不再啰嗦,相信你本地也早已安装好了,本文使用的是JDK1.8、Windows64位开发环境,其他环境暂时没有测试,但理论上应该都是可行的。 其次是编辑器的选择,在此还是推荐一下Idea,如果你是Java程序员,一定听说过,如果你是安卓开发者,那你更应该听说,Androi
2017-09-27 15:21:18 5159
转载 真正从零开始,TensorFlow详细安装入门图文教程
AI这个概念好像突然就火起来了,大比分战胜李世石的AlphaGo成功的吸引了大量的关注,但其实看看你的手机上的语音助手,相机上的人脸识别,今日头条上帮你自动筛选出来的新闻,还有各大音乐软件的歌曲“每日推荐”……形形色色的AI早已进入我们生活的方方面面。深刻的影响了着我们,可以说,这是一个AI的时代。其实早在去年年底,谷歌就开源了其用来制作AlphaGo的深度学习系统Tensorflow,相信有
2017-09-27 10:06:21 7810 1
转载 Java NIO读/写入文件
前言Java NIO(new/inputstream outputstream)使用通道、缓冲来操作流,所以要深刻理解这些概念,尤其是,缓冲中的数据结构(当前位置(position)、限制(limit)、容量(capacity)),这些知识点要通过写程序慢慢体会。NIO vs 传统IONIO是面向缓冲、通道的;传统IO面向流通道是双向的既可以写、也可以
2017-09-25 14:48:04 1783
转载 Thrift入门教程
1、概述Thrift是一个软件框架,用来进行可扩展且跨语言的服务的开发。它结合了功能强大的软件堆栈和代码生成引擎,以构建在 C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, JavaScript, Node.js, Smalltalk, and OCaml 等等编程语言间无缝结合的、高效的服务。Thrift最初由
2017-09-25 10:45:11 472
转载 log4j2实现自定义Appender(输出到文件/RPC服务中)
1、背景虽然log4j很强大,可以将日志输出到文件、DB、ES等。但是有时候确难免完全适合自己,此时我们就需要自定义Appender,使日志输出到指定的位置上。本文,将通过两个例子说明自定义APPender,一个是将日志写入文件中,另一个是将日志发送到远程Thrift服务中。本文代码详见:https://github.com/hawkingfoo/log-demo2、自定义文件Ap
2017-09-25 10:15:40 4870 3
转载 Java注解之@Inherited的使用
一、@Inherited @Inherited:允许子类继承父类的注解。 二、代码Java代码 @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Inherited public @interface DBTable {
2017-09-22 10:39:48 12179 1
转载 Javascript模块化编程及CommonJS和AMD规范浅析(二)
第一部分介绍了Javascript模块原型和理论概念,本文介绍如何将它们用于实战,我们采用的是一个非常流行的库require.js。一、为什么要用require.js?最早的时候,所有Javascript代码都写在一个文件里面,只要加载这一个文件就够了。后来,代码越来越多,一个文件不够了,必须分成多个文件,依次加载。下面的网页代码,相信很多人都见过。
2017-09-21 11:24:33 332
转载 Javascript模块化编程及CommonJS和AMD规范浅析(一)
随着网站逐渐变成"互联网应用程序",嵌入网页的Javascript代码越来越庞大,越来越复杂。网页越来越像桌面程序,需要一个团队分工协作、进度管理、单元测试等等......开发者不得不使用软件工程的方法,管理网页的业务逻辑。Javascript模块化编程,已经成为一个迫切的需求。理想情况下,开发者只需要实现核心的业务逻辑,其他都可以加载别人已经写好的模块。Javascript社区做了很多努力,在现
2017-09-21 11:15:05 367
原创 图片使用base64图片数据格式上传(后台使用springMVC)
一、前台JSP页面 文件上传 //通过FileReader.readAsDataURL获取base64数据 function uploadFile(file){ var f = document.getElementById("myImage").files[0]; var reader = new File
2017-09-20 11:21:39 15482 2
转载 将HTML5 Canvas的内容保存为图片
我们可能注意到网页上有些图片的src或css背景图片的url后面跟了一大串字符, 比如:data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAkCAYAAABIdFAMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAHhJREFUeNo8zjsOxCAMBF
2017-09-19 13:57:57 10217
转载 MySQL之权限管理(mysql.user表详解)
mysql.user表中Host为%的含义 Host列指定了允许用户登录所使用的IP,比如user=root Host=192.168.1.1。这里的意思就是说root用户只能通过192.168.1.1的客户端去访问。 而%是个通配符,如果Host=192.168.1.%,那么就表示只要是IP地址前缀为“192.168.1.”的客户端都可以连接。如果Host=%,表示所有IP都有连接
2017-09-19 09:43:57 53130 1
转载 MyBatis之整合Spring(Dao和Mapper两种方式)
1. 基础环境搭建 首先环境肯定得有,环境嘛,除了Java环境和开发环境外,那就是jar包咯,关于mybatis和spring整合的jar包,我已经上传到下载频道了==>传送门 将这些jar包导入到lib文件夹中即可,然后就是工程中的一些文件了,配置文件啊,java文件啊等,先看一下整个工程的结构。 下面来完成所有的整合步骤。 2. 配置文件 在
2017-09-18 17:34:22 7825 4
转载 MyBatis之配置实践
Configurationmybatis-configuration.xml是MyBatis的全局配置文件(文件名任意),其配置内容和顺序如下:properties : 属性(文件)加载/配置settings : 全局配置参数typeAliases : 定义类型别名typeHandlers : 类型处理器objectFactory : 对象工厂plugins : 插件environ
2017-09-18 09:53:38 531
转载 MyBatis缓存策略之二级缓存
1. 二级缓存的原理 前面介绍了,mybatis中的二级缓存是mapper级别的缓存,值得注意的是,不同的mapper通常情况下有不同的namespace,就都有一个二级缓存,也就是说,不同的mapper之间的二级缓存是互不影响的。为了更加清楚的描述二级缓存,先来看一个示意图: 从图中可以看出:sqlSession1去查询用户id为1的用户信息,查询到用户信息会
2017-09-15 15:35:15 20247 5
转载 MyBatis缓存策略之一级缓存
缓存的作用是减轻数据库的压力,提高数据库的性能的。mybatis中提供了一级缓存和二级缓存,先来看一下两个缓存的示意图: 从图中可以看出:一级缓存是SqlSession级别的缓存。在操作数据库时需要构造sqlSession对象,在对象中有一个数据结构(HashMap)用于存储缓存数据。不同的sqlSession之间的缓存数据区域(HashMap)是互相不影响的。二级缓存是
2017-09-15 15:04:12 475
转载 MyBatis之延迟加载
1. 什么是延迟加载 举个例子:如果查询订单并且关联查询用户信息。如果先查询订单信息即可满足要求,当我们需要查询用户信息时再查询用户信息。把对用户信息的按需去查询就是延迟加载。 所以延迟加载即先从单表查询、需要时再从关联表去关联查询,大大提高数据库性能,因为查询单表要比关联查询多张表速度要快。 我们来对比一下: 关联查询:SELECT o
2017-09-15 11:19:47 330
转载 MyBatis高级映射之多对多查询
本文来总结一下mybatis中的多对多映射,从第8节的文章中可以看出,用户表和商品表示多对多关系,它们两的多对多是通过订单项和订单明细这两张表所关联起来的,那么这一节主要来总结一下用户表和商品表之间的多对多映射。 首先在上一节的基础上继续写sql:SELECT orders.*, user.`username`, user.`sex`, user.`address`,
2017-09-14 11:48:03 404
转载 MyBatis高级映射之一对多查询
上一篇博文总结了一下一对一的映射,本文主要总结一下一对多的映射,从上一篇文章中的映射关系图中可知,订单项和订单明细是一对多的关系,所以本文主要来查询订单表,然后关联订单明细表,这样就有一对多的问题出来了。 首先还是先写sql语句,在写sql语句的时候遵循两点: 1、查询的主表是哪个? 订单表 2、查询的关联表是哪个? 订单明细表
2017-09-14 11:40:18 336
转载 MyBatis高级映射之一对一查询
从这一篇博文开始,将总结一下mybatis中的几个高级映射,即一对一、一对多、多对多查询,这篇先总结一下mybatis中的一对一查询。 为了模拟这些需求,事先要建立几个表,不同的表之间将对应上面提到的不同的映射,为此,我建立4个表,如下:DROP TABLE IF EXISTS `items`;DROP TABLE IF EXISTS `orders`;DROP TABLE IF
2017-09-14 11:15:21 476
翻译 解惑spring事务传播特性之嵌套事务
在所有使用 spring 的应用中, 声明式事务管理可能是使用率最高的功能了, 但是, 从我观察到的情况看, 绝大多数人并不能深刻理解事务声明中不同事务传播属性配置的的含义, 让我们来看一下 TransactionDefinition 接口中的定义 。Java代码 /** * Support a current transaction, cr
2017-09-14 10:35:47 15230 1
转载 Linux的iptables防火墙配置详解
高级讲述:http://www.zsythink.net/archives/1199iptables主要用来配置防火墙,具体的解释请参看上述高级讲述。其是一个需要特别谨慎设置的东西,万一服务器不在你身边,而你贸然设置导致无法SSH,那就等着傻眼吧。1.首先介绍一下指令和相关配置文件 启动指令:service iptables start 重启指令:servic
2017-09-13 13:58:48 986
转载 MyBatis中resultType和resultMap的区别
MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap,resultType是直接表示返回类型的(对应着我们的model对象中的实体),而resultMap则是对外部ResultMap的引用(提前定义了db和model之间的隐射key-->value关系),但是resultType跟resultMap不能同时存在。 在MyB
2017-09-11 09:31:08 7906 1
转载 MySql数据库导出csv文件
MySql数据库导出csv文件命令:mysql> select first_name,last_name,email from account into outfile 'e://output1.csv' fields terminated by ',' optionally enclosed by '' lines terminated by '/n';csv文件效果:
2017-09-08 11:27:14 2825
转载 flickr的全局主键生成方案
假设我们用户分库有 Shop_1/2/3/4 … 那么全局uid怎样生成?我们一般的做法是用一张索引表 Shop_share.user_index 取其自增主键,insert_id 便是uid。但缺点是,有单点负载的风险。 flickr提供了一个扩展的更好的方案: 他们把 user_index 抽出一个专门用作生成 uid 的表,例如取名叫 uid_sequence,并拆成
2017-09-08 09:51:05 585
转载 Mybatis传递多个参数的解决办法(三种)
第一种方案DAO层的函数方法[java] view plain copy print?Public User selectUser(String name,String area); Public User selectUser(String name,String area);对应的Mapper.xml[java]
2017-09-07 13:37:48 1154
转载 Maven使用maven-shade-plugin对java工程及其全部依赖打包可执行jar
采用 maven 来进行开发管理,有一个需求是需要把通过maven管理的 Java 工程打成可执行的 jar 包,这样也就是说必需把工程依赖的 jar 包也一起打包。而使用maven默认的package命令构建的jar包中只包括了工程自身的 class 文件,并没有包括依赖的 jar 包。 我们可以通过配置插件:maven-assembly-plugin (使用此插件会有一
2017-09-07 10:30:05 880
转载 关于分布式事务、两阶段提交、一阶段提交、Best Efforts 1PC模式和事务补偿机制的研究
1.XAXA是由X/Open组织提出的分布式事务的规范。XA规范主要定义了(全局)事务管理器(Transaction Manager)和(局部)资源管理器(Resource Manager)之间的接口。XA接口是双向的系统接口,在事务管理器(Transaction Manager)以及一个或多个资源管理器(Resource Manager)之间形成通信桥梁。XA之所以需要引入事
2017-09-06 11:37:30 413
转载 Java使用RSA加密解密签名及校验
由于项目要用到非对称加密解密签名校验什么的,于是参考《Java加密解密的艺术》写一个RSA进行加密解密签名及校验的Demo,代码很简单,特此分享!RSA加密解密类:[java] view plain copy print?package com.ihep; import java.io.BufferedReader; import java.
2017-09-06 10:28:24 885
转载 java锁机制:synchronized/lock(Condition)
1、synchronized把代码块声明为 synchronized,有两个重要后果,通常是指该代码具有原子性(atomicity)和 可见性(visibility)。1.1 原子性原子性意味着个时刻,只有一个线程能够执行一段代码,这段代码通过一个monitor object保护。从而防止多个线程在更新共享状态时相互冲突。1.2 可见性可见性则更为微妙,它要对付
2017-09-05 16:15:38 1020
转载 JAVA CAS原理深度分析
java.util.concurrent包完全建立在CAS之上的,没有CAS就不会有此包。可见CAS的重要性。CASCAS:Compare and Swap, 翻译成比较并交换。 java.util.concurrent包中借助CAS实现了区别于synchronouse同步锁的一种乐观锁。本文先从CAS的应用说起,再深入原理解析。 CAS应用CAS有3个操作数,
2017-09-05 13:30:24 327
转载 synchronized和lock的实现原理
目前在Java中存在两种锁机制:synchronized和Lock,Lock接口及其实现类是JDK5增加的内容,其作者是大名鼎鼎的并发专家Doug Lea。本文并不比较synchronized与Lock孰优孰劣,只是介绍二者的实现原理。数据同步需要依赖锁,那锁的同步又依赖谁?synchronized给出的答案是在软件层面依赖JVM,而Lock给出的方案是在硬件层面依赖特殊的CPU指令,大家
2017-09-05 10:51:42 2105 1
转载 并发容器之CopyOnWriteArrayList及与其他容器对比
一、 CopyOnWriteArrayList原理 Copy-On-Write简称COW,是一种用于程序设计中的优化策略。其基本思路是,从一开始大家都在共享同一个内容,当某个人想要修改这个内容的时候,才会真正把内容Copy出去形成一个新的内容然后再改,这是一种延时懒惰策略。从JDK1.5开始Java并发包里提供了两个使用CopyOnWrite机制实现的并发容器,它们是CopyOnWrit
2017-09-04 11:40:35 1349
转载 图解JVM内存结构及内存/栈溢出原因解析
一、背景知识1、JVM体系结构2、JVM运行时数据区3、JVM内存模型JVM运行时内存 = 共享内存区 + 线程内存区3-1、共享内存区共享内存区 = 持久带 + 堆持久带 = 方法区 + 其他堆 = Old Space + Young Space
2017-09-04 11:17:24 1231
Hibernate_Session_Transaction
2013-03-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人