2004毕业于山东大学齐鲁软件学院,软件工程专业。主要专注于图像处理算法学习与研究,计算机视觉技术开发应用,深度学习在计算机视觉领域应用。两本书籍《Java数字图像处理-编程技巧与应用实践》、《OpenCV On Android编程实践》作者
图像处理之线性插值旋转算法 基本数学知识: 1. 三角函数基本知识,sin, cosin 2. 反三角函数基本知识,知道任意一点坐标P(x, y)求取该点的角度a = atag2(y/x) 3. 极坐标与笛卡尔坐标系转换知识 图像旋转矩阵:由此可以计算图像旋转以后的新的高度与宽度。
服务器端: 实现一个最简单的Hello服务,打印输出客户端IP地址到控制台,对任何连接的客户端都 会发送一串字符(Hello, Java Socket)然后关闭与客户端连接。等待下一个客户端的连接 请求到来。
早就有想写一个Java Socket编程系列的文章,由于自己懒一直没动。决定从 今天开始,每周写一篇,从最简单的socket连接,到文件传输到协议实现,到 远程桌面控制,全面讲述Java socket编程的各个方面与各种技巧,从普通 socket到Java NIO。
因为项目需要,要把一个zip/jar文件读入到后台服务器上,前台用户选择好zip/jar文件 以后,upload文件之后,从JarFile对象中循环读取JarEntry对象,然后根据JarFile的 API使用jarFile.getInputStream(JarEntry jarEntry)来读取每个JarEntry的内容。
图像处理之直方图均衡化 基本思想: 直方图图均衡化是图像处理中的常用图像增强手段,直方图均衡化的主要优点是 可以降低图像噪声,提升图像的局部显示。对于常见的RGB图像,直方图均衡化 可以分别在三个颜色通道上处理,基本的直方图均衡化的公式为: 其中nj表示灰度级为Rk的像素的个数,L为图像中灰度总数,对于RGB来说L的 取值范围为[0~255]总灰度级为256个。
图像处理之半调色融合 图像处理中错误扩散,抖动算法在在数字半调技术中有着重要的应用,是报纸,黑白 打印机等输出设备常常采用的技术。常见的图像半调技术有矩阵错误扩散,弗洛伊德- 斯坦德伯格错误扩散,空间填充曲线采样错误扩散等。
基本思想: RGB像素的亮度是由RGB各个分量值的大小决定的,分量越大,亮度越大。看上去 好像光照效果越明显,光源退化效果是模拟光照在图像的中心点上,慢慢扩散到周 围,越靠近中心点像素,图像越亮,越远离图像越暗。
整个过程模仿用户注册,分为三步完成,运行效果如下: 全部代码如下: JavaScript Create User Wizard Example function handleWizardNext() { if (document.
图像处理之调整亮度与饱和度 什么是亮度: 简单点说一幅图像的亮度属性是图像的RGB值的大小,RGB各个值越大亮度越高RGB 分量取值范围为0~255之间。调整图像亮度。
图像处理之基于阈值模糊 算法思想: 实现一个高斯卷积模糊但是只运用与周围的像素值与中心像素值差值小于阈值。两个 像素值之间的距离计算可以选用向量距离即曼哈顿距离或者欧几里德距离。高斯模糊 采用先XY方向一维高斯模糊完成目的是为了减小计算量。
算法思想: 基于双线性算法的分解,分别进行水平与垂直两个方向的放缩,完成对整张图像的放大或 者缩小。基于的数学思想为矩阵的乘法,对一个scale矩阵可以拆分为水平与垂直方向的两 个关联矩阵,具体如下: 关于什么是双线性插值参加这里:http://blog.csdn.net/jia20003/article/details/6915185 程序解释: 类ScaleFilter完成对图像的快速放大与缩小,接受输入参数为XY方向的放缩比例值。
一: 矩阵的加法与减法 规则:矩阵的加法与减法要求两个矩阵的行列完全相等,方可以完成两个矩阵的之间的运算。 举例说明如下 二:矩阵的乘法 规则:矩阵的乘法要求两个矩阵符合A(mx k), B( k x n)即矩阵A的列数与矩阵B的行数相等,否 则无法完成矩阵运算。
最近因为项目需要,不得不重新看看CSS/HTML之类的东西,不看不要紧,一看吓一跳 原来不知道真的是太多,以前从未认真对待过,这次总结了一下学习所得,算是对自己 有个交代,也可能让想了解CSS/HTML布局应用的朋友快速入门: 1. CSS 与HTML元素直接关联,以HTML h1元素为例。
JPA快速入门介绍 一:什么是JPA JPA的英文全称是Java PersistenceAPI, 目的是给Java开发者提供对象关系映射工具用于在 Java应用程序开发中来管理关系数据(RDBMS)。
图像处理之仿画笔效果一 仿画笔效果最终完成自动完成从一张RGB图像到手工油画效果根据设定好的几个基本参数, 本文章解释算法的前半部分。完整的算法介绍参见这里: http://lvelho.impa.br/ip/papers/npar2000.pdf StrokeAreas 本文的算法主要是通过输入像素计算Color Difference与moment值得到输出像素从而得到 图像上的画笔绘画区域(StrokeArea),需要输入的参数S决定中心像素p(x,y)的相邻区域的大 小。
最简单的ExtJS4的MVC实例 从ExtJS4.0开始,ExtJS支持MVC架构,让前端开发者更好的实现数据与逻辑分离,使用 View, Controller, Model组件定义来完成浏览器前端业务。
基本思路: 基于ExtJS4.1版本开发,主要是首先创建一个Data Model组件,mockup一些JSON数据 然后将data Model与JSON数据绑定到创建的data store中,最后创建grid组件同时绑定 之前的data store完成整个程序。
图像处理之相似图片识别(直方图应用篇) 算法概述: 首先对源图像与要筛选的图像进行直方图数据采集,对采集的各自图像直方图进行归一化再 使用巴氏系数算法对直方图数据进行计算,最终得出图像相似度值,其值范围在[0, 1]之间 0表示极其不同,1表示极其相似(相同)。
JSP技术已死 ? (Java Server Page technology will die) ? 自从JamesGosling开发Java语言,SUN大力推行基于Java的从前端到后端的完整的企业级 解决方法(J2EE),发展至今基于服务器端JSP技术地位与处境已经越来越尴尬。
图像处理之应用篇-大米计数续 背景介绍: 请看博客文章《图像处理之简单综合实例(大米计数)》 其实拍出来的照片更多的是含有大米颗粒相互接触,甚至于有点重叠的照片 要准确计算大米的颗粒数非常困难,通过图像形态学开闭操作,腐蚀等手 段尝试以后效果不是很好。
图像处理之双边滤波效果(Bilateral Filtering for Gray and Color Image) 基本介绍: 普通的时空域的低通滤波器,在像素空间完成滤波以后,导致图像的边缘部分也变得不那么明显, 整张图像都变得同样的模糊,图像边缘细节丢失。
主要思想: 主要是利用三角正弦函数与余弦函数的变换效果,完成对像素的位移变换,产生 水纹效果,因为自然界中的水纹多少都是正弦波或者余弦波的叠加效果。 参数解析: 支持两个输入参数设置,一个是波长,表示像素位移的多少,另外一个是周期 表示正弦或者余弦函数的在像素中的变换周期。
图像处理之霍夫变换(直线检测算法) 霍夫变换是图像变换中的经典手段之一,主要用来从图像中分离出具有某种相同特征的几何 形状(如,直线,圆等)。霍夫变换寻找直线与圆的方法相比与其它方法可以更好的减少噪 声干扰。
开操作概述: 图像处理中的开闭运算是两个非常重要的数学形态学操作,它们同时都继承自基本的腐蚀与 膨胀操作,这些操作一般都会应用在二值图像的分析与处理上。开操作有点像腐蚀操作,主 要是会remove前景像素边缘,但是不会像腐蚀操作remove那么多边缘像素。
概述: JLayeredPanel 作为Java层次面板是创建多编辑窗口与实现某些特殊显示层次效果的最好方法 当前已经内置支持JLayeredPanel的组件包括JFrame,JDialog,JDesktopPanel本身就是个 JLayeredPanel对象,JLayeredPanel中可以包含多个JComponent组件对象,并且可以相互切换 到编辑状态。
最近一直在研究多脸谱识别以及如何分辨多个皮肤区域是否是人脸的问题 网上找了很多资料,看了很多篇文章,将其中基于RGB色彩空间识别皮肤 的统计算法做了一下总结,统计识别方法主要是简单相比与很多其它基于 机器学习的算法,本人总结了五种RGB色彩空间的统计算法源码如下: Skin Filt...
从2002开始接触Java学会HelloWorld这么经典的程序到如今不知不觉已经十年啦,十年中 亲耳听到过不少大牛的演讲,见到过项目中的神人在键盘上运指如飞的编程速度,当时就 被震撼了。当编程越来越成体力活,我们还能有自己的思想,还能修炼为Java系统级别的 程序员嘛?学习与修炼以下知识与技能,帮你早日达成愿望。
基于OSGi的Virgo Server最简单Spring web实例 一:开发工具下载与环境搭建 1. 下载并安装JDK6u30版本,下载地址如下: http://www.
图像处理之图像梯度效果 基本思想: 利用X方向与Y方向分别实现一阶微分,求取振幅,实现图像梯度效果。关于如何计算图像 一阶微分参见这里:http://blog.csdn.net/jia20003/article/details/7562092 使用的两种微分算子分别为Prewitt与Sobel,其中Soble在X, Y两个方向算子分别为: Prewitt在X, Y方向上梯度算子分别为: 二:程序思路及实现 梯度滤镜提供了两个参数: – 方向,用来要决定图像完成X方向梯度计算, Y方向梯度计算,或者是振幅计算 – 算子类型,用来决定是使用sobel算子或者是prewitt算子。
基于Swing实现的截屏工具 主要思路: 首先绘制截取到的屏幕,然后绘制mask层,根据用户鼠标选择,将选择区域的mask层像素设置 为完全透明,即不透明度为0,当不透明度为255时表示完全不透明。
ARP欺骗技术是黑客攻击基于以太与IP网络的常见手段,本文将全面解释什么是ARP攻 击,ARP欺骗发生以后可以利用的几种黑客攻击手段。如何防范ARP欺骗发生。 一:什么是ARP,为什么ARP欺骗会发生 ARP是地址解析协议(AddressResolution protocol)的简称,首先看一下TCP/IP网络的开放系统 互联协议分层结构: 七层分别为物理层,数据链路层,网络层,传输层,会话层,表示层,应用层。
1. 牛顿分形(Newton Fractal) 在复数域上使用牛顿迭代生成分形图像,函数公式F(z) = z^3 – 1在复数域上面有 三个根,一个是1,另外两个分别是复数-0.5+0.87i 与 -0.5 – 0.87i根据计算出来根 的值不同转换为RGB三种不同的颜色,根据迭代次数的多少设置颜色值的大小,即颜色强度。
怎么得到网页上Java Applet的源码 最近看一些东西,常看到有些算法demo是Java的Applet嵌套在网页里面运行,本来想通过 浏览器缓存获取源码一读,发现原来Applet的程序可能被加载到本地的JVM去啦,从缓存中 对我来说变成不可能完成任务了。
连通组件标记算法–算法修正版 昨天使用自己修改的连通组件标记算法代码去对一个稍微复杂点的图片做皮肤的最大连通 区域识别,发现Java报了栈溢出错误,自己想了想,感觉是合并标记时其中一段递归的代 码的问题,修改为非递归以后,运行结果吓我一跳,发现更加的不对,最后发现原来我读 取标记时候使用了逻辑操作符&,导致标记超过255时候被低位截取。
图像处理之像素格效果 图像中的像素格效果是最常见的图像特效,可以隐藏或者模糊一些不想被显示出来的图像细 节,是常用的图像处理手段。 像素格效果的算法其实非常的简单,只是对图像进行块扫描,求出每个像素块的平均RGB 值,然后赋值到块中的每个像素点,最后输出处理以后的图像,而像素块的扫描有点类似 卷积的处理。
图像处理之简单综合实例(大米计数) 一位网友给我发了几张灰度图像,说是他们单位的工业相机拍摄的,画质非常的清楚,他们 单位是农业科研单位,特别想知道种子的数量,他想知道的是每次工业相机拍摄种子图片中 有多少颗粒种子,想到了用图像处理的办法解决他们的问题,看了他给我照片,以大米种子 为例。
介绍基本的JMS概念与开源的JMS框架ActiveMQ应用,内容涵盖一下几点: 1. 基本的JMS概念 2. JMS的消息模式 3. 介绍ActiveMQ 4. 一个基于ActiveMQ的JMS例子程序 一:JMS基本概念 1. JMS的目标 为企业级的应用提供一种智能的消息系统,JMS定义了一整套的企业级的消息概念与工具, 尽可能最小化的Java语言概念去构建最大化企业消息应用。
图像处理之简单脸谱检测算法(Simple Face Detection Algorithm) 介绍基于皮肤检测之后的,寻找最大连通区域,完成脸谱检测的算法。大致的算法步骤如下: 原图如下: 每步处理以后的效果: 程序运行,加载选择图像以后的截屏如下: 截...
图像处理之二值腐蚀 概述: 腐蚀是图像形态学的两个基本操作之一,另外一个是膨胀(Dilate)。二值图像上的腐蚀是腐蚀最典 型的运用,但是腐蚀操作同样可以运用于灰度图像。二值图像腐蚀操作最基本的效果是腐蚀图像 中前景色区域的边缘。
图像处理之二值膨胀及应用 基本原理: 膨胀是图像形态学的两个基本操作之一,另外一个是腐蚀操作。最典型的应用是在二值图像 中使用这两个基本操作,是很多识别技术中重要的中间处理步骤。在灰度图像中根据阈值同 样可以完成膨胀与腐蚀操作。
一:基本的三角函数知识 同样根据a, b的值可以计算出角度θ值,称之为反三角函数,角度θ=atan2(a, b) 图像处理中应用三角函数常常把中心点设置为A点,任意像素点B到A的距离可以根据三 角函数来计算得出,常见的计算模型如下: 对待求像素点加以一定三角函数变化,可以...
Android上实现柱状图算法实现 第一步: 获取Android设备的屏幕大小 第二步: 在View对象中使用Canvas绘制蓝色边框与白色背景XY轴两条线,代码如下 第三步: 绘制柱状图标题 第四步: 根据数据集计算出每个系列数据所占X轴的大小,来绘制X 数据名称 第五步: 根据数据集计算出数据单元大小,并将数据单元映射为像素单元,绘制出标尺单位与 背景虚线 第六步: 根据数据集的值来计算出柱状图的高度,以及柱状图的宽度大小,映射为像素值以后 完成绘制。
走出Java资源加载的迷宫 Java开发中常常要加载各种各样的资源文件,如property文件,xml配置文件,图片文件等等。 Java的资源加载策略选择比较多,很多资源加载方法都是基于不同的项目配置,没有一种资 源加载方法是万能的。
图像分析之强度直方图分析 直方图介绍 强度直方图图形化显示不同的像素值在不同的强度值上的出现频率,对于灰度图像来说强度 范围为[0~255]之间,对于RGB的彩色图像可以独立显示三种颜色的强度直方图。
图像处理之连接组件标记算法 连接组件标记算法(connected component labeling algorithm)是图像分析中最常用的算法之一, 算法的实质是扫描一幅图像的每个像素,对于像素值相同的分为相同的组(group),最终得到 图像中所有的像素连通组件。
基于像素的皮肤检测技术 介绍一种基于颜色空间的皮肤检测技术,可以检测亚洲人种与白人的皮肤,皮肤检测 人脸识别的基础,也是很多人像识别技术的基础操作,在实际应用中还是非常有用的。 基于像素的皮肤检测主要是寻找正确的颜色空间几何,图像处理中,常见的颜色空间 有如下几种 1.
在ExtJS的Panel组件上使用HTML5的Canvas对象画图 的简单例子,效果如下: 怎么运行源代码: 新建两个文件,分别命名为mydemo.html, mydemo.js以后,将对应的HTML源代码 与JavaScript代码copy到各自的文件中,在同一目录下使用Google Chrome浏览器 或者IE9.
图像处理之边缘褪化效果 很多图像处理软件都提供边缘褪化效果滤镜,其实原理非常的简单,网上搜索了一把, 实现了基于Java的图像边缘褪化效果。边缘褪化效果取决于以下三个参数: 1. 设定的图像边缘宽度 2. 褪化比率– 其实质是图像融合的百分比数 3. 选择的边框颜色 主要原理是计算图像中的像素点到中心点的距离,对边缘像素根据褪化比率与选择的 边框颜色融合从而产生褪化效果。
为什么写Java程序需要接口 我之所以以这个作为标题,并不是为了玩噱头,讲一些似是而非的空话,还是以探索加发现, 追本溯源的讲解一下为什么Java需要接口,怎么理解,怎么用它。 首先接口并不是Java才有的,这个是面向对象语言的基本特征之一。
图像处理之特殊灰度算法技巧 介绍几种特殊的灰度算法滤镜,将彩色图像转换为灰度图像。其中涉及到的有基于阈值的图 像二值化,弗洛伊德.斯坦德伯格抖动算法,基于阈值的部分灰度化 基础知识- 怎么把RGB转换为单色的[0 ~256]之间的灰度,最常用的转换公式如下: Gray = 0.