【社区问答第三十期】深谈Java数字图像处理技术

CSDN 2016-01-08 04:03:23
加精
本期的社区问答(1月8日— 1月 15日)我们请来了《Java数字图像处理-编程技巧与应用实践》一书的作者 贾志刚,为大家解答关于Java数字图像处理技术方面的问题。

本期问答内容:

1. 关于Java的图形编程和Swing编程的问题
2. 关于Java JDK本身的图像相关API接口使用的问题
3. 关于数字图像处理中的图像空间域处理:
a. 图像直方图相关
b. 图像插值相关
c. 图像增强
d. 二值图像处理
e. 特征提取(颜色特征、边缘、纹理、角点、SIFT匹配、HOG等)
f. 常见特效滤镜实现(颜色变化、色彩与饱和度、磨皮等常见美容算法讨论)
4. 关于基于ImageJ二次开发的问题(插件机制、ImageJ代码架构、代码主要实现类使用等问题。)

以上问答内容均是基于二维图像处理,不涉及三维图像与图形处理内容讨论

嘉宾简介


贾志刚
CSDN博客专家, 拥有10年以上的Java语言编程经验,在图像特征提取匹配、识别等方面有较深入的研究,多年从事Java Swing图形与图像方面的应用开发,拥有丰富的图像处理项目实践经验。

专家博客:http://blog.csdn.net/jia20003

关于新书《Java数字图像处理-编程技巧与应用实践》

关于《Java数字图像处理-编程技巧与应用实践》,首先通过一个简单JAVA图像处理程序勾勒出用JAVA来实现图像处理的基本步骤,介绍JAVA在操作图像方面的几个重要的API类如ImageIO,BufferedImageOP等,并对图像文件的保存与读写做较为深入细致的讲解。从第二章开始介绍图像的像素操作同时还会用实例讲解如何通过这些简单的像素操作实现图像的色彩特效。接下来会学习图像的直方图,演示如何直方图均衡化的实际应用,会基于直方图实现一种图像搜索算法,接下来学习图像处理中最重要与常见的如何调整图像的亮度,对比度与饱和度实现图像的基本调整。然后逐步深入介绍图像的模糊与锐化,首先学习图像卷积模糊算法,然后介绍快速模糊算法盒子模糊,细节保留的高斯模糊与双边模糊,以及各种不同方向的对图像实现模糊的技术,从而实现不同的处理效果。

问答结束后,贾志刚老师会在所有提问者中抽取三名用户,赠送《Java数字图像处理-编程技巧与应用实践》一书。


试读样章:点击

京东购买 点击

当当网购买 点击

亚马逊购买 点击


--------------------------------------------------------------------------------------------------------

本期问答获奖用户:

SweetLoveFT
xmt1139057136
yelong

请获奖用户将本人 邮寄地址+姓名+联系电话 发私信至yixiaof,我们会尽快为您邮寄礼品。

...全文
7253 47 打赏 收藏 转发到动态 举报
写回复
用AI写文章
47 条回复
切换为时间正序
请发表友善的回复…
发表回复
我是个浑人 2016-07-10
  • 打赏
  • 举报
回复
老师 用手机一张照片,背景平滑 上方有一张卡片,这样拍出来的图片会有层次感 请问如何能用java来处理图片得到图片上的卡片呢? 有相关的文章推荐吗?谢谢
fcqm8888 2016-04-04
  • 打赏
  • 举报
回复
专家深谈好得很,别不深入啊。
5herhom 2016-03-19
  • 打赏
  • 举报
回复
请问里面有没有关于用JAVA将图形轮廓完美提取的算法,类似于柚子的轮廓识别这样的?
自由的刺猬 2016-02-24
  • 打赏
  • 举报
回复
过来学习学习 《Java数字图像处理-编程技巧与应用实践》 特别想知道 这本书有视频录制吗
业余草 2016-01-21
  • 打赏
  • 举报
回复
活动结束了,我已经中奖了吧
  • 打赏
  • 举报
回复
引用 7 楼 jia20003 的回复:
[quote=引用 3 楼 shijing266 的回复:] 我只在做验证码的时候用到了图像处理技术,平时都很少用到。个人感觉,java数字和图像处理技术在未来的应用场景仍然很局限,如果说页面特效,js、css 、html5等一系列能实现, 那么这样说来,还能应用哪些场景
========================================================================================= 1.其实我想说的我的图书主要在于讲算法实现与思路,不是在于讲Java,你可以将算法翻译成任何主流的语言都没问题, 2.图像处理的应用场景很多,选择不在于语言,而在于如何驾驭算法,设计出好的图像处理流程,有好的效果。 3.Java在后台,在服务器端的运算能力一样很强大,但是基于Java开源优秀的图像处理框架太少,自己实现算法对一般开发者成本高、难度大,也是制约Java平台上图像处理需求的。 我之所以选择Java实现这些算法,主要是因为Java语言群体庞大,面向对象,没有指针,代码结构清晰,让读者一读就懂,理论联系实际,更好的掌握图像处理知识 谢谢[/quote] 谢谢老师的解答,很期待我能中奖,想了解下
丝雨_xrc 2016-01-18
  • 打赏
  • 举报
