当前位置:文档之家› JAVA图像处理详解

JAVA图像处理详解

JAVA图像处理详解
JAVA图像处理详解

JAVA图像处理详解

2007-08-10 17:03

如果你对图像处理感兴趣,而且需要使用GIF、JPEG和PNG以外的其它图像格式,或者希望改善JPEG图像处理的性能但不知道到哪里寻找适当的方法,或者需要通过几何运算(包括非线性变换)来处理图像,不必再为此苦恼了,答案就在这里——来自Sun公司的Java高级图像处理API和JAI图像I/O API 1.0 RC。 JAI API是Java Media API的一部分,与之相伴的还包括Java 2D API、Java 3D API、Java Speech API和其他一些API。Java高级图像处理API是作为Java规范请求(JSP)34的一部分而开发的,是对J2SE version 1.3+版的扩展,主要用于处理图像。最初发布的版本是1.0,JDC(Java Developer Connection)提供了一个预览版1.1.2 beta。(最新进展情况请查阅README.html文件。)与AWT 和Java 2D相比,JAI API提供了更丰富的图像处理,包括对许多通用图像操作的内在支持。

不过本文的目的不是讨论JAI API,而是伴随这些API但分离到它自己的可安装库中的一组图像读写器(codec)类,即Java高级图像处理图像I/O工具1.0 RC。该RC提供了可以插接到J2SE 1.4的图像I/O框架上的一些功能。作为JSR-15一部分而开发的图像I/O API提供了一个支持不同图像格式的可插拔框架。标准J2SE 1.4版本身支持GIF、JPEG和PNG图像格式,而JAI图像I/O RC则提供了更多主流图像格式的编码解码器。只要加上针对操作平台的适当版本,以前开发的应用程序就可以处理这些新的图像格式。

要理解JAI图像I/O工具的使用,需要首先了解图像I/O库。在安装和介绍图像I/O工具包之前,我们先看一看图像I/O库。

图像I/O库

图像I/O库是J2SE 1.4的标准API,放在javax.imageio包内。虽然这个包提供了两个接口和9个类,整个API实际上就是ImageIO类。通过这个类可以弄清读写所支持的图像格式并对这些图像进行读写,实际上这也就是整个API的全部内容。

由于图像I/O库是一个可插拔的框架,所支持的图像格式集不是固定不变的。尽管随J2SE 1.4发布了一些标准格式,但任何人都可以增加新的支持格式。要查看有哪些格式可用,可以使用下面的代码:

[pre]import javax.imageio.*;

import java.util.Arrays;[/pre][pre]public class GetFormats {

public static void main(String args[]) {

String readFormats[] = ImageIO.getReaderMIMETypes();

String writeFormats[] = ImageIO.getWriterMIMETypes();

System.out.println("Readers: " +

Arrays.asList(readFormats));

System.out.println("Writers: " +

Arrays.asList(writeFormats));

}

}[/pre]运行该程序,你会发现这个库支持读取GIF、JPEG和PNG图像,也支持写JPEG和PNG图像,但是不支持写GIF文件。

除了与像image/jpeg这样的MIME类型协同工作外,ImageIO类还允许通过getReaderFormatNames和 getWriterFormatNames方法使用JPEG这样的非正式

名称。此外,通过getImageReadersBySuffix和 getImageWritersBySuffix还可以了解是否存在针对特定文件扩展名的reader/writer存在。

利用 ImageIO类,你所要做的事情不过是读

javax.imageio.stream.ImageInputStream、 java.io.InputStream、

java.io.File或者https://www.doczj.com/doc/fd10505102.html,.URL,结果会得到一个

java.awt.image.BufferedImage。一旦拥有了BufferedImage,你就可以指定需要的格式名把图像写回去。(不仅仅是 BufferImage,任何实现RenderedImage 接口的类都可以写。)新的格式既可以与读取的格式相同,也可以是不同的格式以便进行格式转换。如果指定的格式没有可用的writer,那么write方法就返回false,否则如果找到了相应的writer就返回true。

[pre]String inputFilename = ...;

BufferedImage image = ImageIO.read(inputFilename);

...

String formatName = "jpg"; // desired format

String outputFilename = ...;

File outputFile = new File(outputFilename);

boolean writerExists = ImageIO.write(image,

formatName, outputFile);[/pre]为了说明图像I/O库的用法,下面的例子使用JFileChooser提示输入图像文件名。选中文件后再选择目标输出格式,然后按下“Save(保存)”按钮。保存完成后,将重新读取图像并在一个新窗口内显示。import java.awt.*;

import java.awt.event.*;

import java.awt.image.*;

import javax.swing.*;

import java.io.*;

import https://www.doczj.com/doc/fd10505102.html,.*;

import javax.imageio.*;

