Java2D的图形图像处理技术

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.模糊(Blur) 用一个像素和它八个相邻 像素的平均值代替该像素就可 以达到模糊的效果。下面的核 心矩阵可以产生模糊效果:
1 9 1 9 1 9 1 1 1 9 9 9 1 9 1 9 1 9
实现模糊效果的代码片断 如下: float weight = 1.0f/9.0f; float[] elements = new float[9]; // 建立二维数组 // 将九个相等元素添入矩阵 for (i = 0; i < 9; i++) { elements[i] = weight;} // 使用矩阵元素作为参数 创建一个 Kernel private Kernel myKernel = new Kernel(3, 3, elements); public ConvolveOp simplelur = new ConvolveOp(myKernel); //sourceImage 和 destImage 是 BufferedImage 的实例 simpleBlur.filter(sourceImag e, destImage) // 模糊图像 当图像变换时,目标图像中
中 国 民 航 飞 行 学 院 学 报 June 2004 Aviation Flight University of China Vol.15 No.4
转 30 度后显示: AffineTransform t; t.setToScale(1.5, 2); t.setToRotation(Math.toRadi ans(30)); 四、图像处理与增强功能 图像程序包提供一对接 口,用来定义 BufferedImage 和 Raster 对象上的操作: BufferedImageOp 和 RasterOp。 实现这些接口的类包括 AffineTransformOp、BandCombineOp 、 ColorConvertOp 、 ConvolveOp 和 LookupOp、 RescaleOp。这些类 用于图像的几何变换、模糊、 锐化、增强对比、阈值和图像 颜色校正。 ConvolveOp 类使用核心矩 阵 (kernel) 在源图像上执行变换 (Convolve) 。变换是构成空间过 滤算法的基础。 变换将图像中每个像素的 值与相邻像素的值进行加权或 平均,从而使每个输出像素按 照内核算法指定的方式被相邻 像素所影响。这种变换,从数 学上讲可以表示为核心矩阵的 卷积操作。卷积的核心矩阵是 一个说明应该给予相邻值多大 份量的矩阵。 要创建一个卷积操作,首 先创建一个将构成核心矩阵值 的数组,并创建一个 Kernel 对 象。然后利用这个 Kernel 对象 创建一个 ConvolveOp 对象,并 利用它过滤。通过设置不同的 核心矩阵即可执行不同类型的 变换,包括模糊、锐化和平滑 等操作。
每个像素的值都通过以内核矩阵 为权数将该像素值与周围像素的 值 平均而计算出来。图像的每
xnew a b y new = d e z 0 0
c x f • y 1 z
如果知道某一特定变换矩阵的 组件,那么可以直接用下列方 式创建它: AffineTransform t = new AffineTransform(a, b, c, d, e, f); 下面的代码将图形横向放 大 1.5 倍,纵向放大 2 倍,并旋
中 国 民 航 飞 行 学 院 学 报 June 2004 Aviation Flight University of China Vol.15 No.4
从造成飞行冲突和飞机空 中相撞的多起事例分析,除飞 机本身问题和不可抗拒的自然 力外,造成飞行冲突和飞机相 撞,大多数都是人为原因,主 要是没有认真执行管制条令、 条例和间隔规定,以及飞行中 机组的随意性。如:分院 “5・30”两机碰挂,就是一起 典型的严重违反飞行纪律和管 制条令、条例的事例。没有造 成机毁人亡,实属侥幸。这一惨 痛教训,值得我们认真的吸取。 五、注意进离港飞机气压 面的转换,防止调错气压值 随着民用机场过渡高度和 过渡高度层改革的不断进行, 民用机场从过去本场使用场面 气压到现在的修正海压,以及 飞机进出机场水平区域气压面 的转换,在观念上有一个逐步
June 2004 中 国 民 航 飞 行 学 院 学 报 Vol.15 No.4 Journal of Civil Aviation Flight University of China
35
Java 2D 的图形图像处理技术
杜 冬 喻德军 唐旭东 (1
摘 关 键
1 2 1
中国民航飞行学院
2
四川大学计算机学院)
要:对用 Java 2D 进行图像处理的一些技术进行了探讨,内容包括坐标变换、图 词:Java 2D 图像处理 程序设计
像模糊、锐化、边缘检测等几方面的图像处理技术。 中图分类号:TP391.4 一、简介 Java 2D API 是 Java 基础库 (JFC)的一部分,增强了抽象 窗口工具包 (AWT) 的图形、文 本和图像功能。在 JDK1.2 中已 经支持 Java 2D 的使用。通过 Java 2D API,程序员可以轻松 地描绘出任意的几何图形、运 用不同的颜色填充效果、对图 形做旋转、缩放、剪切等。 2D API 还有许多增强 AWT 能力的 部分,比如处理图像可以采用 不同的过滤器得到不同的效 果、对于任意的几何图形也能 做碰撞检测、重叠图形颜色的 复合等功能。文中将会对坐标 变换、图像处理等技术进行一 些探讨。 二、Java 2D API 包 下面对 JDK1.2 中与坐标变 换和图像处理相关的包作简要 的叙述: 1.java.awt java.awt 包含了一些新增的 2D API 类 和 界 面 。 其 中 Graphics2D 继 承 于 java.awt.Graphics ,是描绘 2D 图形的对象。与前面版本的 文献标识码:A JDK 所使用的绘图模式一样, 当有对象要被描绘时, paint 或 是 update 方法会自动根据适当 的图形上下文,然后调用 Graphics 对象的绘制方法。与 Graphics2D 有关的状态属性集 称为 Graphics2D 上 下 文 。 Graphics2D 对 Graphics 进行了 扩展,可支持更多的图形属 性 , 像 是 Stroke 、 Clip、 Transform 等。 2.java.awt.geom java.awt.geom 则 包 含 可 以 勾画出任何形状的 GeneralPath 类。它可以由许多不同种类的 subpath 构成,像是直线和二次 曲线等。此包中还定义了许多 基本几何图形,包括 Arc2D 、 CubicCurve2D、 Line2D 等。此 外,还有一种特别的图形类: Area,它支持对已有图形做布尔 运算而产生新图形的过程。最 后 , AffineTransform 类 则 提 供 对图形作 Scale 、 Shear 、Rotate 等坐标上的变换。 3.java.awt.image Java 2D API 的即时模式图 像处理类和接口提供处理像素 Paint 、 映射图像的技术,其中的像素 映射图像的数据存储在内存 中。该 API 支持用多种存储格 式访问数据,也支持通过几种 过滤操作来操作图像。在 java.awt.image 包 中 , Java 2D API 中 的 即 时 模 式 图 像 处 理 API 可以分为六组:接口、图 像数据类、图像操作类、样本 模型类、颜色模型类和异常。 其中图像操作类定义了许多过 滤器,源图像经过过滤器过 滤,产生出新的图像。 4.java.awt.color java.awt.color 包 定 义 了 ColorSpace 类。该类包含在当 前颜色空间和两个标准颜色空 间 CIEXYZ 和 RGB 之间进行 转换的方法。 三、坐标变换 坐标变换在实际中经常使 用,它们允许你采用易懂的坐 标值,而图形环境负责把它们 转换为像素。有四种基本的变 换方式: ●按比例缩放(scaling): 从一固定点向各个方向扩大或 收缩。
36 Journal of Civil ● 旋 转 (rotabion) : 围 绕 一个固定点旋转所有点。 ●移动(translation): 把 所有点移动一定距离。 ● 剪 切 (shear) : 固 定 一 边,“滑动”与之平行的各条 线,使滑动的距离与固定线成 正比。 Graphics2D 类中的 scale、 rotate 、 translate 和 shear 方法 可将图形环境的坐标变换确定 为这四种基本变换中的一种。 Java 2D API 有一种统一的 坐标变换方式——仿射变换。 所有坐标变换(包括从用户到 设 备 空 间 的 变 换 ) 都 由 AffineTransform 对 象 表 示 。 AffineTransform 定 义 了 用 矩 阵 绘 制 坐 标 的 规 则 。 将 AffineTransform 添 加 到 图 形 上 下文中,以便旋转、平移或修 剪需要绘制的几何形状、文本 或图像。加入的变换将应用到 上下文中的任意图形对象中。 用户空间坐标向设备空间坐标 转换时将执行此变换。 仿射变换建立在如下形式 的二维矩阵基础上:
个通道中都wk.baidu.com行此操作。下列 公式显示当执行变换操作时内 核中的权数如何与源图像中的 像素相关联。内核中每个值都 与图像中 (下转第 38 页)
38 Journal of Civil 三、充分利用强制报告位 置点和各类程序的特点,监控 飞机位置,防止飞机飞错程 序,造成冲突 由于本场飞机多,无线电 通话频繁,加之又是程序指 挥,所以对每架飞机的位置一 定要掌握准确。而要准确掌握 飞机位置,就只能根据其位置 点报告、各种程序特点和飞行 时间加以监控,否则,飞机一 旦程序飞错,而本场飞机又 多,就会出大问题。特别是对 航班飞机的监控,十分必要, 最易飞错程序的是航班和备降 航班机组,因该机组对训练特 点了解不多,对程序不是十分熟 悉。这个问题,应引起注意。 四、严格执行条例、条令 和间隔规定,杜绝飞行过程中 的随意性,是防相撞的根本
适应和转换的过程,加之军航 飞机还继续使用场面气压,这 就容易造成军民航飞机同场飞 行时,由于气压面的不同,易 调错气压值,可能造成飞行冲 突和相撞危险。对于这一点, 应引起注意。 防止飞行冲突和空中飞机 相撞,是管制工作的首要任 务。我们必须从政治的高度看 待这一问题,清醒地知道我们 肩负的责任,增强事业心和责 任心,严格执行管制条令、条 例和间隔规定,同机组密切配 合和协作,共同筑起防止飞行 冲突和相撞危险的安全网,确 保洛阳机场飞行训练和航班运 输正常进行。
相关文档
最新文档