回复
引用 36 楼 SweetLoveFT 的回复:
[quote=引用 18 楼 jia20003 的回复:] [quote=引用 16 楼 amen000 的回复:] 还有一个问题,7号加班没听到老师的课,请问哪里还可以看录像重播。
CSDN公开课好像后期都会有录播的,你可以关注他们的发布,我也帮你问问他们 谢谢[/quote] 还真不知道什么时候有信息[/quote]只要是报名用户,课程上传后都会有通知滴
业余草 2016-01-15
  • 打赏
  • 举报
回复
业余草 2016-01-15
  • 打赏
  • 举报
回复
今天最后一天了,老师写的书还是很不错的! 我是为了书而来的!
gloomyfish 2016-01-15
  • 打赏
  • 举报
回复
引用 38 楼 xmt1139057136 的回复:
今天最后一天了,老师写的书还是很不错的! 我是为了书而来的!
哈哈,希望你会中奖
业余草 2016-01-14
  • 打赏
  • 举报
回复
老师有没有录制视频,可以放到CSDN学院! 真诚的邀请你在百忙之中录制视频放到CSDN学院!
SweetLoverFT 2016-01-13
  • 打赏
  • 举报
回复
引用 18 楼 jia20003 的回复:
[quote=引用 16 楼 amen000 的回复:] 还有一个问题,7号加班没听到老师的课,请问哪里还可以看录像重播。
CSDN公开课好像后期都会有录播的,你可以关注他们的发布,我也帮你问问他们 谢谢[/quote] 还真不知道什么时候有信息
gloomyfish 2016-01-13
  • 打赏
  • 举报
回复
引用 34 楼 SweetLoveFT 的回复:
1.关于公开课方面的标题是《解码美颜算法》,想问一下贾老师也是做音视频这一领域的吗?我目前就是的; 2.这个美白算法主要是在解码结束后对图像数据源码做处理对吧? 3.图像可不可以在解码前做处理,或者是无需修改图像数据源码,而是直接在绘制时实时渲染呢? 4.贾老师钻研图形学这一块,请问是否了解 OpenGL、OpenCV 这一块?或者可否说一下 OpenGL、OpenCV 两者的区别?
============================================================================================== 1.我主要是做2D Java图像处理在android与桌面上,写好了还可能转成C#的, 不做音视频处理,也不会@_@ 2.我的标题可能有的误导大家了,解码这个意思是要解开人像皮肤美白的秘密 3.实时渲染的挑战在于如何提高计算速度, 这个你可能要深入研究一下, 4. OpenCV知道一点,OpenGL没有玩过! OpenGL做图形处理,各种渲染着色比较多,OpenCV属于计算机视觉开源库, 跟图像处理,识别,模式匹配比较近。 谢谢
SweetLoverFT 2016-01-13
  • 打赏
  • 举报
回复
1.关于公开课方面的标题是《解码美颜算法》,想问一下贾老师也是做音视频这一领域的吗?我目前就是的; 2.这个美白算法主要是在解码结束后对图像数据源码做处理对吧? 3.图像可不可以在解码前做处理,或者是无需修改图像数据源码,而是直接在绘制时实时渲染呢? 4.贾老师钻研图形学这一块,请问是否了解 OpenGL、OpenCV 这一块?或者可否说一下 OpenGL、OpenCV 两者的区别?
业余草 2016-01-13
  • 打赏
  • 举报
回复
java Graphics2D 画图

g.drawLine(3,3,50,50);//画一条线段
g.drawRect(80,100,40,25);//画线框
g.drawOval(10,10,60,120);//画椭圆

//画多边形
int px1[]={50,90,10,50};//首末点相重,才能画多边形
int py1[]={10,50,50,10};
g.setColor(Color.blue);
g.fillPolygon(px1,py1,4);

Graphics2D 对象中有个函数是 translate(x,y),该函数的功能如下:
将椭圆的原点移动到 (x,y)。

该函数和 rotate函数结合使用,可以实现将一个图形绕一个点旋转。
g2.rotate(Math.PI * rotate / 180.0);   //注意该函数是绕着椭圆的原点旋转

示意图如下:

新原点的坐标可以根据水平状态下原点的坐标以及旋转的角度算出来。需要注意的是:先移动原点,然后再旋转,顺序不能乱。
示例代码:
Graphics2D g2 = (Graphics2D)g.create();
g2.setColor(Color.red);
g2.translate(translateX, translateY);
g2.rotate(Math.PI * rotate / 180.0);
g2.drawOval(0, 0, ovalWidth - 1, ovalHeight - 1);
g2.translate(-translateX, -translateY);
g2.dispose();
业余草 2016-01-12
  • 打赏
  • 举报
回复
java客户端使用的还是比较少的。
我最近开发过一个java写的exe客户端程序。
主要功能有开机启动,托盘图标,JTable,JPanel,JFrame,JButton,JTextPane,DefaultTableModel,JScrollPane,JTableHeader,
UIManager

使用了SwingSets3.jar美化了界面

业余草 2016-01-12
  • 打赏
  • 举报
回复
Java 2D Graphics和 HTML5 中的canvas很像。 试读样章已读完,没有发现错别字,楼主写的还不错!
业余草 2016-01-12
  • 打赏
  • 举报
回复
试读样章加载好卡!
而且实例代码显示不出来
海兰 2016-01-12
  • 打赏
  • 举报
回复
贾老师,您好,我想请教您一下在数字图像消除锯齿方面有没有好点的方法?
  • 打赏
  • 举报
回复
加载更多回复(27)

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