2004毕业于山东大学齐鲁软件学院,软件工程专业。主要专注于图像处理算法学习与研究,计算机视觉技术开发应用,深度学习在计算机视觉领域应用。两本书籍《Java数字图像处理-编程技巧与应用实践》、《OpenCV On Android编程实践》作者
Android端通过HttpURLConnection上传文件到服务器 一:实现原理 最近在做Android客户端的应用开发,涉及到要把图片上传到后台服务器中,自己选择了做Spring3 MVC HTTP API作为后台上传接口,android客户端我选择用HttpURLConnection来通...
Android中使用HttpURLConnection实现GET POST JSON数据与下载图片 Android6.0中把Apache HTTP Client所有的包与类都标记为deprecated不再建议使用 所有跟HTTP相关的数据请求与提交操作都通过HttpURLConnection类实...
他山之石、可以攻玉- 我的2015年总结 本来打算年前写个总结的,没办法最近事情比较多,拖到年后了,2015年自己经历事情 真的是挺多的,无论在工作还是生活还是工作,个人发展方面都有一些新的变换。
关于《Java数字图像处理-编程技巧与应用实践》一书 源代码 本书所有的源代码我已经整理上传到华章图书的官方网站与 我自己的GITHUB上,本人GITHUB的地址如下: https://github.com/gloomyfish/mybook-java-imageprocess/wiki 或者点击【图书配套源代码下载】即可跳转到代码Github上 其中书中的多数内容在本人的博客专栏上面有覆盖,但是不完全 是博客内容的翻版,阅读本人博客想找可以运行源代码的读者 可以到github上自己下载,如果发现有任何源代码错误,请给我 发邮件或者留言,本人感激不尽。
一:基本思路 对于一张RGB色彩空间的彩色图像,很多时间我们想通过程序获得该图像有几种主要的色彩,但是对一般图像来说,在色彩交界处都是通过像素混合来实现自然过渡,所以直接扫描图像的像素值,得到的不同颜色值可能多达上百中,而实际上图像可能只有3~4种的主要色彩,如何去掉那些混合颜色,准确提取出来这...
Hibernate中使用@Lob 注解保存String[] 问题 在Hibernate注解中如何你想保存一个字段为String数组类型,如果你想尝试保存为clob类型的话,一般情况下为定义为: @Entity Public class Person { … @Lob String[] stringArray; ….
最近一直在做安卓开发,发现Tab布局可以用FragmentTabHost来实现,唯一不好的就是不能实现带图标的tabindicator, V4版本中的虽然API有支持,但是无论怎么设置Drawable对象都不起作用,所以被逼无赖,发现indicator可以支持传进一个View做tabtitle,于是经过一番各种坑之后,我做了一个自定义的Tab indicator,可以实现切换提示、显示带图标的tabtitle,同时支持滑动切换到不同Tab。
Android上在两个Activity之间传递Bitmap对象 因为我做Android应用的时间不长,所以当我第一次在android之间传递Bitmap对象的时候我直接用了Intent.putExtra的方法实现了,当时我选择的是一张图像的ROI区域,所以工作的很好,但是当我尝试将整个图片做为B...
Apache HttpClient调用Spring3 MVC Restful Web API演示 使用HttpRequest提交数据与HttpResponse响应客户端都是支持json数据格式,实现在HTTP Client端调用Spring3 MVC Restful API例子。
imageJ二次开发之旅 – imageJ开源项目介绍 imageJ起源: imageJ项目最初是由NIH(NationalInstitutes of Health,美国国家卫生研究院)在1997发起的,其目的是提供一个跨平台、高效、稳定可运行的Java图像处理工具。
Java语言中反射动态代理接口的解释与演示 Java在JDK1.3的时候引入了动态代理机制、可以运用在框架编程与平台编程时候捕获事件、审核数据、日志等功能实现,首先看一下设计模式的UML图解: 当你调用一个接口API时候,实际实现类继承该接口,调用时候经过proxy实现。
最近在搞一个WEB项目,以前在公司做项目用的都是JPA做ORM持久层,这次这个项目是我自己接的,我决定改一下,用Hibernate3来做ORM持久层、于是我网上搜索了Hibernate3怎么配置集成到Spring3 MVC上,发现千奇百怪,而且很多都是不是基于注解方式配置,显然那些文字上面的配置方式已经跟如今的Hibernate3注解支持方式脱节了,于是我决定自己搞一把,首先说一下网上那些配置方式的不好的地方,很多文章都提到要jdbc.properties文件与Hibernate config文件,其实是如今基于注解,完全没有必要。
使用CAS登录模块连接应用数据库验证用户合法性 关于如何配置CAS登录模块集成到开发的Web Application请看这里: http://blog.csdn.net/jia20003/article/details/49683827 基于cas server 3.5.0版本配置实现。
一:安装下载与CAS工作原理 关于版本问题: Java客户端 :3.1.11 CASServer版本:3.5.0版本 使用的Tomcat版本是7.0的 下载地址http://developer.jasig.
一基本实现思路:基于View类实现自定义View –MyImageView类。在使用View的Activity类中完成OnTouchListener接口,实现对MotionEvent事件的监听与处理,常见的MotionEvent事件如下: ACTION_DOWN事件,记录平移开始点ACTION_UP事件,结束平移事件处理ACTION_MOVE事件,记录平移点,计算与开始点距离,实现Bitmap平移,在多点触控时候,计算两点之间的距离,实现图像放大ACTION_POINTER_DOWN事件,计算两点之间的距离,作为初始距离,实现图像手势放大时候使用。
一:基本原理 NCC是一种基于统计学计算两组样本数据相关性的算法,其取值范围为[-1, 1]之间,而对图像来说,每个像素点都可以看出是RGB数值,这样整幅图像就可以看成是一个样本数据的集合,如果它有一个子集与另外一个样本数据相互匹配则它的ncc值为1,表示相关性很高,如果是-1则表示完全不相关,...
一:概述 作为HTML5新特性之一的WebSocket组件,在实时性有一定要求的WEB应用开发中还是有一定用武之地,高版本的IE、Chrome、FF浏览器都支持Websocket,标准的Websocket通信是基于RFC6455实现服务器端与客户端握手与消息接发的。
Android Bitmap 加载与像素操作 一:加载与像素读写 在Android SDK中,图像的像素读写可以通过getPixel与setPixel两个Bitmap的API实现。
大概是四月底的时候,有人加我QQ问我是否做能做一些基于图像皮肤检测的算法, 主要是实现对皮肤六项指标: 1. 水分 2. 有份 3. 痤疮与痘痘 4. 色斑与肤色 5.
一:原理 根据输入参数blockSize的大小,将图像分块,决定每块的中心通过该像素块内所有 像素之和的均值与该块内部每个像素比较,RGB值之间几何距离最小为新的中心,迭 代更新运算,直到达到输入参数声明的最大循环次数为止,然后输出结果图像即可。
图像处理之基于Otsu阈值实现图像二值化 一:基本原理 该方法是图像二值化处理常见方法之一,在Matlab与OpenCV中均有实现。 Otsu Threshing方法是一种基于寻找合适阈值实现二值化的方法,其最重 要的部分是寻找图像二值化阈值,然后根据阈值将图像分为前景(白色) 或者背景(黑色)。
图像处理之倒角距离变换 图像处理中的倒角距离变换(Chamfer Distance Transform)在对象匹配识别中经常用到, 算法基本上是基于3x3的窗口来生成每个像素的距离值,分为两步完成距离变换,第一 步从左上角开始,从左向右、从上到下移动窗口扫描每个像素,检测在中心像素x的周 围0、1、2、3四个像素,保存最小距离与位置作为结果,图示如下: 第二步从底向上、从右向左,对每个像素,检测相邻像素4、5、6、7保存最小距离与 位置作为结果,如图示所: 完成这两步以后,得到的结果输出即为倒角距离变换的结果。
图像处理之Canny 边缘检测 一:历史 Canny边缘检测算法是1986年有John F. Canny开发出来一种基于图像梯度计算的边缘 检测算法,同时Canny本人对计算图像边缘提取学科的发展也是做出了很多的贡献。
图像处理之三种常见双立方插值算法 双立方插值计算涉及到16个像素点,其中(i’, j’)表示待计算像素点在源图像中的包含 小数部分的像素坐标,dx表示X方向的小数坐标,dy表示Y方向的小数坐标。具体 可以看下图: 根据上述图示与双立方插值的数学表达式可以看出,双立方插值本质上图像16个像素点 权重卷积之和作为新的像素值。
图像处理之错切变换 一:基本数学知识: 图像错切变换在图像几何形变方面非常有用,常见的错切变换分为X方向与Y方向的 错切变换。对应的数学矩阵分别如下: 根据上述矩阵假设P(x1, y1)为错切变换之前的像素点,则错切变换以后对应的像素 P’(x2, y2)当X方向错切变换时: 当Y方向错切变换时: 二:程序实现基本思路 实现图像错切变换时,必须考虑图像将目标像素点坐标变为源相点坐标时小数部分对 像素值的影响,这里通过临近点插值算法实现了目标像素值的计算。
准备工作-下载最新版本的JMail https://java.net/projects/javamail/pages/Home#Download_JavaMail_1.5.2_Release http://www.oracle.com/technetwork/java/javase/downloads/index-135046.html 在android上发送邮件方式: 第一种:借助GMail APP客户端,缺点是必须使用GMail帐号,有点是比较方便 不需要写很多代码,但是不是很灵活。
数据分析之独立样本的T-Test分析 比较两个独立样本数据之间是否有显著性差异,将实验数据与标准数据对比,查看 实验结果是否符合预期。T-Test在生物数据分析,实验数据效果验证中很常见的数 据处理方法。
图像处理之基于图的广度优先搜索组件标记算法 一:图的遍历与广度优先搜索算法 图的遍历算法最常用是广度优先搜索算法(BFS)与深度优先搜索算法(DFS),从一个的 节点开始,访问相邻的所有子节点,接着从这些子节点出发访问下个相邻子节点,如 此重复直到所有节点都被访问。
该协议主要是阐述如何利用HTTP Cookie与SetCookie头字段来实现对HTTP Request 状态的跟踪与管理,这个在用户行为分析,登录系统设计等方法有着很重要的应用。对 于大多数现代的浏览器都支持RFC6265. 基本原理: RFC6265阐述通过设置SetCookie不同值在HTTPResponse中,来告诉浏览器客户端在 接下来的每次请求Request Header中都带上Response中指定的值与行为。
朋友给了我点东西,我就想把它用Maven重新搞一下,不要ant啦。 看到它的spring dispatch servlet url mapping 是根据*.do来做的 我不习惯就为了*.html然后其它都搞了过来,tomcat一跑发现一个 第一个错误: 于是我在对应的sprin...
Hilbert空间填充曲线在图像采样等方面十分有用关于什么希尔伯特 空间填充曲线看这里:http://en.wikipedia.org/wiki/Hilbert_curve 程序效果: 模拟Hilbert空间填充曲线效果,点击鼠标自动叠加!运行效果截图 Hilbert源程序代码: package com.
基于像素权重实现图像的像素模糊从而达到近似油画效果模糊 其实卷积的变种,不是基于Stroke维诺图算法与采样moment算法 模拟实现。不想跟多的废话了,先看效果: 说实话,货是干货,但是不想再多写罗嗦话,自己看代码吧!滤镜代码: package com.
图像处理之计算连通区域的角度方向 一:基本原理 基于空间Moment算法在图像处理与分析中寻找连通区域计算连通区域的中心与角度方 向Moment的一阶可以用来计算区域的中心质点,二阶可以用来证明图像的几个不变性 如旋转不变行,放缩不变性等。
JAVA Swing中JScrollPanle自定义带标尺的JScrollPanel Swing中JScrollPanel的结构与组成如下图: 分为四个角与四个边,中间蓝色矩形为View窗口,可以通过调用JScrollPanel的 getViewport().setView(view)完成对现实内容的设置。
图像处理之Lanczos采样放缩算法 一:什么是Lanczos采样 参见这里:http://en.wikipedia.org/wiki/Lanczos_resampling 二:大致算法流程 三:算法运行结果 1.
我的2013 - 平凡中寻找出路 2013年的最后一天,看着卫视的跨年晚会.做在沙发上梳理了自己这一年的得与失,苦与甜 回头看看自己这一年,真的没做过什么让自己感觉特有成绩特自豪的事情.
图像处理之基于采样距离变换算法 算法是别人提出来的,感兴趣可以搜索《Distance Transforms of Sampled Functions》 这篇论文,网上也有很多实现的代码,但是结构不是很好,而且很分散不是一个完整的 算法。
图像处理之计算二值连通区域的质心 一:几何距(Geometric Moments)知识与质心寻找原理 1. Image Moments是图像处理中非常有用的算法,可以用来计算区域图像 的质心,方向等几何特性,同时Mpq的高阶具有旋转不变性,可以用来 实现图像比较分类,正是因为Moments有这些特性,很多手绘油画效果 也会基于该算法来模拟实现。
个人作品-微信服务号菜单管理神器 一不小心玩了玩微信公共账户的API,一发不可收拾,发现微信公共账户应用特别广泛, 在开发者模式下支持自定义菜单功能,网络上也有很多创建自定义菜单的代码示例,但 是缺点很明显-多数的示例代码都无法通过运行,很多都无法支持普通用户手动配置需求 所见即所得.所以我利用业余时间开发了一个基于JAVASwing的微信服务号菜单管理桌面 小工具,帮助大多数开发者或者微信推广者更好的使用微信服务,推广自己产品与服务。
图像处理之霍夫变换圆检测算法 之前写过一篇文章讲述霍夫变换原理与利用霍夫变换检测直线, 结果发现访问量还是蛮 多,有点超出我的意料,很多人都留言说代码写得不好,没有注释,结构也不是很清晰,所以 我萌发了再写一篇,介绍霍夫变换圆检测算法,同时也尽量的加上详细的注释,介绍代码 结构.
很多购物网站现在都支持360实物全景图像,可以360度任意选择查看样品,这样 对购买者来说是一个很好的消费体验,网上有很多这样的插件都是基于JQuery实现的 有收费的也有免费的,其实很好用的一个叫3deye.js的插件。
JAVA Socket 实现HTTP与HTTPS客户端发送POST与GET方式请求 哇,一看标题怎么这么长啊,其实意思很简单,哥讨厌用HTTP Client做POST与GET提交 觉得那个毕竟是别人写得API库,所以我就自己实现了一个简单的HTTP客户端,支持POST 方式提交数据...
图像处理之角点检测算法(Harris Corner Detection) Harris角点检测是通过数学计算在图像上发现角点特征的一种算法,而且其具有旋转不 变性的特质。OpenCV中的Shi-Tomasi角点检测就是基于Harris角点检测改进算法。
一:大致的算法流程 1. 对每个像素点计算图像在X方向Y方向的二阶偏导数,计算图像的XY方向的导数 2. 根据第一步的计算结果,有Hessian Matrix计算D(h) = Ixx*Iyy - Ixy*Ixy 其中Ixx表示X方向的二阶偏导数 Iyy表示Y方向的二阶偏导数 Ixy表XY方向的二阶导数 3.
Oracle数据库默认数据库监听与连接端口是1521, 但是有时候项目中需要更改默认端口 这样做很多时候客户要求,基于安全考虑. 以Oracle 11g 为例, 更改Listener的端口大致 需要以下几步: 1.
图像处理之高斯一阶及二阶导数计算 图像的一阶与二阶导数计算在图像特征提取与边缘提取中十分重要。一阶与二阶导数的 作用,通常情况下: 一阶导数可以反应出图像灰度梯度的变化情况 二阶导数可以提取出图像的细节同时双响应图像梯度变化情况 常见的算子有Robot, Sobel算子,二阶...
基于Java语言模拟水波纹运动效果,分为两种方法,一种采用简单的叠加计算 不使用sine函数模拟水波纹,好处是计算量小,另外一种采用sine函数来计算 水波纹扩展,计算量大,但是效果比较真实。
使用RelativeLayout与TableLayout分别实现两种登录界面,学习RelativeLayout布局 中如何对齐与调整组件相对位置,使用TableLayout实现登录界面,学习如何设置列 的长度,与对齐方式等。
Water Ripple Effect - 水波纹效果 一:原理 模拟水波纹效果,最常见的是sine或者cosn的函数,周期性变化,贴近自然 当水波纹中中间开始向四周扩散的时候,一般都是慢慢的失去能量,振幅也是 越来越小,所以程序要模拟这个过程时候,要加上一个能量递减因子。
自定义标题栏在很多的android app中很常见,可以说是一种很有用的UI设计方法。自 己也本着学习的态度,经过一番各种坑,终于实现了,现总结如下: 一:大致流程 1. 对指定的android activity设置自定义主题风格,其中自定义主题风格是关键 在android 4.