[pre]public class Converting extends JFrame {

JLabel promptLabel;

JTextField prompt;

JButton promptButton;

JFileChooser fileChooser;

JComboBox comboBox;?

JButton saveButton;?

public Converting() {

super("Image Conversion");

setDefaultCloseOperation(EXIT_ON_CLOSE);

Container contentPane = getContentPane();

JPanel inputPanel = new JPanel();

promptLabel = new JLabel("Filename:");

inputPanel.add(promptLabel);

prompt = new JTextField(20);

inputPanel.add(prompt);

promptButton = new JButton("Browse");

inputPanel.add(promptButton);

contentPane.add(inputPanel, BorderLayout.NORTH);[/pre][pre] fileChooser = new JFileChooser();

promptButton.addActionListener(

new ActionListener() {

public void actionPerformed(ActionEvent e) {

int returnValue =

fileChooser.showOpenDialog(null);

if (returnValue ==

JFileChooser.APPROVE_OPTION) {

File selectedFile =

fileChooser.getSelectedFile();

if (selectedFile != null) {

prompt.setText(selectedFile.getAbsolutePath());

}

}

}

}

);[/pre][pre] JPanel outputPanel = new JPanel();

String writerFormats[] =

ImageIO.getWriterFormatNames();

ComboBoxModel comboBoxModel = new

DefaultComboBoxModel(writerFormats);

comboBox = new JComboBox(comboBoxModel);

outputPanel.add(comboBox);

saveButton = new JButton("Save");

outputPanel.add(saveButton);

saveButton.addActionListener(

new ActionListener() {

public void actionPerformed(ActionEvent e) {

try {

String name = prompt.getText();

File file = new File(name);

if (file.exists()) {

BufferedImage image =

ImageIO.read(file.toURL());

if (image == null) {

System.err.println("Invalid input

file format");

} else {

String selection =

(String)comboBox.getSelectedItem();

String outputFilename = name +

"." + selection;

File outputFile = new File(outputFilename);

boolean found = ImageIO.write(image,

selection, outputFile);

if (found) {

JDialog window = new JDialog();

Container windowContent =

window.getContentPane();

BufferedImage newImage =

ImageIO.read(outputFile);

JLabel label = new JLabel(new

ImageIcon(newImage));

JScrollPane pane = new

JScrollPane(label);

windowContent.add(pane,

BorderLayout.CENTER);

window.setSize(300, 300);

window.show();

} else {

System.err.println("Error saving");

}

}

} else {

System.err.println("Bad filename");

}

} catch (MalformedURLException mur) {

System.err.println("Bad filename");

} catch (IOException ioe) {

System.err.println("Error reading file");

}

}

}

);[/pre][pre] contentPane.add(outputPanel,

BorderLayout.SOUTH);[/pre][pre] }

public static void main(String args[]) {

JFrame frame = new Converting();

frame.pack();

frame.show();

}

}[/pre] 注意,该程序没有硬编码任何文件类型,而是询问图像I/O框架支持哪些文件类型。安装Java高级图像处理图像I/O工具RC后,还可以重新运行该程序,你将会看到更多的存储格式。读取其它格式的图像基本上无需改变代码也能工作,用户只要选择不同的文件类型就可以了。

注意:图像I/O库中的内容比这里说明的要多得多。比方说可以通过写图像的参数设置压缩率,或者用读写进度监视器来监听事件。关于图像I/O用法的更多信

息,请参阅Java Image I/O API Guide。

Java高级图像处理图像I/O工具包1.0概览

这就引出了本文要讨论的主题,Java高级图像处理图像I/O工具包1.0(RC)。JAI图像I/O工具主要用于为J2SE1.4的图像I/O库提供更多的图像

readers/writers(编码解码器codecs)。只要运行时平台安装了该工具,你的程序就能够支持这些新的编码解码器。

JAI图像I/O工具提供的新编码解码器包括:

?支持对位图(BMP)编码解码(MIME类型image/bmp);

?通过本机代码加速的JPEG的读写支持(MIME类型image/jpeg),同时也支持无损JPEG(ISO 10918-1)和JPEG-LS(ISO 14495-1),对支持的所有JPEG变体都能处理12位色深;

?支持对JPEG 2000的编码与解码(MIME类型image/jpeg2000);

?用本机代码提高对PNG的编码解码速度(MIME类型image/png);

?可移植位图(PNM)编码解码器支持可移植位图(PBM)、可移植灰度位

(MIME类型分别为image/x- portable-anymap、图(PGM)、可移植像素位图(PPM)

image/x-portable-bitmap、image/x-portable-graymap、image/x

-portable-pixmap);

?原始格式(无MIME类型);

?支持TIFF编码解码(MIME类型image/tiff);

?支持无线位图(WBMP)编码解码(MIME类型image/vnd.wap.wbmp)。

该工具库还使得流插件可以与NIO库一起使用,详情参阅

com.sun.media.imageio.stream包中的 FileChannelImageInputStream、FileChannelImageOutputStream和 RawImageInputStream。前两个分别以java.nio.channels.FileChannel作为输入和输出,最后一个供原始格式解码器javax.imageio.ImageReader读取原始数据。同时该工具还支持JAI操作"ImageRead" 和"ImageWrite" ,这两个操作都包含在包内,分别对应于现有的JAI操作集{"Stream", "FileLoad", "URL"}和{"Encode", "FileStore"}。

安装Java高级图像处理图像I/O工具包1.0

要使用Java高级图像处理图像I/O工具包,首先必须根据使用的操作系统平台从Early Access page for the RC下在适当的版本。支持的操作系统有Solaris SPARC、Solaris x86、Linux和Windows,大小也随着版本而异, Solaris SPARC 版有5MB之多,而其他版本则只有1MB左右。下载页面的

README-jai_imageio.html文件提供了有关的下载信息和安装说明,同时还给出了所支持的编码解码插件的版本信息,比如BMP的编码解码器可以读取版本号从3到5的图像,但是只能写版本号3的图像。

安装后除了本机库之外还有三个JAR文件。如果安全设置禁止使用,这些本机库就不会发生作用,而回复到仅仅使用内建的纯Java版JPG和PNG格式的状态。如果是安装到Unix机器上,则需要把上述的三个JAR文件安装到jre/lib/ext 目录下。对于Solaris-SPARC用户,需要把6个.so文件复制到jre/lib/sparc 目录中。Solaris-x86和Linux用户应把libclib_jiio.so文件复制到

jre/lib/i386中。

如果要安装到Microsoft Windows的机器上,同样需要把三个JAR文件复制到

jre\lib\ext目录中,另外把clib_jiio.dll文件放到jre\bin下。

注意:上述目录都是相对于JRE的根目录而言的。

只要把这些文件放到了规定的位置,JAI图像I/O工具包就安装完成了。

Java高级图像处理图像I/O工具包1.0的用法

安装Java高级图像处理图像I/O工具包并不改变图像I/O库的用法。正确编写的代码无需变更也能正常运行。可能唯一需要改变的就是新的图像格式使用何种扩展名,你可以使用getWriterFormatNames之类的函数所返回的名称,也可以对各种格式进行硬编码。

为了说明已有的代码仍能工作,首先重新运行一遍前面的GetFormats程序,就可以看到对新的MIME类型的支持:

[pre]Readers: [image/png, image/x-portable-graymap,

mage/jpeg, image/jpeg2000, image/x-png,

mage/tiff, image/vnd.wap.wbmp, image/x-portable-pixmap,

mage/x-portable-bitmap, image/bmp, image/gif,

mage/x-portable-anymap, ]

Writers: [image/png, image/x-portable-graymap, image/jpeg,

mage/jpeg2000, image/x-png, image/tiff,

mage/vnd.wap.wbmp, image/x-portable-pixmap,

mage/x-portable-bitmap, image/bmp,

mage/x-portable-anymap, ][/pre]然后运行Converting程序,现在可以把图像转换成更多的格式。

尽管对于默认的编码解码器而言,那些缺省的读写设置通常已经足够了,但是也许你希望改变新增编码解码器的设置。改变这些设置无需调用ImageIO的read和write方法,而只要针对指定的MIME类型从ImageIO获得相应的ImageReader或ImageWriter对象,然后改变这些对象的设置就可以了。一旦改变了默认的ImageReadParam或者ImageWriteParam,就可以返回去调用ImageIO的read和 Write方法。否则的话,就只能在ImageReader和ImageWriter 中进行读写操作。比如,JPEG的ImageWriter会要求你通知编码器生成优化的图像Huffman表。其它的编码解码器也会提供它们自己的相应设置。

结论

对Java 平台可用的扩展而言,Java高级图像处理图像I/O工具包1.0 RC是一个受欢迎的增强。一旦通过RC阶段,新增的图像格式支持将是对标准运行时环境的一个令人鼓舞的改进。库的内容分别放在几个 com.sun.media.imageio包内,有一些还是本机代码库。但是所有库的使用都通过J2SE 1.4引入的标准图像I/O框架。只需要把库添加到JRE中就可以使用它们了。

南京邮电大学数字图像处理与图像通信复习资料

2016年上学期《数字图像处理与图像通信》资料 ===================================================== 一、选择题(共20题) 1、采用幂次变换进行灰度变换时,当幂次取大于1时,该变换是针对如下哪一类图像进行增 强。( B) A 图像整体偏暗 B 图像整体偏亮 C图像细节淹没在暗背景中 D图像同时存在过亮和过暗背景 2、图像灰度方差说明了图像哪一个属性。( B ) A 平均灰度 B 图像对比度 C 图像整体亮度 D图像细节 3、计算机显示器主要采用哪一种彩色模型( A ) A、RGB B、CMY或CMYK C、HSI D、HSV 4、采用模板[-1 1]T主要检测( A )方向的边缘。 A.水平 B.45? C.垂直 D.135? 5、下列算法中属于图象锐化处理的是:( C ) A.低通滤波 B.加权平均法 C.高通滤波 D. 中值滤波 6、维纳滤波器通常用于( C ) A、去噪 B、减小图像动态范围 C、复原图像 D、平滑图像 7、彩色图像增强时, C 处理可以采用RGB彩色模型。 A. 直方图均衡化 B. 同态滤波 C. 加权均值滤波 D. 中值滤波 8、__B__滤波器在对图像复原过程中需要计算噪声功率谱和图像功率谱。 A. 逆滤波 B. 维纳滤波 C. 约束最小二乘滤波 D. 同态滤波 9、高通滤波后的图像通常较暗,为改善这种情况,将高通滤波器的转移函数加上一常数量以 便引入一些低频分量。这样的滤波器叫 B。 A. 巴特沃斯高通滤波器 B. 高频提升滤波器 C. 高频加强滤波器 D. 理想高通滤波器 10、图象与灰度直方图间的对应关系是 B __ A.一一对应 B.多对一 C.一对多 D.都不 11、下列算法中属于图象锐化处理的是: C A.低通滤波 B.加权平均法 C.高通滤 D. 中值滤波 12、一幅256*256的图像,若灰度级数为16,则存储它所需的比特数是:( A ) A、256K B、512K C、1M C、2M 13、噪声有以下某一种特性( D ) A、只含有高频分量 B、其频率总覆盖整个频谱 C、等宽的频率间隔内有相同的能量 D、总有一定的随机性 14. 利用直方图取单阈值方法进行图像分割时:(B) a.图像中应仅有一个目标 b.图像直方图应有两个峰 c.图像中目标和背景应一样大 d. 图像中目标灰度应比背景大 15. 在单变量变换增强中,最容易让人感到图像内容发生变化的是( C )

彩色图像处理

1种颜色 颜色定义:颜色是对象的一种属性,它取决于三个因素。 (1)光源-照射光的光谱特性或光谱能量分布 (2)物体-被照射物体的反射特性 (3)成像接收器(眼睛或成像传感器)-光谱能量吸收特性 2色模型 颜色模型,也称为颜色空间或颜色系统,是用于精确校准和生成各种颜色的一组规则和定义。其目的是在某些标准下以通常可接受的方式简化颜色规格。可以通过坐标系描述颜色模型,并且系统中的每种颜色都可以由坐标空间中的单个点表示。 RGB模型:此模型是行业中的颜色标准。通过更改红色和绿色蓝色三种颜色的亮度及其叠加,可以获得各种颜色。该标准几乎涵盖了人类视觉可以感知的所有颜色,并且是目前使用最广泛的颜色模型之一。

CMY模型:颜色合成方法由绿色,品红色和黄色三种基本原色组成。因为彩色显示不是直接来自光的颜色,而是光被对象吸收并被产生的残留光反射,所以CMY模型也称为减法混合模型。 CMYK模型:将黑色添加到CMY模型。 RGB和CMY之间的转换:在MATLAB中,可以通过imcompliance()函数轻松实现RGB和CMY之间的转换 cmy = imcomplement(rgb); rgb = imcomplement(cmy); HSI模型:HSI模型基于人类视觉系统,并通过使用色相,饱和度和强度三个元素直接描述颜色 @亮度是指人们感到光亮的阴影。光的能量越大,亮度越大。 @Hue是颜色的最重要属性,它决定颜色的本质,颜色的本质由反射光的主波长确定。不同的波长产生不同的色彩感觉。

@饱和度是指颜色的深度和强度,饱和度越高,颜色越深。饱和深度与白色的比率有关,白色比率越大,饱和度越低。 从RGB到HSI的颜色转换及其实现 数字; 子图(1,2,1); rgb = imread('plane.bmp)。 imshow(rgb); title('rgb'); 子图(1,2,2); hsi = rgb2hsi(rgb); imshow(hsi); title('hsi'); 从HSI到RGB的颜色转换及其实现 数字 子图(1,2,1);

基于Java的图形图像处理软件的设计与实现

目录 引言 (4) 第一章绪论 (5) 1.1.1 计算机图形图像学的发展简史 (5) 1.1.2现有图形图像处理软件 (5) 1.2课题研究的目的及意义 (6) 第二章图形图像处理软件开发技术基础 (7) 2.1 Java Swing 简介 (7) 2.1.1 Swing的特性 (7) 2.1.2 Swing程序包和类 (8) 2.2 MVC体系结构 (9) 2.2.1 模型 (9) 2.2.2 视图 (9) 2.2.3 控制器 (10) 第三章图形图像软件的设计 (11) 3.1图形处理模块的设计 (11) 3.1.1结构设计 (11) 3.1.2功能描述 (11) 3.1.3图形处理模块结构图 (11) 3.1.4主要类设计.................................................................... 错误!未定义书签。 3.2 图像处理模块的设计 (12) 3.2.1结构设计 (12) 3.2.3结构图 (13) 4.1 绘图功能的详细设计与实现 (15) 4.1.1 菜单栏 (15) 4.1.2工具栏 (16) 4.1.3画图区 (16) 4.1.4状态栏 (17) 4.2 图像编辑的详细设计与实现 (18) 4.3滤镜处理的详细设计与实现 (19) 4.3.1 图像增强 (19) 4.3.2图像边缘检测 (21) 4.3.3 图像平滑处理 (23) 4.3.4 系统测试 (24) 结论 (26) 致谢 (27)

图形图像处理软件的设计与实现 摘要:随着计算机技术的迅速发展,图形图图像技术在各个领域的研究和应用日益深入和广泛。由于图形图像各种算法的实现,使得其处理速度越来越快,能更好的为人们服务。图形图像处理的信息量很大,对处理速度的要求也比较高。Java 强大的运算和图像展示功能,使图像处理变得更加的简单和直观。同时系统所有的操作设计得十分简单方便,无需具备有专业的知识,也能实现图像图像处理。 Java是一种完全面向对象的语言,Java语言的设计集中于对象及其接口,它提供了简单的类机制以及动态的接口模型。本文基于Java的图形图像处理环境,设计并实现了以图形图像处理系统,展示如何通过利用Java实现对图形图像的各种处理。 关键词:Java 绘图板图形图像编辑滤镜处理边缘处理

MATLAB图像处理函数大全

Matlab图像处理函数大全 目录 图像增强 (3) 1. 直方图均衡化的Matlab 实现 (3) 1.1 imhist 函数 (3) 1.2 imcontour 函数 (3) 1.3 imadjust 函数 (3) 1.4 histeq 函数 (4) 2. 噪声及其噪声的Matlab 实现 (4) 3. 图像滤波的Matlab 实现 (4) 3.1 conv2 函数 (4) 3.2 conv 函数 (5) 3.3 filter2函数 (5) 3.4 fspecial 函数 (6) 4. 彩色增强的Matlab 实现 (6) 4.1 imfilter函数 (6) 图像的变换 (6) 1. 离散傅立叶变换的Matlab 实现 (6) 2. 离散余弦变换的Matlab 实现 (7) 2.1. dct2 函数 (7) 2.2. dict2 函数 (8) 2.3. dctmtx函数 (8) 3. 图像小波变换的Matlab 实现 (8) 3.1 一维小波变换的Matlab 实现 (8) 3.2 二维小波变换的Matlab 实现 (9) 图像处理工具箱 (11) 1. 图像和图像数据 (11) 2. 图像处理工具箱所支持的图像类型 (12) 2.1 真彩色图像 (12) 2.2 索引色图像 (13) 2.3 灰度图像 (14) 2.4 二值图像 (14) 2.5 图像序列 (14) 3. MATLAB图像类型转换 (14) 4. 图像文件的读写和查询 (15) 4.1 图形图像文件的读取 (15) 4.2 图形图像文件的写入 (16) 4.3 图形图像文件信息的查询imfinfo()函数 (16) 5. 图像文件的显示 (16) 5.1 索引图像及其显示 (16) 5.2 灰度图像及其显示 (16) 5.3 RGB 图像及其显示 (17)

图像处理技术的研究现状和发展趋势

图像处理技术的研究现状和发展趋势 庄振帅 数字图像处理又称为计算机图像处理,它是指将图像信号转换成数字信号并利用计算机对其进行处理的过程。数字图像处理最早出现于20世纪50年代,当时的电子计算机已经发展到一定水平,人们开始利用计算机来处理图形和图像信息。数字图像处理作为一门学科大约形成于20世纪60年代初期。早期的图像处理的目的是改善图像的质量,它以人为对象,以改善人的视觉效果为目的。图像处理中,输入的是质量低的图像,输出的是改善质量后的图像,常用的图像处理方法有图像增强、复原、编码、压缩等。首次获得实际成功应用的是美国喷气推进实验室(JPL)。他们对航天探测器徘徊者7号在1964年发回的几千张月球照片使用了图像处理技术,如几何校正、灰度变换、去除噪声等方法进行处理,并考虑了太阳位置和月球环境的影响,由计算机成功地绘制出月球表面地图,获得了巨大的成功。随后又对探测飞船发回的近十万张照片进行更为复杂的图像处理,以致获得了月球的地形图、彩色图及全景镶嵌图,获得了非凡的成果,为人类登月创举奠定了坚实的基础,也推动了数字图像处理这门学科的诞生。在以后的宇航空间技术,如对火星、土星等星球的探测研究中,数字图像处理都发挥了巨大的作用。数字图像处理取得的另一个巨大成就是在医学上获得的成果。1972年英国EMI公司工程师Housfield发明了用于头颅诊断的X射线计算机断层摄影装置,也就是我们通常所说的CT(Computer Tomograph)。CT的基本方法是根据人的头部截面的投影,经计算机处理来重建截面图像,称为图像重建。1975年EMI公司又成功研制出全身用的CT 装置,获得了人体各个部位鲜明清晰的断层图像。1979年,这项无损伤诊断技术获得了诺贝尔奖,说明它对人类作出了划时代的贡献。与此同时,图像处理技术在许多应用领域受到广泛重视并取得了重大的开拓性成就,属于这些领域的有航空航天、生物医学过程、工业检测、机器人视觉、公安司法、军事制导、文化艺术等,使图像处理成为一门引人注目、前景远大的新型学科。随着图像处理技术的深入发展,从70年代中期开始,随着计算机技术和人工智能、思维科学研究的迅速发展,数字图像处理向

计算机图形学与图像处理教案

精编资料 了解图形学与图像处理的发展,应用以及当前国际国内研究的热点和重要成果;理解图形学与图像处理对图元以及图像的分析与理解的以及二维与三维形状重建等;... 图形,图像 计算机图形学与图像处理教案 学时:36,其中讲授26学时,上机10学时。 适用专业:信计专业与数学专业。 先修课程:高等数学、线性代数、数据结构、VC++或者C# 一、课程的性质、教育目标及任务: 计算机图形学与图像处理实际上是两门课程的一个综合。这是一门研究图形学与图像处理的基本理论、方法及其在智能化检测中应用的学科,是计算机科学与技术等电子信息类本科专业的专业课。 本课程侧重于对图形学的基本图元的基本生成,以及图像处理中对图像在空间域与频率域的基本处理算法的研究。并对图形学与图像处理基本理论和实际应用进行系统介绍。目的是使学生系统掌握图形学与图像处理的基本概念、原理和实现方法,学习图形学与图像处理分析的基本理论、典型方法和实用技术,具备解决智能化检测与控制中应用问题的初步能力,为在计算机视觉、模式识别等领域从事研究与开发打下扎实的基础。 二、教学内容基本要求: 1.了解图形学与图像处理的发展、应用以及当前国际国内研究的热点和重要成果; 2.理解图形学与图像处理对图元以及图像的分析与理解的以及二维与三维形状重建等; 3.掌握图形学与图像处理中最基本、最广泛应用的概念、原理、理论和算法以及基本技术和方法; 4.能够运用一门高级语言编写简单的图形学与图像处理软件,实现各种图形学与图像处理的算法。 三、主要教学内容:

学习图形学的基本概念,了解光栅显示系统的原理;掌握基本图元的生成算法:直线的生成算法、曲线的生成算法、多边形的生成算法;掌握区域填充、线段剪裁以及多边形的剪裁;掌握图元的几何变换、以及投影的基本理论。 了解图像的概念;图像数字化的基本原理:取样、量化、数字图像的表示;线性系统理论在图像变换,滤波中的应用:线性系统理论、离散图像变换、小波变换;图像编码压缩、增强,以及复原的基本方法:无失真压缩、有失真压缩、变换编码、压缩标准、图像滤波原理、复原滤波器、直方图运算、点运算;图像识别的基本原理和方法:图像分割、图像分析、图像分类; 四、学时安排 总课时72学时,图形学36学时,其中包括26个学时讲授,10个学时上机;图像处理36学时,其中包括26个学时讲授,10个学时上机; 五、参考书目: (1), Donald Hearn & M,Pauline Baker (2),< Computer Graphics with OpenGL, Third Edition> Donald Hearn & M,Pauline Baker (3),计算机图形学实用技术陈元琰,张晓竞,科学出版社 (4),计算机图形学倪明田,吴良芝北京大学出版社 (5) <>, Rafael C. Gonzalez & Richard E. Woods. Publishing House of Electronics Industry. (6) << Image Processing ,Analysis, and Machine Vision ( second Edition)>> ,Milan Sonka, V aclav Hlavac. Publishing House of People Post 第一讲图形学基本概念 重点: 了解图形学概念;掌握图形学中的几个概念:分辨率,光栅,扫描线,像素,帧缓冲器;了解图形学的基本用途;掌握图形学光栅扫描显示系统的工作原理; 难点: 光栅扫描显示系统的工作原理; 教学方法: 课堂讨论式教学方法,基于问题式以及启发式教学方法相结合。双语教学。 主要内容: 1,什么是计算机图形学? 2,计算机图形学的主要用途是什么? 3,计算机图形学中的一些基本概念: 什么是分辨率?什么是光栅?什么是光栅扫描系统的扫描线?什么是像 素?什么是帧缓冲器?什么是刷新率?

MATLAB中图像函数大全 详解及例子

图像处理函数详解——strel 功能:用于膨胀腐蚀及开闭运算等操作的结构元素对象(本论坛随即对膨胀腐蚀等操作进行讲解)。 用法:SE=strel(shape,parameters) 创建由指定形状shape对应的结构元素。其中shape的种类有 arbitrary' 'pair' 'diamond' 'periodicline' 'disk' 'rectangle' 'line' 'square' 'octagon 参数parameters一般控制SE的大小。 例子: se1=strel('square',6) %创建6*6的正方形 se2=strel('line',10,45) %创建直线长度10,角度45 se3=strel('disk',15) %创建圆盘半径15 se4=strel('ball',15,5) %创建椭圆体,半径15,高度5

图像处理函数详解——roipoly 功能:用于选择图像中的多边形区域。 用法:BW=roipoly(I,c,r) BW=roipoly(I) BW=roipoly(x,y,I,xi,yi) [BW,xi,yi]=roipoly(...) [x,y,BW,xi,yi]=roipoly(...) BW=roipoly(I,c,r)表示用向量c、r指定多边形各点的X、Y坐标。BW选中的区域为1,其他部分的值为0. BW=roipoly(I)表示建立交互式的处理界面。 BW=roipoly(x,y,I,xi,yi)表示向量x和y建立非默认的坐标系,然后在指定的坐标系下选择由向量xi,yi指定的多边形区域。 例子:I=imread('eight.tif'); c=[222272300270221194]; r=[21217512112175]; BW=roipoly(I,c,r); imshow(I)

java图形图象处理论文

摘要 随着计算机技术的迅速发展,数字图像处理技术在医学领域的研究和应用日益深入和广泛。现代医学已越来越离不开医学图像处理技术。医学图像处理技术在临床诊断、教学科研等方面发挥了重要的作用。计算机图像处理技术与影像技术的结合从根本上改变了医务人员进行诊断的传统方式。充分地利用这些技术可以提高诊断的正确性和准确性,提高诊断效率,降低医疗成本,可以更加充分地发挥各种医疗设备的功能。而且,随着数字化、智能化进程的深人,图像处理技术在医疗卫生领域将会有更加广阔的应用前景。 Java是Sun公司推出的一种面向对象编程语言。Java非常适合于企业网络和Internet 环境,现已成为Internet中最受欢迎、最有影响的编程语言之一。目前国内使用Java语言开发的图像处理系统比较少,这也增加了这方面的研究价值。 本文首先对图像增强和图像分割中的几种算法进行了介绍,包括线性灰度变换,伪彩色处理,平滑处理,中值滤波,阈值分割,边缘检测等。然后用Java语言对上述各算法编程实现,并设计Java GUI(图形用户界面)用来显示图像处理的结果,以及创建一个数据库用于存储医学图像。 关键词:医学图像;图像增强;图像分割;面向对象

Abstract As the computer technique’s quickly development, the image process technique having been more deeply and widely in the use and study of medical science. The modern medical science can not work well without the medical image processing technology; it has made an important use in clinical diagnosis and education study. The combination of the image processing technique and imaging technique has changed the way that traditional diagnosis. Make adequately use of this techniques will be increase accuracy, increase the efficiency of diagnosis, decrease the cost of medical treatment and make the most use of function with medical treatment equipments. Moreover, as the deeply with the arithmetic figure and the intelligence, the image processing technique will have a more wonderful future. Java is a kind of object-oriented programming language from the company of Sun. The Java is becoming a most welcome and influence programming language which suits for the business network and the environment of internet. Currently, use Java language to developed image processing system is not very frequency in our country. So, this is a cause of increasing the value of study. This project introduces some kinds of algorithms in image enhancement and image segmentation. It includes linear grey level transformation, pseudo-color processing, smooth processing, median filter, threshold segmentation, edge detection and so on. Then, use Java to program and realize. And show the result of image processing using Java GUI (Graphical User Interface), as well as create a database to stock medical image. Key Words: medical image; image enhancement; image segmentation; object-oriented

图形图像处理期末考试A、B卷及答案

计算机专业《图形图像处理》期末考试试卷(A) 考试时间:90分钟 姓名____________ 学号____________ 成绩______________ 填空题(50分)每空1分 除了使用按钮进行软件的退出之外,还有其他3种方法同样可以将软件关闭,分别是 ___________、___________、___________。 新建文件的方法有3种,分别是___________、___________、___________。 打开文件的方法有3种,分别是___________、___________、___________。 将鼠标光标放置在_________栏的蓝色区域上双击,即可将窗口在最大化和还原状态之间切换。按键盘中的_______键可以将工具箱、属性栏和控制面板同时显示或隐藏。 在RGB【颜色】面板中【R】是___________颜色、【G】是___________颜色、【B】是___________颜色。 图像文件的大小以___________和___________为单位,它们之间的大小换算单位为___________KB=___________MB。 按键盘中的___________键,可以将当前工具箱中的前景色与背景色互换。 当利用工具绘制矩形选区时,按下键盘中的___________形态的选择区域; 按下键盘中的___________形态的选择区域;按下键盘中的 绘制___________形态的选择区域。 在Photoshop系统中,新建文件默认分辨率值为___________像素点/英寸,如果进行精美彩印刷图片的分辨率最少应不低于__________像素点/英寸。 在【通道】面板底部有四个按钮,它们的功能分别是:___________按钮、___________按 钮、___________按钮、___________按钮。 在利用滤镜菜单栏中的【高斯模糊】命令进行虚化的投影效果制作时,应注意图层面板中的___________选项不被勾选。 可以快速弹出【画笔预设】面板的快捷键是_______。 在图像文件中创建的路径有两种形态,分别为________和________。 矢量图形工具主要包括______工具、______工具、______工具、______工具、______工具和______工具。 在Photoshop 7.0软件中,可以将输入的文字转换成________和_______进行编辑,也可以将其进行栅格化处理,即将输入文字生成的文字层直接转换为________。另外还可以将输入的_______和

彩色图像处理存在的问题及应对策略(附图)

彩色图像处理存在的问题及应对策略(附图)相对于黑白图像处理,彩色图像处理有明显的优势,但是应考虑以下关键问题: 一、色彩准确性 色彩准确性即彩色图像处理需要考虑的颜色精度和差异程度。 许多图像处理中,处理算法必须区分检测到的颜色和目标值之间的差异。因此颜色的准确性非常重要,决定里一个算法的成败。 决定色彩准确性的的是插值算法,插值可能导致颜色检测的细微差异,因为它需要周围像素来确定每个像素的颜色值。 二、色彩串扰性 色彩串扰也是影响色彩准确性的关键因素。色彩串扰是由于红、蓝、绿通道的光谱响应之间相当大的重叠造成的。 当通道之间有大量重叠时,某些颜色系列,尤其是黄或蓝绿色系列,会有很大的不确定性。 色彩串扰会导致色彩伪像和色彩混淆。色彩处理时需要注意提取目标与背景色彩串扰的大小,可通过偏光镜等尽量避免色彩串扰。 ▲棱镜相机中使用的二向色涂层比拜耳滤光片产生更陡的光谱曲线,以最大限度地减少由色彩串扰引起的不确定性。

三、莫尔图案 当图像中包含重复阵列图像时,图像会出现摩尔条纹。 大规模混叠可导致莫尔图案的出现。虽然任何需要捕获更高空间频率的相机都会出现这种效果,但拜耳相机 - 再次因为插值技术 - 更容易出现这种情况。 ▲具有重复颜色混叠的区域中的人造颜色图案可以出现在拜耳图像中。 四、色彩对分辨率的影响 与单色系统相比,彩色相机大大降低了相机的有效分辨率。 虽然拜耳相机可能有500万像素(5百万像素),但插值过程会“平均”许多小细节,使有效分辨率达到整个像素数的三分之一左右。 彩色图像处理存在以上四个问题,因此进行彩色图像处理时需要采取以下四种措施: 一、光照水平和灵敏度 根据系统的亮度级别和可容忍的增益/噪声级别,选择合适的关照说以及相机色彩灵敏度。

数字图像处理-作业题及部分答案解析演示教学

1.数字图像与连续图像相比具有哪些优点?连续图像f(x,y与数字图像I(c,r中各量的含义 是什么?它们有何联系和区别? (To be compared with an analog image, what are the advantages of a digital image? Let f(x,y be an analog image, I(r, c be a digital image, please give explanation and comparison for defined variables: f/I, x/r, and y/c 2.图像处理可分为哪三个阶段? 它们是如何划分的?各有什么特点? (We can divide "image processing" into 3 stages, what are they? how they are divided? What are their features? 答:低级处理---低层操作,强调图像之间的变换,是一个从图像到图像的过程; 中级处理---中层操作,主要对图像中感兴趣的目标进行检测和测量,从而建立对图像的描述,是一个从图像到数值或符号的过程; 高级处理---高层操作,研究图像中各目标的性质和相互联系,得出对图像内容含义的理解以及对原来客观场景的解释; 3.试从结构和功能等角度分析人类视觉中最基本的几个要素是什么?什么是马赫带效应? 什 么是同时对比度?它们反映了什么共同问题? (According to the structure and function of the eyes, what are the basic elements in human vision? What is the Mach Band Effect? What is Simultaneous Contrast? What common facts can we infer from both Mach Band Effect and Simultaneous Contrast? 答:人的视觉系统趋向于过高或过低估计不同亮度区域边界的现象称为“马赫带”效应;同时对比度指的是人的视觉系统对某个区域感觉到的亮度除了依赖于它本身的强度,还与背景有关.

计算机图形学与图形图像处理技术分析

计算机图形学与图形图像处理技术分析 计算机技术的普及与发展带动了全社会的进步,现代社会活动中几乎所有领域都在使用计算机技术,该技术为企业节约了大量的生产成本,提高了工作效率,改变了人们的生活方式。计算机图形学和图形图像技术在人们工作中的使用日益频繁,凸显了现代科学应用领域对该技术研究的重要性,本文就计算机图形学与图形图像处理技术从定义、区别和联系以及具体应用几方面展开论述,期望该技术能够为人们的工作和生活提供更大便利。 标签:计算机图形学;图形图像处理;技术 1概述 1.1概念 计算机图像处理是指利用计算机技术,来对图像进行一定的加工和分析,以获取最终的目标图像及结果。 目前该项处理技术在应用中,主要经过两个基本过程。第一,转化要研究的图像,把它变成通过计算机能够清晰辨别的数据,这样把图像存放在计算机中;第二,在将电脑中的图像做出相关处理与转化时,将采用不同形式的计算方法进行处理。 1.2图像的分类 根据图像能否在计算机上处理,将图像的种类进行了以下归类: 第一类,数字化图像。由于科技的迅猛发展,图像已经逐渐走向数字化。同时,数字化图像具有与生俱来的优势,例如处理方法便捷、精准度高等,满足了现代化国家的需求。 第二类,模拟图像。在现代生活中,模拟图像到处可以看到,比如胶片照相机相片、光学图像等,这些都是模拟图像。模拟图像一般在输出时较方便快捷,但是也有不是很灵活、精密度不够的缺陷。 2计算机图形与图像技术的区别与联系 计算机图形处理技术与图像处理技术是两种技术,两种技术密不可分,两者的有机融合才能将图像和图像处理更加符合客户需求,两者的转换和联系如图1所示,但两者也有若干区别: (1)理论基础不同。计算机图形学的理论基础是计算几何、分型、透视、变换、仿射理论、分形理论等,而计算机图像处理技术的理论基础是统计学、模

JAVA图像处理分段线性拉伸

import com.sun.media.jai.widget.DisplayJAI; import java.awt.GridLayout; import javax.media.jai.JAI; import javax.media.jai.PlanarImage; import javax.swing.BorderFactory; import javax.swing.JScrollPane; import javax.swing.border.TitledBorder; /* * PieceWise.java * 版权所有- 贺向前 * 邮件:hexiangqian@https://www.doczj.com/doc/fd10505102.html, * QQ: 910019784 * 未经授权,不得复制、传播。 */ /** * * @author Administrator */ public class PieceWise extends javax.swing.JFrame { /** Creates new form PieceWise */ public PieceWise() { initComponents(); setTitle("分段线性拉伸"); setLayout(new GridLayout(2,2)); } private PlanarImage loadImage(String fileName){ PlanarImage im=JAI.create("fileload",fileName); return im; } private void showImage(PlanarImage im,String str){ DisplayJAI dj=new DisplayJAI(im); JScrollPane jp=new JScrollPane(dj); TitledBorder titledBorder=BorderFactory.createTitledBorder(str); jp.setBorder(titledBorder); add(jp); } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is

图形图像处理基础知识.

图形图像处理技能培训和鉴定标准 1定义 使用计算机及图形图像输入输出设备和图形图像处理软件处理静态或动态图形图像的工作技能。 2适用对象 从事工艺美术、室内装璜、广告艺术、建筑外观、产品模型、影视图像、图文排版、图文印刷、计算机多媒体技术工作人员以及其他需要掌握图形图像处理软件操作技能的社会劳动者。 3相应等级 图像制作员:专项技能水平达到相当于于中华人民共和国职业资格技能等级四级。能独立、熟练地应用图形图像制作软件基本功能完成静态或动态图形图像处理工作。 高级图像制作员:专项技能水平达到相当于于中华人民共和国职业资格技能等级三级。能独立、熟练地结合应用图形图像软件基本功能完成静态和动态图形图像处理工作。图像制作师:专项技能水平达到相当于于中华人民共和国职业资格技能等级二级。能独立、熟练地结合应用图形图像软件的功能完成静态和动态图形图像创意和设计工作。 4培训期限 图像制作员:短期强化培训 100~120学时。 高级图像制作员:短期强化培训 150~170学时。 图像制作师:短期强化培训 150~170学时。 5技能标准

5.1图像制作员 5.1.1一般知识要求 了解平面及立体构图基本知识和计算机彩色模式及基本配色原理; 掌握微机及常用图形图像处理设备 (如鼠标器、扫描仪、打印机等基本连接和简单使用的相关知识; 掌握计算机 DOS 和 Windows 两种操作系统的基本知识和基本命令的使用, 特别是文件管理、图形图像文件格式及不同格式的特点和相互间转换的基本知识; 掌握点阵图像和矢量图形的特点; 了解动画的基本概念。 5.1.2技能要求 具有图形图像制作软件基本的使用能力; 具有基本的图像扫描设备和输出设备的使用能力; 实际能力要求达到:能使用图形图像处理相关软件和图像扫描、输出设备独立完成三维静态图像和动画制作工作。 5.2高级图像制作员 5.2.1一般知识要求 了解平面和立体构图基本知识和计算机彩色模式及基本配色原理; 掌握微机及常用图形图像处理设备 (如鼠标器、扫描仪、打印机等基本连接和简单使用的相关知识;

数字图像处理之彩色图像的处理

实验六彩色图像的处理 一、实验目的 1、掌握matlab中RGB图像与索引图像、灰度级图像之间转换函数。 2、了解RGB图像与不同颜色空间之间的转换。 3、掌握彩色图像的直方图处理方法。 二、实验内容及步骤 1、RGB图像与索引图像、灰度级图像的转换。 close all RGB=imread('flowers.tif'); [R_i,map]=rgb2ind(RGB,8);%RGB图像转换为8色的索引图像 figure imshow(R_i,map) [R_g]=rgb2gray(RGB);%RGB图像转换为灰度级图像 figure imshow(R_g)

思考: 将RGB 图像’flowers.tif ’分别转换为32色、256色、1024色索引图像,是否调色板所表示的颜色值越多图像越好? close all

RGB=imread('flowers.tif'); [R_i1,map]=rgb2ind(RGB,8);%RGB图像转换为8色的索引图像 [R_i2,map]=rgb2ind(RGB,32);%RGB图像转换为32色的索引图像 [R_i3,map]=rgb2ind(RGB,256);%RGB图像转换为256色的索引图像 [R_i4,map]=rgb2ind(RGB,1024);%RGB图像转换为1024色的索引图像 Subplot(221);imshow(R_i1,map);title('8色的索引图像'); Subplot(222);imshow(R_i2,map);title('32色的索引图像'); Subplot(223);imshow(R_i3,map);title('256色的索引图像'); Subplot(224);imshow(R_i4,map);title('1024色的索引图像'); 结论:随着索引值的增加图像的质量也有增加,更加清晰,色彩也更加鲜明。但不是不是颜色值越多越好。当索引值过高时,会出现无法识别而致模糊的情况出现。 2、RGB图像与不同颜色空间的转换。 (1) RGB与HSI颜色空间的转换 HSI应用于彩色图像处理。实验六文件夹中rgb2hsi( )函数将RGB颜色空间转换为HSI 空间并显示各分量,hsi2rgb( )函数是将HSI颜色空间转换为RGB颜色空间。 close all

一些图像处理函数用法(精华)

一些图像处理函数用法(精华) imshow imshow是用来显示图片的,如 I = imread('moon.tif'); figure,imshow(I); 而有时为了数据处理,要把读取的图片信息转化为更高的精度, I = double(imread('moon.tif')); 为了保证精度,经过了运算的图像矩阵I其数据类型会从unit8型变成double型。如果直接运行imshow(I),我们会发现显示的是一个白色的图像。这是因为imshow()显示图像时对double型是认为在0~1范围内,即大于1时都是显示为白色,而imshow显示uint8型时是0~255范围。而经过运算的范围在0-255之间的double型数据就被不正常得显示为白色图像了。 有两个解决方法: 1、imshow(I/256); -----------将图像矩阵转化到0-1之间 2、imshow(I,[]); -----------自动调整数据的范围以便于显示 从实验结果看两种方法都解决了问题,但是从显示的图像看,第二种方法显示的图像明暗黑白对比的强烈些!图像为y,为何用imshow(uint8(y))和imshow(y,[])时的图像显示结果不同? 回答: imshow(uint8(y))是按照256级灰度显示y得绝对数据。0表示黑色,255表示白色,y中大于255的值强制为255。 imshow(y,[]),将y中的最小值看作0(black),最大值看作255(white) -->增加图像的对比度。 所以两者不同。 padarray 功能:填充图像或填充数组。 用法:B = padarray(A,padsize,padval,direction) A为输入图像,B为填充后的图像, padsize给出了给出了填充的行数和列数,通常用[r c]来表示, padval和direction分别表示填充方法和方向。 它们的具体值和描述如下: padval:'symmetric' 表示图像大小通过围绕边界进行镜像反射来扩展; 'replicate' 表示图像大小通过复制外边界中的值来扩展; 'circular' 图像大小通过将图像看成是一个二维周期函数的一个周期来进行扩展。 direction:'pre' 表示在每一维的第一个元素前填充; 'post' 表示在每一维的最后一个元素后填充;

图形与图像处理

第三章图形与图像处理 教学目标:了解图形与图像概述;了解静止图像压缩标准;了解显 示设备与扫描仪;掌握图像处理软件。 重点难点:图像处理软件。 教学内容:1.图形与图像概述 2.静止图像压缩标准 3.显示设备与扫描仪 4.图像处理软件 教学课时:3学时 教学过程: 3.1 图形与图像概述 一、光与色彩 图形与图像都是视觉媒体元素。 光的本质是电磁波,其电磁光谱如下: 可见光 104 106 108 1010 1012 1014 1016频率(Hz) 4 102 100 10-2 10-4 10-6 10-8波长(m)

可见光:780nm~380nm波长 色彩是人类视觉对可见光的感知结果,在可见光谱内不同波长的光会引起不同颜色感觉 光的波长与颜色对照 三基色原理:将红、绿、蓝三种颜色按照不同的比例进行组合,就可以引起人眼对自然界的全部颜色感觉。 颜色模式:指表示色彩的数字方法。 ①RGB相加混合模式 RGB模式适用于显示器这类发光物体。 RGB是由三种基本颜色Red红、Green绿、Blue蓝组成,每种颜色的亮度大小用数字0-255表示,共有1670万种颜色。 R=G=B=0 黑色 R=G=B=255 白色 0

CMYK是由Cyan青色、Magenta品红色、Yellow黄色、Black 黑色组成,每种颜色用百分数0-100%来表示。 C=M=Y=K=0% 白色 C=M=Y=K=100% 黑色③HSB模式 HSB模式是根据人对颜色的感觉来描述的,适合从事艺术绘画的人描述色彩的方法。 HSB是由Hue色调、Saturation饱和度、Brightness亮度组成。 色调由可见光谱中各分量的波长来确定。 饱和度表示色彩的浓淡程度(掺入白光)。 亮度表示色彩的明亮程度(光的能量)。 色度=色调+饱和度④YUV/YIQ模式 YUV模式用于PAL彩色电视制式,其中: Y表示亮度信号,可构成灰色图像 U、V表示色度信号,是构成色彩的两分量 ⑤黑白模式与灰度模式 黑白模式采用1bit表示一个像素,只能显示黑色和白色,适合制作黑白的线条图。 灰度模式采用8bit表示一个像素,形成256个等级,适合用来模拟黑白照片的图像效果。 二、图形与图像 1.图形(矢量图形、几何图形) 矢量图是用一组命令来描述图形,这些命令给出构成图形的各

第11章java图像图形处理

第十一章图形图像处理 在前边的章节的图形用户界面的处理中,已经看到了图像的应用。本章将简要介绍如何在用户屏幕上绘制图形以及如何显示图像。 图形 在前边我们已经介绍了用户屏幕和容器的概念,也看到了如何在容器中添加组件。一般来说,在用户屏幕上绘制图形其实就是在容器组件上绘制图形。因此需要注意以下两点:1)组件中的坐标系统 容器组件的坐标系统类似于屏幕的坐标系统,坐标原点(0,0)在容器的左上角,正x 轴方向水平自左向右,正y轴方向垂直自上向下。 在java中,不同的图形输出设备拥有自己的设备坐标系统,该系统具有与默认用户坐标系统相同的方向。坐标单位取决于设备,比如,显示的分辨率不同,设备坐标系统就不同。一般来说,在显示屏幕上的计量单位是像素(每英寸大约90个像素),在打印机上是点(每英寸大约600个点)。Java系统自动将用户坐标转换成输出设备专有的设备坐标系统。 2)图形环境(graphics context) 由于在组件上绘制图形使用的用户坐标系统被封装在Graphics2D类的对象中,所以Graphics2D被称之为图形环境。它提供了丰富的绘图方法,包括绘制直线、矩形、圆、多边形等。 下边我们先介绍与绘制图形相关的类,再介绍绘制图形的方法和步骤。 11.1.1 绘制图形的类 与绘制图形有关的类的层次结构如下: |- | |- |-

Graphics 类是所有图形类的抽象基类,它允许应用程序可以在组件(已经在各种设备上实现)上进行图形图像的绘制。Graphics 对象封装了 Java 支持的基本绘制操作所需的状态信息,其中包括组件对象、绘制和剪贴坐标的转换原点、当前剪贴区、当前颜色、当前字体、当前的逻辑像素操作方法(XOR 或 Paint)等等。 Graphics2D类是从早期版本()中定义设备环境的Graphics类派生而来的,它提供了对几何形状、坐标转换、颜色管理和文本布局更为复杂的控制。它是用于在Java(tm)平台上绘制二维图形、文本和图像的基础类。 GraphicsDevice类定义了屏幕和打印机这类可用于绘制图形的设备。 GraphicsEnvironment类定义了所有可使用的图形设备和字体设备。 GraphicsConfiguration类定义了屏幕或打印机这类设备的特征。在图形绘制过程中,每个 Graphics2D 对象都与一个定义了绘制位置的目标相关联。GraphicsConfiguration 对象定义绘制目标的特征(如像素格式和分辨率等)。在Graphics2D对象的整个生命周期中都使用相同的绘制标准。 Griphics和Graphics2D类都是抽象类,我们无法直接创建这两个类的对象,表示图形环境的对象完全取决于与之相关的组件,因此获得图形环境总是与特定的组件相关。 创建Graphics2D 对象时,GraphicsConfiguration 将为Graphics2D 的目标(Component 或 Image)指定默认转换,所有 Graphics2D 方法都采用用户空间坐标。 一般来说,图形的绘制过程分为四个阶段:确定绘制内容、在指定的区域绘制、确定绘制的颜色、将颜色应用于绘图面。有三种绘制操作:几何图形、文本和图像。 绘制过程中,Graphics2D对象的6个重要属性如下: Paint 颜料属性决定线条绘制的颜色。它也定义填充图形的颜色和模式,系统默认的颜料属性是组件的颜色。 Font 字体属性定义了绘制文本时所使用的字体,系统默认的字体是组件的字体设置。 Stroke 画笔属性确定线型,如实线、虚线或点划线等。该属性也决定线段端点的形状。系统默认的画笔是方形画笔,绘制线宽为1的实线,线的末端为方形,斜角线段接口为45度斜面。 Transform 转换属性定义渲染过程中应用的转换方法。可以使绘制的图形平移、旋转和

相关主题
文本预览
相关文档 最新文档