言而学之

我喜欢开发,喜欢.NET,喜欢ASP.NET,喜欢C#

常用链接

统计

我的网站

最新评论

2008年1月7日 #

网页尺寸标准细说

1、800*600下,网页宽度保持在778以内,就不会出现水平滚动条,高度则视版面和内容决定。
2、1024*768下,网页宽度保持在1002以内,就不会出现水平滚动条,高度则视版面和内决定。
3、在ps里面做网页可以在800*600状态下显示全屏,页面的下方又不会出现滑动条,尺寸为740*560左右  
4、1024*768 下网页的尺寸:width=955,height=600
  800*600 下网页的尺寸:width=760,height=420

一般分辨率在800*600的情况下,页面的显示尺寸为:780*428px;
分辨率在640*480的情况下,页面的显示尺寸为:620*311px;
分辨率在1024*768的情况下,页面的显示尺寸为:1007*600px

页面长度原则上不超过3屏,宽度不超过1屏  
每个标准页面为A4幅面大小,即8.5*11英寸  
全尺寸banner为468*60px,半尺寸banner为234*60px,小banner为88*31px
另外120*90,120*60也是小图标的标准尺寸  
每个非首页静态页面含图片字节不超过60K,全尺寸banner不超过14K
标准网页广告尺寸规格
一、120*120,这种广告规格适用于产品或新闻照片展示。
二、120*60,这种广告规格主要用于做LOGO使用。
三、120*90,主要应用于产品演示或大型LOGO。
四、125*125,这种规格适于表现照片效果的图像广告。
五、234*60,这种规格适用于框架或左右形式主页的广告链接。
六、392*72,主要用于有较多图片展示的广告条,用于页眉或页脚。
七、468*60,应用最为广泛的广告条尺寸,用于页眉或页脚。
八、88*31,主要用于网页链接,或网站小型LOGO。

 

广告形式             像素大小                                  最大尺寸              备注  


BUTTON             120*60(必须用gif)                     7K  
                         215*50(必须用gif)                       7K  
通栏                   760*100                                     25K                 静态图片或减少运动效果  
                         430*50                                       15K  
超级通栏             760*100 to 760*200                  共40K              静态图片或减少运动效果  
巨幅广告              336*280                                    35K  
                          585*120  
竖边广告              130*300                                     25K  
全屏广告              800*600                                     40K                必须为静态图片,FLASH格式  
图文混排                                                                                 各频道不同 15K  
弹出窗口             400*300(尽量用gif)                      40K  
BANNER             468*60(尽量用gif)                        18K  
悬停按钮             80*80(必须用gif)                            7K  
流媒体                300*200(可做不规则形状但尺寸不能超过300*200)          30K 播放时间 小于5秒60帧(1秒/12帧)

网页中的广告尺寸
1.首页右上,尺寸120*60
2.首页顶部通栏,尺寸468*60
3.首页顶部通栏,尺寸760*60
4.首页中部通栏,尺寸580*60
5.内页顶部通栏,尺寸468*60
6.内页顶部通栏,尺寸760*60
7.内页左上,尺寸150*60或300*300
8.下载地址页面,尺寸560*60或468*60
9.内页底部通栏,尺寸760*60
10.左漂浮,尺寸80*80或100*100
11.右漂浮,尺寸80*80或100*100
以上几种说法可能有点小的出入,大家可以探讨一下。
另:IAB和EIAA发布新的网络广告尺寸标准
  当前网络广告的各种尺寸繁多,doubleclick 近期居然数出有1万种不同的广告类型和尺寸正在网上使用。这让广告客户在价格、表现形式方面都难以选择,直接影响到他们对于网络广告的投入。
  美国交互广告署(iab)和欧洲交互广告协会(eiaa)近期发布了有六个网络广告格式的工具盒,希望网络媒体作为标准采用,从而让媒体策划者的工作更容易开展,推进网络广告销售。
  在这6种格式中,除了去年iab发布的4种“通用广告包”中的格式:160x600, 300x250, 180x150及728x90,还包括新公布的468x60 和120x600(擎天柱)2种。
  iab总裁说,这是互联网商业发展的又一个分水岭。6种尺寸将成为整个欧洲市场网站的核心广告格式,广告客户可使用这几种尺寸在全欧洲网络媒体通行,而在以前这是不可能做到的。
  iab曾在7月份说希望网络广告行业弃用一些老旧的、过时的广告格式。但这个提议遭到一些网络媒体的反对,因为被抛弃的一些更小、更轻便的格式仍然有它们的位置,尤其是在大量用户仍然使用窄带上网的情况下,太过严格限制尺寸“标准”会扼杀灵活创新。
  因此,比起“通用广告包”的发布,iab和eiaa此番推出的工具盒有一种折衷的效果——既想达到他们削减广告尺寸数量、整饬行业规范的目的,又不至于让网络广告媒体们反对呼声过高。

posted @ 2008-01-07 17:02 言学 阅读(2792) 评论(0) 编辑

em和px 的区别

这里引用的是Jorux的“95%的中国网站需要重写CSS”的文章,题目有点吓人,但是确实是现在国内网页制作方面的一些缺陷。我一直也搞不清楚px与em之间的关系和特点,看过以后确实收获很大。平时都是用px来定义字体,所以无法用浏览器字体放大的功能,而国外大多数网站都可以在IE下使用。因为

1. IE无法调整那些使用px作为单位的字体大小;
2. 国外的大部分网站能够调整的原因在于其使用了em作为字体单位;
3. Firefox能够调整px和em,但是96%以上的中国网民使用IE浏览器(或内核)。

px像素(Pixel)。相对长度单位。像素px是相对于显示器屏幕分辨率而言的。(引自CSS2.0手册)

em是相对长度单位。相对于当前对象内文本的字体尺寸。如当前对行内文本的字体尺寸未被人为设置,则相对于浏览器的默认字体尺寸。(引自CSS2.0手册)

任意浏览器的默认字体高都是16px。所有未经调整的浏览器都符合: 1em=16px。那么12px=0.75em, 10px=0.625em。为了简化font-size的换算,需要在css中的body选择器中声明Font-size=62.5%,这就使em值变为 16px*62.5%=10px, 这样12px=1.2em, 10px=1em, 也就是说只需要将你的原来的px数值除以10,然后换上em作为单位就行了。

em有如下特点:
1. em的值并不是固定的;
2. em会继承父级元素的字体大小。

所以我们在写CSS的时候,需要注意两点:
1. body选择器中声明Font-size=62.5%;
2. 将你的原来的px数值除以10,然后换上em作为单位;
3. 重新计算那些被放大的字体的em数值。避免字体大小的重复声明。
也就是避免1.2 * 1.2= 1.44的现象。比如说你在#content中声明了字体大小为1.2em,那么在声明p的字体大小时就只能是1em,而不是1.2em, 因为此em非彼em,它因继承#content的字体高而变为了1em=12px。

但是12px汉字例外,就是由以上方法得到的12px(1.2em)大小的汉字在IE中并不等于直接用12px定义的字体大小,而是稍大一点。这个问题 Jorux已经解决,只需在body选择器中把62.5%换成63%就能正常显示了。原因可能是IE处理汉字时,对于浮点的取值精确度有限。不知道有没有其他的解释。

posted @ 2008-01-07 17:01 言学 阅读(330) 评论(0) 编辑

2007年12月19日 #

Log Parser 2.2 如何运作

http://www.microsoft.com/china/technet/community/columns/profwin/pw0505.mspx


简介

近几年,我有许多次被问到“Log Parser 有何用处?”这一问题。每次,我都感到很难找到适当的语言来描述这个工具。每当我找到了一句话来进行描述的时侯,随后都会发现这句话遗漏了一些重要的内容,无法真正表达出该工具的灵活性。当然,这可能是由于开发人员的偏执造成的,不过我对自己的回答,从来没有感到满意过。

我不会告诉您,Log Parser“能做”什么。 能用它来做什么,才是关键。我有很多次都对 Log Parser 的一些特殊应用感到很吃惊,我原以为它们是不可能实现的。我将告诉您它是 如何 运作的,希望这能让您懂得能用它来做什么,而且我会向您介绍该工具的三种最常见的应用方案。我敢肯定,您也会对 Log Parser 的新用途感到吃惊的。

历史点滴

在我们介绍 Log Parser 的内部原理之前,您可能想了解一下该工具的历史背景。2.0 版是 Microsoft 对外发布的第一个版本。Log Parser 1.0 是 Microsoft 的内部测试工具,几年前由本人开发而成,用于实现 IIS 日志记录功能的自动化测试。由于这个工具吸引了许多内部用户,因此本人于 2001 年 11 月推出了 2.0 版,并在 Internet 上提供了免费下载。

不久后,2.1 版随 IIS 6.0 资源工具包一同发布。该工具包包含有对 SQL 引擎功能的重要更新。

最后,2.2 版(目前的版本)于 2005 年 1 月推出。该版本包含了大量输入和输出格式,以及针对 SQL 引擎核心的其它一些重要更新。

返回页首返回页首

Log Parser 如何运作?

Log Parser 使用户可以根据需要混合和匹配 输入格式输出格式,来创建数据处理管道。该工具使用以一种 SQL 语言编写的查询,在上述两个组件间创建管道。

输入格式

输入格式组件能够从各种源,读取并返回信息。输入格式提供的信息类似于数据库表,其中的记录由许多字段组成,而每个字段带有的值属于下列五种可能的数据类型之一:INTEGER、STRING、TIMESTAMP、REAL 和 NULL。

Log Parser 2.2 提供的输入格式包括:

分析 IIS 生成的日志文件并返回日志中的条目的输入格式

分析通用文本日志文件(按 CSV、TSV、NCSA、W3C 和 XML 标准进行格式化)并返回日志所含字段的输入格式

一个返回来自 Windows 事件日志的事件的输入格式

返回 Active Directory 对象、文件和目录以及注册表项上的信息的输入格式

一个分析 NetMon 捕获文件并返回 TCP/IP 数据包和连接上的信息的输入格式

假如没有一个可用的输入格式满足我们的需求,Log Parser 2.2 还允许您编写自定义的 输入格式插件。这些都是简单的 COM 对象,可以用任何编程语言(包括 C# 和脚本语言)来编写。您所要做的就是确定要让插件返回何种信息,只要实现了该插件,就可以像“标准”输入格式那样使用。

输出格式

输出格式的作用与输入格式正好相反:使用 记录,并用记录中的字段执行一些有用的功能。Log Parser 2.2 提供的输出格式能够:

将记录保存到文本文件(按 CSV、TSV、W3C 和 XML 标准格式化)

将记录保存到文本文件(根据特定于用户的通用模板格式化)

将记录显示到控制台或 GUI 窗口中

将记录上载到 SQL 数据库的表中

按 Syslog 标准格式化记录,并将记录分配给 Syslog 服务器、文本文件或用户

创建 Excel 样式的图表,以图形格式呈现记录的数值数据

同样,如果没有一个可用的输出格式满足您的需求,您还可以通过编程方式,利用 Log Parser COM 对象,来使用记录。

核心 SQL 引擎

在输入和输出格式间有一个数据处理引擎,能够通过一种 SQL 语言执行查询。Log Parser 查询实际上是一种用于粘连输入格式和输出格式的一种“胶水”,指定如何在输入格式提供的数据到达输出格式之前,对其进行转换。

这种“胶水”最简单的实例就是“SELECT *”查询。该查询用于指示应该将来自输入格式的记录,按原样传输给输出格式。通常,在 转换 文件格式时,使用这个简单的查询:比如,选择一个能够分析源文件中的数据的输入格式和一个按目标格式将记录写入文件的输出格式,并使用“SELECT *”传输未经处理的记录。

不过,SQL 语言设计用于执行较简单的“SELECT *”更重大的任务。您可以使用 Log Parser,对来自输入格式的数据进行筛选、排序和聚合,将您的计算结果发送到可显示和/或存储您所提取的信息的输出格式。

命令行与可编脚本的 COM 对象

您可以通过两种不同的方法使用 Log Parser:从命令行使用“LogParser.exe”可执行文件;从应用程序使用“LogParser.dll”库导出的 Log Parser COM 对象。具体要选择何种方法,取决于您要通过 Log Parser 来执行的任务。

在下面所介绍的几种应用方案中,我将使用命令行可执行程序,但是请记住,也可以使用 Log Parser COM 对象,通过脚本来实现这些方案。很灵活,不是吗?

返回页首返回页首

搜索数据

Log Parser 最常见的应用之一是:在一组特定的数据中,搜索特定的信息。想象一下您正在管理一个 IIS 网站,并且被告知,有些用户发现一些未指定的页需要很长的执行时间。

您可能想查明的第一件事就是:究竟是哪些页需要如此长的执行时间。需要通过记事本打开 IIS 日志文件,查看数百万行日志条目吗?我可不这么认为。 假如您将 IIS 日志存储在 SQL 数据库中,您可能想运行一个查询,来找出运行时间超过 10 秒钟的页——如果您真的这么做了,那么可能就不需要 Log Parser——至少对于这个问题是这样。要是您没有把日志保存在 SQL 数据库中,又该怎么办呢?在这种情况下,您可以使用 Log Parser 分析 IIS 日志文件,查明哪些页所需的执行时间超过了 10 秒钟,并将结果显示在控制台窗口中。

具体方法如下。假定 IIS Web 服务器以 W3C 扩展的日志格式记录日志,而您使用 IISW3C 输入格式,分析 IIS 日志文件。

在运行任何查询之前,您需要这个输入格式导出了哪些字段。若要确定这一点,请转到命令行,确认 LogParser.exe 在路径中,并执行该命令:

C:\>logparser –h –i:IISW3C

这个命令提供了有关 IISW3C 输入格式的简明的帮助,其中包含一个列有 IISW3C 输入格式导出的所有字段的列表:

LogFilename (S)       LogRow (I)            date (T) time (T)              c-ip (S)              cs-username (S) s-sitename (S)        s-computername (S)    s-ip (S) s-port (I)            cs-method (S)         cs-uri-stem (S) cs-uri-query (S)      sc-status (I)         sc-substatus (I) sc-win32-status (I)   sc-bytes (I)          cs-bytes (I) time-taken (I)        cs-version (S)        cs-host (S) cs(User-Agent) (S)    cs(Cookie) (S)        cs(Referer) (S) s-event (S)           s-process-type (S)    s-user-time (R) s-kernel-time (R)     s-page-faults (I)     s-total-procs (I) s-active-procs (I)    s-stopped-procs (I)

根据上述输出,并借助IIS 日志记录文档,您就可以知道所要的是所有“time-taken”字段大于 10,000(“time-taken”字段用于测量执行页所需的 毫秒 数)的日志条目的“cs-uri-stem”字段。 that the page takes to execute).圆括号中的字母代表字段的 类型。“cs-uri-stem”字段属于 STRING 类型,而“time-taken”字段则属于 INTEGER 类型。

然后,定位到保存 IIS 日志文件的文件夹,并执行此命令:

C:\Logs>logparser "SELECT cs-uri-stem FROM ex*.log WHERE time-taken > 10000" –i:IISW3C

根据日志文件的大小,您可能需要等待几秒钟的时间,该命令才会开始输出结果。输出示例如下:

cs-uri-stem ------------------- /home/login.asp /home/login.asp /home/login.asp /home/login.asp /images/button.gif /home/login.asp /home/login.asp /home/login.asp /home/login.asp /home/login.asp Press a key...

首先,请注意,我们使用了“-i:IISW3C”来指定输入格式。这个参数告诉 Log Parser,我们要让 IISW3C 输入格式,为我们生成数据。

其次,请注意,我们并未指定任何输出格式;在这种情况下,Log Parser 会自动选择“NAT”输出格式,后者将在控制台窗口中,显示查询记录。实际上,这个输出格式在显示完十个记录后,就会暂停。它在等您按一下键盘上的任意键,随后将再次显示十个记录。

最后,请注意,我们的 SQL 查询的 FROM 子句指定了我们要让输入格式分析的数据的实际的 。对于 IISW3C 输入格式,我们可以指定任意数量的本地或远程文件(甚至包含通配符)。您可以在 FROM 子句中,指定更多的参数,但我不会在这里谈论这些选项——您可以在 Log Parser 说明文档的“输入格式”下,找到这些参数。

现在,回到我们所给的例子上,您可以从结果中看到,多数情况下,“login.asp”页的执行时间较长。不过,您也可能看到,其它一些页的加载时间,有时也会超过十秒钟,所以您还可能想找出每个不同的页出现过多少次执行时间超过十秒钟的情况。在输出中,出现次数较少的页,可能只是日志中的假“噪声”。

那么,继续运行以下命令:

C:\Logs>logparser "SELECT TOP 10 cs-uri-stem, COUNT(*) FROM ex*.log WHERE time-taken > 10000 GROUP BY cs-uri-stem ORDER BY COUNT(*) DESC" –i:IISW3C

具体输出可能如下所示:

cs-uri-stem              COUNT(ALL *) ------------------------ ------------ /home/login.asp          371 /images/lglogo.gif       2 /images/button.gif       1 /news/today.htm          1

这将命令 Log Parser 执行以下操作:

1.

查找所有页执行时间超过十秒钟的日志条目

2.

对于结果中每个不同的 页 URL,计算页 URL 在结果中出现的次数——换句话说,某个页出现过多少次执行时间超过十秒钟的情况

3.

按照从大到小的顺序,对所算出的出现次数的结果进行排序,并且仅显示前十个结果

根据上方的输出,您可以做出这样的结论:“login.asp”页频繁出现执行时间超过十秒钟的情况;结果中的其它页只是一些假条目,不能表明存在任何具体的问题。

返回页首返回页首

将日志导出到 SQL 数据库

对于许多用户,Log Parser 所实现的查询功能并不能满足他们的需求。譬如,管理流量繁重的网站的公司通常需要将网站日志保存在中央数据库中,从而可以在其中运行任意数量的查询,并在多台 Web 服务器间关联数据。Windows 事件日志及其它日志文件也可能存在这样的情况。

Log Parser 也可通过提供一个可用于将查询结果上载到数据库表的“SQL”输出格式,来应对上述情况。

一般而言,从日志文件到 SQL 表的简单“SELECT *”查询就可能解决问题,但是大多数时候,日志包含的一些条目,并不值得永久保存在数据包中。譬如,您可能想排除对图像文件的请求;也可能存在对不存在的页的请求。

以下命令可以做到这一点:

C:\Logs>logparser "SELECT * INTO LogsTable FROM ex*.log WHERE TO_LOWERCASE (EXTRACT_EXTENSION(cs-uri-stem)) NOT IN ('gif';'jpg';'png') AND sc-status <> 404" –i:IISW3C –o:SQL –database:LogsDatabase

这个命令要求 Log Parser 筛选出以“.gif”、“.jpg”和“.png”结尾的页的条目(URL 不分大小写)。该命令还将排除 HTTP 错误代码“404”(即“page not found”)产生的请求。

所有其它请求都将传递给 SQL 输出格式,后者将把记录保存到 INTO 子句所指定的表中。另外,这个输出格式还接受“database”参数(可用于指定目标数据库的名称)以及其它许多参数(可用于指定到 SQL 数据库连接的其它属性)。

若要实现上述操作,您可以将上面的命令放在一个批处理文件中,并使用 SCHTASKS.EXE 工具,设定该批处理文件每小时运行一次——好了!——您就得到了一个自动的机制,可定期将日志文件中的条目,上载到 SQL 数据库。

请注意,每次执行上述命令时,Log Parser 都会反复检查 所有 日志条目,并将所有这些条目多次上载到数据库。我们真正需要的是一个“仅分析尚未分析过的日志条目”的机制。

Log Parser 2.2 的一个新功能正好可以满足这一要求:“增量分析”功能,也称为“检查点 (checkpointing)”。

大多数 Log Parser 输入格式支持一个名为“iCheckpoint”的参数。该参数可告诉输入格式将所分析的所有文件的当前状态,都保存在一个专门的数据文件(“检查点 (checkpoint)”文件)中。当您使用上一次分析期间生成的检查点文件执行查询时,输入格式将只分析输入文件中那些尚未分析过的部分——即 新的 条目。

所以,只需指定通过“iCheckpoint”参数,指定一个检查点文件的名称,具体如下:

C:\Logs>logparser "SELECT * INTO LogsTable FROM ex*.log WHERE TO_LOWERCASE (EXTRACT_EXTENSION(cs-uri-stem)) NOT IN ('gif';'jpg';'png') AND sc-status <> 404" –i:IISW3C –o:SQL –database:LogsDatabase –iCheckpoint:MyCheckpoint.lpc

在您第一次执行该命令时,并不存在“MyCheckpoint.lpc”文件,而且 IISW3C 输入格式分析了所有日志文件中的所有条目,并对结果数据进行筛选,最后再上载到数据库。在分析了所有日志后,IISW3C 输入格式会将每个日志文件的当前大小保存到“MyCheckpoint.lpc”文件。

当您稍后运行相同的命令时,IISW3C 输入格式将从上次分析结束的地方,开始加载检查点文件,并分析日志,从而仅处理、筛选和上载新的日志条目。完成后,将针对日志文件的新大小更新检查点文件,随后这个过程将再次循环。

假如认真理解了本文开头处的设计说明,那么您可能已经知道:只需更改输入格式,您就重复使用该命令,将 Log Parser 输入格式支持的 任何 日志上载到数据库。想要上载事件日志条目吗?只需使用 EVT 输入格式,具体如下:

C:\Logs>logparser "SELECT * INTO EventLogsTable FROM System" –i:EVT –o:SQL – database:LogsDatabase –iCheckpoint:MyCheckpoint.lpc
返回页首返回页首

创建报表

至此,您应该已经知道:通过选择正确的输入格式并编写正确的查询,就可以从日志文件、系统或 Log Parser 支持的任何对象,获得所需的任何信息。

不过,我们只看到有关命令将信息返回到控制台窗口,或者将记录上载到 SQL 数据库。假如您正在使用 Log Parser,为您的管理团队生成报表,那么您可能需要某种比 SQL 表更人性化的东西,不是吗?

生成 HTML 页

在这个例子中,假设我们要生成一个报表,使之包含一台特定的远程计算机(将在该计算机的安全事件日志中检索)上的所有登录信息:

C:\>logparser "SELECT ComputerName, TimeGenerated AS LogonTime, STRCAT(STRCAT(EXTRACT_TOKEN (Strings, 1, '|'), '\\'), EXTRACT_TOKEN(Strings, 0, '|')) AS Username FROM \\SERVER01 \Security WHERE EventID IN (552; 528) AND EventCategoryName = 'Logon/Logoff'" -i:EVT

不要被该查询吓倒——其表面上的复杂性大多是因为我们为了从事件数据中提取完整的 <doman>\<username> 字符串,而执行的一些字符串操作造成的。

若使用 NAT 输出格式,具体的输出结果如下所示:

ComputerName LogonTime           Username ------------ ------------------- ---------------------------- SERVER01     2004-06-24 09:47:12 NT AUTHORITY\NETWORK SERVICE SERVER01     2004-06-24 09:48:05 SERVERDC\Administrator SERVER01     2004-06-24 09:48:05 NT AUTHORITY\NETWORK SERVICE SERVER01     2004-06-24 10:00:59 NT AUTHORITY\NETWORK SERVICE SERVER01     2004-06-24 10:01:00 NT AUTHORITY\LOCAL SERVICE SERVER01     2004-06-24 10:01:06 SERVER01\Gabriele SERVER01     2004-06-24 10:01:15 NT AUTHORITY\LOCAL SERVICE SERVER01     2004-06-24 10:01:18 SERVERDC\Monica SERVER01     2004-06-24 10:01:18 NT AUTHORITY\LOCAL SERVICE SERVER01     2004-06-24 10:01:24 NT AUTHORITY\LOCAL SERVICE

为了将该输出格式化为 HTML 格式,我们将使用 TPL 输出格式。该输出格式把一个参数作为说明如何格式化输出的文本文件(“模板”文件)。这里,我们将编写该模板文件,将输出转化为 HTML 表,具体如下:

<LPHEADER> <HTML> <HEAD><TITLE>Logon/Logoff Report</TITLE></HEAD> <BODY> <H1>Logon/Logoff Report</H1> <TABLE BGCOLOR="#D0D0E0" BORDER="1" CELLPADDING="10"> <TR> <TH>%FIELDNAME_1%</TH> <TH>%FIELDNAME_2%</TH> <TH>%FIELDNAME_3%</TH> </TR> </LPHEADER>
<LPBODY> <TR> <TD><TT>%FIELD_1%</TT></TD> <TD><TT>%FIELD_2%</TT></TD> <TD><TT>%FIELD_3%</TT></TD> </TR> </LPBODY>
<LPFOOTER> </BODY> </HTML> </LPFOOTER>

我不在这里深入探讨该模板文件的细节——其格式在 Log Parser 的联机文档中有非常详细的说明。请注意,这个模板文件分为三节(标题、正文和页脚),每一节都使用了特殊的“%变量%”(在运行时,由来自查询结果的值进行替换)。

现在,我们就可以通过上述命令,使用 TPL 输出格式,生成报表了:

C:\>logparser "SELECT ComputerName, TimeGenerated AS LogonTime, STRCAT(STRCAT(EXTRACT_TOKEN (Strings, 1, '|'), '\\'), EXTRACT_TOKEN(Strings, 0, '|')) AS Username INTO Report.html FROM \\SERVER01\Security WHERE EventID IN (552; 528) AND EventCategoryName = 'Logon/Logoff'" - i:EVT –o:TPL –tpl:MyTemplate.txt

该命令将生成一个“Report.html”文件,并在浏览器中打开,具体如“图 1”所示。

Figure 1: Report generated by using the TPL output format

图 1:使用 TPL 输出格式生成的报表

生成图表

在最后一个例子中,我将向您展示如何在不使用 Excel 的情况下,直接从查询结果生成图表。

以下命令可计算出 IIS 日志文件每小时的命中总数,具体方法是:使用 CHART 输出格式,创建一个包含图表的 JPG 图像:

C:\>logparser "SELECT TO_STRING(time, 'HH') AS Hour, COUNT(*) AS Hits INTO MyChart.jpg FROM ex*.log GROUP BY Hour ORDER BY Hour ASC" -i:IISW3C -o:CHART -chartType:ColumnClustered - chartTitle:"Hourly Hits" -groupSize:420x280

具体输出如“图 2”所示。

Figure 2: Chart Output of Hourly Hits

图 2:显示每小时命中数的图表输出

返回页首返回页首

总结

我们已经看到 Log Parser 体系结构可实现大量应用方案,而这都是通过 Log Parser 灵活的“数据处理管道”实现的。我向您介绍了可以使用 Log Parser 搜索数据,将日志上载到 SQL 数据库,并生成报表,而这只是该工具常规应用方案的三个例子。

我在前面说过,很难用一句话来概括 Log Parser 的用户,我可不是在骗你——不是吗?

posted @ 2007-12-19 15:21 言学 阅读(1099) 评论(1) 编辑

2007年3月3日 #

同方知网(北京)技术有限公司(www.cnki.net)诚聘WEB研发工程师(3人)

同方知网(北京)技术有限公司(www.cnki.net)诚聘WEB研发工程师(3人)

WEB研发工程师(3人) 
1. 计算机及相关专业,大学本科及以上学历
2. 精通C#, 1年以上asp.net开发经验,2年以上b/s模式编程经验;
3. 精通HTML、DHTML、javascript,熟悉或了解xml/xsl技术
4. 熟练掌握MSSQL server数据库
5. 熟悉软件开发过程,思路清晰,良好的沟通能力,较强的团队协作精神,富有责任心
6. 具有较强的软件设计能力,熟悉设计模式并熟练应用设计模式者优先
7. 使用.NET开发过大型企业应用者优先

有意者请将简历发至: chinapeople@cnki.net
待遇面谈

posted @ 2007-03-03 14:20 言学 阅读(690) 评论(1) 编辑

2007年1月29日 #

如何疼自己女友

1.向新朋友介绍女友时,请搂着她的腰,而不是站在一旁用手指点。
2.在街上遇见美女凝视时间不超过5秒,并迅速指出那位美女与她相比较的美中不足。
3.如果她做错了事,心里已经很难过,请主动承担起你应该甚至不应该承担的责任吧。
4.听女友话的男人才会有出息,所以,你要乖乖听她的话。
5.她可以欺负你,但你绝对不可以欺负她,因为她虽然欺负你,但是每次有什么好东西,她第一个想到的就是你!6.要是她朝你哭,你要不厌其烦地哄她,直到她破涕为笑!
7.把她的照片帖到钱包,
手机……一切经常看到的地方。
8.离开她绝对不超过十天以上
9.在她的朋友面前,希望你可以表现得比平时更疼爱她和紧张她的样子。
10.大男人不表示霸道.
11.温柔不等于没主见。
12.潇洒不等于没交代
13.不要老是在我问她“去那里比较好”,“吃什么”等等的时候说“随便”,这不等于是你在迁就她,只表示你没有心思搭理她。
14.要经常对她说“我爱你”,否则她会假设你不爱她
15.永远不要在公众场合对她呼呼吼吼又或是撇下她一人。
16.她做错事情的时候教训她不要紧,最重要的是在那之后要哄她。
17.发脾气时不要不理她,不要给时间她让她冷静,其实她完全不需要时间冷静。
18.可以陪自己的朋友,但一定要重色轻友。19.她看动画片,你不但不准笑话她,还要跟她一起看。
20.在她想你时,争分夺秒地挤出时间与她约会21.看她的眼神无比专注。
22.说话的语气情深意长。
23.能做到客观的得看到其它优秀的女孩,但主观认为她才是最好的
24.有女孩和你说话,你要拉着她的手,如果她恰巧不在旁边,那么请你跟她们保持距离。
25.过马路的时候牵着她的手。
26.要懂得珍惜和她在一起的每分钟。27.就算再忙,每天都不忘打一个问候的电话28.要常常唱情歌给她听。29.两个人都有发火的权利,但不能同一天, 如果那一天她发火了,那你就不可以发火了。
30.女友生活中不顺心,你要循循善诱、帮忙分析,提出建设性方案若干
31.要非常爱你的女友――-她,坚决拥护女友的决定,服从女友的领导。
32.留意其它女生不得超过5秒钟,看同一女生累计不得超过5次。
33.即使全世界的人都不相信她,你也要无条件相信她。因为她也会同样对你。
34.她穿了好看的衣服,你要衷心赞美。35.严禁在女士(3岁-80岁)面前耍贫,放电。若有违反,视情节严重程度,由女友从严、从快进行严厉打击,任何人、任何形式的狡辩,抵赖都将按妨碍司法公正论处。
36.不抽烟。一经发现立即开除。37.与女友吵架每次陈述不得超过3分钟(含),音量不得超过20分贝(含)。
38.要加强锻炼,强健身体,一口气抱她上到五楼39.在她心情遭透,蛮横发脾气的时候,抱抱她,而不是和她理论。
40.希望不会出现
手机没电而她又没有其它办法联系到你的现象,如果能频频主动打电话告诉她“我想你了”并随时汇报行踪则更好。
41.她身上有很多缺点,她已经够苦恼了,请不必随时向她提醒。
42.女友不讲理是撒娇而不是撒野。
43.她所有的事情都好想跟你分享、虽然你不一定会明白但是希望你会装做你在听。
44.最重要的一点:要永远认为女友是对的。因为,她是最爱你的

posted @ 2007-01-29 17:25 言学 阅读(2728) 评论(5) 编辑

数字图像处理基础-第五章 图像数据压缩

第五章  图像数据压缩

5.1图像压缩概述

一、图像压缩的基本原理

    虽然表示图像需要大量的数据,但.图像数据是高度相关的,或者说存在冗余(Redundancy)信息,去掉这些冗余信息后可以有效压缩图像,同时又不会损害图像的有效信息。

    数字图像的冗余卡要表现为以下几种形式:空间冗余、时间冗余、视觉冗余、信息熵冗余、结构冗余和知识冗余。

    (1)空间冗余:图像内部相邻像素之间存在较强的相关性所造成的冗余。

    (2)时间冗余:视频图像序列中的不同帧之间的相关性所造成的冗余。

    (3)视觉冗余:是指人眼不能感知或不敏感的那部分图像信息。

    (4)信息熵冗余:也称编码冗余,如果图像中平均每个像素使用的比特数大于该图像的信息熵,则图像中存在冗余,这种冗余称为信息熵冗余。

(5)结构冗余:是指图像中存在很强的纹理结构或自相似性。

(6)知识冗余:是指在有些图像LlJ还包含与某些先验知识有关的信息。

    图像数据的这些冗余信息为图像压缩编码提供了依据。例如,利用人眼对蓝光不敏感的视觉特性,在对彩色图像编码时,就可以用较低的精度对蓝色分量进行编码。图像编码的目的就是充分利用图像中存在的各种冗余信息,特别是空间冗余、时间冗余以及视觉冗余,以尽量少的比特数来表示图像。利用各种冗余信息,压缩编码技术能够很好地解决在将模拟信号转换为数字信号后所产生的带宽需求增加的问题,  它是使数字信号走上实用化的关键技术之一,表中列出了几种常见应用的码率。

 

图像数据压缩和图像重构

 

三、基本概念

【1、数字图像的熵

    设一幅灰度级为N的图像,图像中第k级灰度出现的概率为Pk,  则    设一幅灰度级为N的图像,图像中第k级灰度出现的概率为Pk,  则按信息论中信息熵的定义,数字图像的熵H可按其公式来求出:

【2)平均码字长瘦

    对于一种图像编码方法,设第k级灰度的码字长度为Bk,则该图像的平均码字长度R可以按其公式来求出。

编码效率n为:n=H/R×1 OO%

【4)若图像的大小为NX\Ny.每个像素丽d比特表示.每两帧图像间隔为△t.每秒钟所需的传输比特数bps可按其公式来求出。

【5)压缩比r为:r=d/R

 

5.2无损压缩

一、图像压缩方法可以分为2大类

    1、无损压缩:能够保证进行无误差的图像数据重构;

    2、有损压缩:不能完整地保持信息,图像数据重构时有信息丢失,但不应造成图像的明显改变

二、哈夫曼编码算法

  哈夫曼编码是一种无损压缩方法,其一般算法如下: 

A、首先统计信源中各符号出现的概率,按符号出现的概率从大到小排序;

  B、把最小的两个概率相加合并成新的概率,与剩余的概率组成新的概率集合;

  C、对新的概率集合重新排序,再次把其中最小的两个概率相加,组成新的概率集合。如此重复进行,直到最后两个概率的和为l;

    D、分配码字:码字分配从最后一步开始反向进行,对于每次相加的两个概率,给大的赋¨O",小的赋¨1¨(也可以全部相反,如果两个概率相等,  则从中任选一个赋¨O¨,  另一个赋"l¨即可),读出时由该符号开始一直走到最后的概率和¨1¨,将路线上所遇到的¨O¨和¨l¨按最低位到最高位的顺序排好,就是该符号的哈大曼编码。

    例:设一幅灰度级为6(分别用a 1、a2、a3、a4、a5、a6表示)的图像中,各灰度所对应的概率分别为O.40、O.30、O.1 O、O.1 O、O.06、O.O4。现对其进行哈大曼编码,具体步骤如下:

(1)、首 先对信源概率从大到小排序,选出最小的两个概率(O.06和O.04),相加得O.1,与其他概率组成新的概率集合(O.4,O.3,O.1,O.1,O.1);

         (2)对新的概率集合重新排序,选出最小的两个概率(O.1和O.1),相加得O.2,组成新的概率集合(O.4,O.3,O.1,O.2);

         (3)对新的概率集合重新排序(O.4,O.3,O.2,O.1),选出最小的两个概率(O.2和O.1),相加得O.3,组成新的概率集合(O.4,O.3,O.3);

         (4)对新的概率集合重新排序,选出最小的两个概率(O.3和O.3),相加得O.6,直到最后两个概率(O.60和O.40)相加和为1;

        (5)分配码字。从最后一步反向进行,首先给最后相加的两个概率(O.60和O.40)分配码字,由于O.60大于O.40,于是给O.60赋¨O¨,给O.40赋¨1¨。

        (6)最后写出每个符号的哈夫曼编码。以符号a4(对应的概率为O.1)为例,在从O.1到1.O的路径上,它所遇到的赋值(¨O¨或¨1¨)依次为O、O、1、O,将其反向排列成¨O l OO",于是就形成了符号a4的哈大曼码字¨OlOO¨。

        这个编码的平均长度:R=O.24(1+O.3(2+O.1(3+O.1(4+O.06(5+O.O4(5=2.2比特/符号;其信源的熵H=2.1 4比特/符号;

    上述哈夫曼编码方法形成的码字是可识别的,即能够保证一个符号的码字不会与另一个符号的码字的前几位相同。

    在编码都建立了之后,编码和解码都可以查表的方式完成。任何哈夫曼编码的符号串,可以通过从左到右的方式对串中每个符号进行分析来解码。例如:对于编码串OlO1OO1111OO从左到右的扫描显示,第一个有效码字为OlOlO,这个编码的符号是a3,下一个有效的编码是O11,它所对应的符号是al,照此方式持续下去得到的完整解码信息结果为a3 a1 a2 a2 a6。

三、无损压缩的其它方法

    1、香农一范诺(Shannon—Fannon)编码;

    2、行程编码一-比较适合于二值图像的编码;

    3、LZW(Lempel一Ziv&Welch)编码,义称字串表编码,  属于一种无损编码;

4、算术编码,它有两种模式:一种是基于信源概率统计特性的固定编码模式,另一种是针对未知信源概率模型的自适应模式;

5、位平面编码;

6、无损预测编码;等等。

 

5.3有损压缩

有损压缩的常见方法:

  1、有损预测编码;

  2、变换编码;

  3、小波编码,等等。

 

5.4图像压缩标准

l、制定图像标准的国际组织

  A、I SO(国际标准化组织)

  B、CCITT(国际电报电话咨询委员会)

  C、ITU(国际电信联盟)

2、标准的类型(三类)

  A、二值图像压缩标准:面向传真

  B、连续色调静止图像压缩标准:面向静止的单幅图像,例如:jPEG 2000

 C、视频压缩标准:面向连续帧黑自、彩色压缩:例如:电视会议标准(H.26 1,H.262,H.263,H.320),多媒体视频压缩标准MPEG—l,MPEG-2,M PEG-4,等等。

  

posted @ 2007-01-29 11:53 言学 阅读(1559) 评论(2) 编辑

数字图像处理基础-第四章图像分割

第四章图像分割

4.1图像分割概述

    图像分割是将图像划分成若干个互不相交的小区域的过程,小区域是某种意义下具有共同属性的像素的连通集合。如不同目标物体所占的图像区域、前景所占的图像区域等。

    连通是指集合中任意两个点之间都存在着完全属于该集合的连通路径。对于离散图像而言,连通有4连通和8连通之分。

    四连通指的是从区域内一点出发,可在区域中通过上、下、左、右4个方向的移动,到达区域内的任意像素位置;

    八连通指的是从区域中的一点出发,可通过上、下、左、右、左上、右上、左下、右下这8个方向的移动组合来到达区域内的任意像素。

 

图像分割有三种以不同的途径:

    ★其一是将各像素划归到相应物体或区域的像素聚类方法,即区域法;   

★其二是通过直接确定区域问的边界来实现分割的边界方法;

    ★其三是首先检测边缘像素,再将边缘像素连接起来构成边界形成分割。

 

    在图像分割技术中,最常用的是利用阈值化处理进行的图像分割。

4.2图像阈值分割

一、灰度阈值法

    常用的图像分割方法是把图像灰度分成不同的等级,然后用设置灰度阈值的方法确定有意义的区域或分割物体的边界。

    常用的阈值化处理主要是指图像的二值化处理,即选择一阈值,将图像转换为黑自二值图像,用于图像分割及边缘跟踪等预处理。

二、直方图阈值分割

    在图像的阈值化处理过程中,选用不同的阈值其处理结果差异很人。如果阈值过大,会提取多余的部分;而阈值过小,又会丢失所需的部分(当前背景为黑色,对象为白色时刚好相反)。因此,阈值的选取非常重要。

三、类间方差阈值分割

判别分析法确定最佳阈值, 判别分析法确定最佳阈值的准则,是使进行阈值处理后分离的像素类之间的类问方差最大。判别分析法只需计算直方图的O阶矩和l阶矩,是图像阈值化处理中常用的自动确定阈值的方法。设原始图像的灰度级为L,总像素数为N,灰度值为i的像素数为Ni。归一化直方图,其中,N=NO+N l+…+NL-1。

四、P覆盖率阈值化

    p覆盖率阈值化仅适用于事先已知的目标所占全图像百分比的场合。若一幅图像由亮背景和黑目标组成,已知目标覆盖整个图像的1/p面积,则使得至少l/p的像素面积阈值化后匹配为目标图像的灰度值,这种方法称为p覆盖率阈值化。

4.3基于区域的图像分割

基于区域的分割,图像分割的目的,是把一幅图像划分成一些区域,前面的图像分割方法的目标是要找到图像区域问的边界。本节的方法将直接构造区域。为此,最直接的方法就是把一幅图像分成满足某种判据的区域,也就是说,把点组成区域。

    为了实现区域分组,一致性是区域的一个重要性质在区域增长中用作主要的分割准则;

  ★首先要确定区域的数目;

  ★其次要确定一个区域与其它区域褶区别的特征;

  ★最后还要产生有意义分割的相似性判据。

一、区域增长法

1、区域增长

    区域增长是一种区域分割方法。假定区域的数日以及在每个区域中种子点的位置已知,则从该已知点开始,加上与已知点相似的邻近点形成一个区域。

    ★相似性准则可以是灰度级、彩色、组织、梯度或其它特性;

    ★相似性的测度可以由所确定的阈值来判定。

    ★从满足检测准则的点开始,在各个方向上生长区域,如果其邻近点满足检测准则就并入区域中;   

★重复这一过程,直到没有可接受的邻近点后,区域增长过程终止。

2、均匀测度

二、区域分裂

    区域分裂与区域增长相反,它从把整个图像当成单个区域开始,

将不满足相似性测度的区域依次分裂开,直到各个区域都满足相似性测度为止.。

三、区域分裂与归并

l、分裂与归并区域方法

    利用图像数据的金字塔或四叉树数据结构的层次概念,将图像划分成一组任意不相交的初始区域,然后,从该数据结构的任一中间层开始,根据给定的均匀性(或相似性)检查准则分裂或者合并这些区域,逐步改善区域划分的性能,直到将整个图像划分成数量最少的均匀区域为止。

2 分裂与归并算法

★1)定义一个划分为区域的初始分割、相似性准则和四叉树结构;

  ★2)如果在四叉树结构中的任一区域不满足相似性准则,便将其分裂为4个子区域;若同一个父节点F的4个区域满足相似性准则,便将它们归并为一个区域;否则,转第3)步;

  ★3)如果任意两个邻接区域Ri和Rj满足相似性准则,便归并它们;

  ★4)如果必须删除小尺寸区域,则将小区域与其最相似的邻接区域归并。

4.4其它图像分割方法

l、其他区域分割方法

  ★A、区域聚合法

  ★B、分水岭分割,等等。

2、基于边缘的图像分割

★A、边缘图像阈值法

★B、边缘松弛法

★C、边界跟踪

★D、Hough变换,等等。

彩色图像的分割

    彩色图象是多光谱图象的一种特殊情况,对应于人类视觉的三基色RG B,是对人眼的光谱量化性质的近似;

    彩色空间有多种不同的表示形式,常用RG B三基色模型,色调、饱和度、亮度(H SI)模型等;

    彩色图象的分割除了可以采用灰度图象的分割方法外,还可以利用色彩的聚类性质。通常物体的色度和饱和度由构成物体的材料所具有的光线吸收和反射特性决定,而亮度明显地受光照和视角的影响。因此根据色度和饱和度分割图象比较可靠。在实际问题中,需要对一类物体的颜色进行统计训练,考察其颜色的直方图,根据颜色直方图选择合适的范围可以比较快速地实现彩色图象分割。

 

小结

    彩色图象是多光谱图象的一种特殊情况,对应于人类视觉的三基色即红、绿、蓝三个波段,是对人眼的光谱量化性质的近似。

    彩色空间有多种不同的表示形式,常用的有红、绿、蓝(RG B)三基色模型,色调、饱和度、亮度(H SI)模型等。

    彩色图象的分割除了可以采用惠度图象的分割方法外,还可以利用色彩的聚类性质。通常物体的色度和饱和度由构成物体的材料所具有的光线吸收和反射特性决定,而亮度明显地受光照和视角的影响。因此根据色度和饱和度分割图象比较可靠。

 

posted @ 2007-01-29 11:52 言学 阅读(2254) 评论(1) 编辑

数字图像处理基础-第三章图像预处理

第三章图像预处理

3.1灰度级变换

一、灰度级变换的定义

  灰度级变换(点运算)的定义

  ★对于输入图象f(x,y),灰度级变换T将产生一个输出图像g(x,y),且g(x,y)的每一个像素值都是由f(x,y)的对应输入像素点的值决定的,g(x,y)=T(f(x,y))。

  ★对于原图象f(x,y)和灰度值变换函数T(f(x,y)),由于灰度值总是有限个(如:O~2 5 5),非几何变换可定义为:R=T(r),其LlJ R、r(O.255)。

二、灰度级变换的实现

  灰度级变换(点运算)的实现

  R=T(r)定义了输入像素值与输出像素之间的映射关系,通常通过查表来实现。

三、灰度级变换实例

    1、图象求反

    2、对比度拉伸

    3、动态范围压缩

    4、灰度级切片

 

3.2图像的灰度直方图

    灰度直方图(histogram)统计了图象中各个灰度级的象素的个数。

一、灰度直方图的计算

  若图象具有L级灰度(通常L=256,即8位灰度级),则大小为m(n的灰度图象f(x,Y)的灰度直方图H[k],k=0…L-1,可按如下步骤计算获得:

    1)初始化:for(k=O;k<L;k++)H[k]=O;

    2)统计:

    for(x=O;x<m;x++)

    for(y=O;y<n;y++)H[f(x,y)]++;

  3)规格化:

    flOr(x=O;x<m;x++)

    for(y=O;y<n;y++)H[f(x,y)]/=float(m(n);

二、直方图均衡化

    直方图均衡化是通过灰度变换将一幅图象转换为另一幅具有均衡直方图,即在每个灰度级上都具有相同的象素点数的过程。

    直方图均衡化变换:设灰度变换s=f(r)为斜率有限的非减连续可微函数,它将输入图象Ii(x,y)转换为输出图象Io(x,y),输入图象的直方图为Hi(r),输出图象的直方图为Ho(s),则根据直方图的含义,经过灰度变换后对应的小面积元相等:Ho(s)ds=Hi(r)dr

    变换函数f(r)必须满足下列2个条件:

  ★(1)f(r)  (O(r(1)是单值函数、且单调增加;

  ★(2)O(f(r)  (1,(O(r(1)。

  上面第一个条件保证了灰度级从黑到白的次序,第二个条件保证了变换后象素的灰度级仍然在容许的范围之内。r=f-l(s)为逆变换函数,同样也要满足上述条件。

直方图修正的例子

    假设有一幅图像,共有6 4(6 4个象素,8个灰度级,试进行直方图均衡化处理。根据公式可得:

    s2=0.19+0.25+0.2l=O.65,

    s3=0.19+0.25+0.2l+O.16=0.8l,

    s4=0.89,s5=0.95,s6=0.98,s7=1.00。

    由于这里只取8个等间距的灰度级,变换后的s值也只能选择最靠近的一个灰度级的值。因此,根据上述计算值可近似地选取:

    sO"1/7,s 1¨3/7,s2¨5/7,s3"6/7,

    s4¨6/7,s5¨1,s6¨l,s7¨1。

    可见,新图像将只有5个不同的灰度等级,于是我们可以重新定义其符号:

    s'O=l/7,s’1=3/7,s'2=5/7,s’3=6/7,s’4=l。

    因为由rO=O经变换映射到sO=1/7,所以有n0=790个象素取sO这个灰度值;由rl=3/7映射到sl=3/7,所以有1 02 3个象素取s 1这一灰度值;依次类推,有850个象素取s2=5/7这一灰度值;由于r3和r4均映射到s3=6/7这一灰度值,所以有656+329=98 5个象素都取这一灰度值;同理,有245+1 22+81=448个象素都取s4=1这一灰度值。上述值除以n=4096,便可以得到新的直方图。离散情况下不可能作到绝对的一致。

三、直方图的性质

    在直方图中,只知道具有某一灰度值的象素有多少个,但并不知道这些象素的位置;

    一个图像决定一个唯一的直方图,但是有时不同的图像具有相同的直方图;

    如果已知一幅图像中各个区域的直方图,则把它们加起来,就可得到这个图像的直方图。

四、直方图的典型用途

    对图像进行数字化时,利用直方图可以检查输入图像的灰度值在可利用的灰度范围内分配得是否适当;

    在医学方面,为了改善X射线操作人员的工作条件,可采用低辐射X射线曝光,但这样获得的X光片灰度级集中在暗区,导致某些图像细节无法看清,判读困难。通过直方图修正使灰度级分布在人眼合适的亮度区域,便可使X片中的细节清晰可见。

    可以根据直方图确定二值化的阈值;

    当物体部分的灰度值比其它部分的灰度值大时,可以用直方图求出物体的面积(实际上是象素数=灰度大于和等于q的象素的总和);

    当物体部分的灰度值比其它部分的灰度值大时,可以用直方图求出物体的面积(实际上是象素数=灰度大于和等于q的象素的总和);利用色彩直方图可以进行基于颜色的图象分割。

 

3.3几何变换

    几何变换可改变图象中物体(象素)之间的空间关系。这种运算可以看成将各象素在图象内移动的过程。

    几何变换中灰度级插值是必不可少的组成部分,因为图象一般用整

数位置处的象素来定义,某个点经变换后可能映射到多个点之间。

    仿射变换(Affine Transformation)和图象卷绕(ImageWarping)是两类常见的几何运算。

一、灰度级插值

  1、最近邻插值

  ★最简单的插值方法是最近邻插值,即选择离它所映射到的位置最近的输入象素的灰度值为插值结果。

  2、双线性插值:

二、空间变换

  空间变换包括可用数学函数表达的简单变换(如:平移、拉伸等仿射变换)和依赖实际图象而不易用函数形式描述的复杂变换(如对存在几何畸变的摄象机所拍摄的图象进行校正,需要实际拍摄栅格图象,根据栅格的实际扭曲数据建立空间变换;再如通过指定图象中一些控制点的位移及插值方法来描述的空间变换)。

  1、仿射变换(affine transfomation)

  仿射变换变换的公式如下:f(x)=AX=b

  其中A是变形矩阵,b是平移矢量。

  任何一个放射变换可以分解为尺度、伸缩、扭曲、旋转、平移的组合。

  2、基本变换

  (1)基本几何变换的定义

  对于原图象f(x,y),坐标变换函数

  x’=a(x,y);y’=b(x,y)

  唯一确定了几何变换:g(x’,y’)=f(a(x,y),b(x,y));

g(x,y)是目标图象。

(2)平移变换

(3)旋转变换:绕原点旋转(度

(4)水平镜像

(5)垂直镜像

(6)缩放变换

  3、透视变换(Persp ective Tmnsfomation)

  透视变换是中心投影的射影变换,在用非齐次射影坐标表达时是平面的分式线性变换,透视变换常用于图象的校正。

  4、几何校正

    几何校正是指按照一定目的将图象中的典型几何结构校正为没有变形的本来形式。

  例如,对如F的走廊图象进行校正,分两种情况,一种是针对地砖形状的校正,另一种是针对最右侧有把手的门形状的校正。

5.图象卷绕(Image Warping)

    图象卷绕是通过指定一系列控制点的位移来定义空间变换的图象变形处理。非控制点的位移根据控制点进行插值来确定。

 

3.4图像的局部预处理

一、平滑

l、邻域平均

  ★A、邻域的定义

  ★B、邻域平均法

  ★对一数字图像f(x,y),以(x,y)为中心,取一滑动窗口--邻域S(例如:

3×3的方窗)进行处理:

  ★缺点:去噪声的同时模糊了边界。

  ★注意:当邻域中心落在图像边界上:(O行/列或N-l行/列)时

  ★A、边界行/列点不处理;

  ★B I、扩充上下两行、左右两列(复制)。

2、高斯滤波

二、中值滤波

一般的中值滤波(Median Filtering)

    与加权平均方式的平滑滤波不同,中值滤波是将邻域中的象素按灰度级排序,取其中间值为输出象素。

  ★1)中值滤波可以保护图像边界;

  ★2)中值滤波窗口越人,滤波作用越强,但会丢失细节。

  中值滤波是一种非线性滤波,适用于滤除脉冲噪声或颗粒噪声,并能保护图像边缘。这里以一维中值滤波为例:一维中值滤波就是用一个含有奇数点的一维滑动窗口,将窗口正中的那点值用窗口内各点按大小排列的中值代替。假设窗口长为5点,其中的值为(80,90,200,11 O,1 20),那么此窗口内的中值即为11O。

三、边缘检测

  边缘是指图象中灰度发生急剧变化的区域。图象灰度的变化情况可以用灰度分布的梯度来反映,给定连续图象f(x,y),其方向导数在边缘法线方向上取得局部最大值。

    图象中一点的边缘被定义为一个矢量,模为当前点最人的方向导数,方向为该角度代表的方向。通常我们只考虑其模,而不关心方向。

四、梯度算子

(一)梯度算子可分为3类:

    ★1、使用差分近似图像函数导数的算子。有些是具有旋转不变性的(如:Laplacian算子),因此只需要一个卷积掩模来计算。其它近似一阶导数的算子使用几个掩模。

    ★2、基于图像函数二阶导数过零点的算子(如:M arr—Hild reth或Canny边缘检测算子。

    ★3、试图将图像函数与边缘的参数模型相匹配的箅子。

(二)第一类梯度算子

    拉普拉斯(Laplace)算子通常使用3×3的掩模,有时也使用强调中心象素或其邻接性的拉普拉斯算子(这种近似不再具有旋转不变性)。

    拉普拉斯算子的缺点:它对图像中的某些边缘产生双重响应。

图像锐化(shapeening)

    图像锐化的目的是图像的边缘更陡峭、清晰。锐化的输出图像f是根据下式从输入图像g得到的:f(i,j)=g(i,j)-c s(i,j),其中c是反映锐化程度的正系数,s(i,j)是图像函数锐化程度的度量,用梯度箅子来计算,Laplacian箅子常被用于这一目的。

Prewitt边缘检测算子

Sob e1边缘检测算子

(三)第二类梯度算子--二阶导数过零点算子

  根据图象边缘处的一阶微分(梯度)应该是极值点的事实,图象边缘处的二阶微分应为零,确定过零点的位置要比确定极值点容易得多也比较精确。右侧是Lena的过零点检测结果。

    为抑制噪声,可先作平滑滤波然后再作二次微分,通常采用高斯函数作平滑滤波,故有LoG(Laplacian of Gaussian)算子。

    高斯-拉普拉斯(LoG,Laplacian of Gaussian)算子。

    噪声点对边缘检测有较大的影响,效果更好的边缘检测器是高斯-拉普拉斯(Lo G)算子。它把高斯平滑滤波器和拉普拉斯锐化滤波器结合起来,先平滑掉噪声,再进行边缘检测,所以效果更好。

 

过零点检测

    在实现时一般用两个不同参数的高斯函数的差DoG(Difference ofGaussians)对图象作卷积来近似,这样检测来的边缘点称为f(x,y)的过零点(Zero—crossing)。

    与前面的微分算子出仅采用很小的邻域来检测边缘不同,过零点(Zero-crossing)的检测所依赖的范闱与参数。有关,但边缘位置与0的选择无关,若只关心全局性的边缘可以选取比较大的邻域(如0=4时,邻域接近40个象素宽)来获取明显的边缘。过零点检测更可靠,不易受噪声影响,但.缺点是对形状作了过分的平滑,例如会丢失欠明显的角点;还有产生环行边缘的倾向。

    产生环行边缘的原因是:图象的边缘多出现于亮度呈现突起或凹陷的位置上,其附近边缘法向线条上一阶微分会出现两个极值点,也就是会出现两个过零点。其整体结果是边缘呈现环行状态。

(四)Canny边缘提取【或边缘检测Edge Detection)

    在如下的三个标准意义下,Canny边缘检测算子对受闩噪声影响的阶跃型边缘是最优的:

  ★1)检测标准--不丢失重要的边缘,不应有虚假的边缘;

  ★2)定位标准--实际边缘与检测到的边缘位置之间的偏差最小;

  ★3)单响应标准--将多个响应降低为单个边缘响应。

Canny边缘检测算子的提出是基于以下概念:

    (1)边缘检测算子是针对一维信号和前两个最优标准(即检测标准和定位标准)表达的,用微积分方法可以得到完整的解;

    (2)如果考虑第三个标准(多个响应),需要通过数值优化的办法得到最优解,该最优滤波器可以有效地近似为标准差为(的高斯平滑滤波器的一阶微分,其误差小于20%,这是为了便于实现;这与M ar—Hild reth边缘检测算子很相似;它是基于LoG边缘检测算子的;

    (3)将边缘检测箅子推广到两维情况。阶跃边缘由位置、方向和可能的幅度(强度)来确定。可以证明将图象与一对称2 D Gaussian做卷积后再沿梯度方向微分,就构成了一个简单而有效的方向算子(回想一下,LoG过零点算子并不能提供边缘方向的信息,因为它使用了Laplacian滤波器)。

    (4)由于噪声引起的对单个边缘的(多个)虚假响应通常造成所谓的“纹状(streaking)"问题。一般而言,该问题在边缘检测中是非常普遍的。

    边缘检测算子的输出通常要做阈值化处理,以确定哪些边缘是突出的。

    纹状是指边缘轮廓断开的情形,是由算子输出超出或低于阈值的波动引起的。纹状现象可以通过带滞后的阈值处理(thresh01ding withhysteresis)来消除;

    如果边缘响应超过一给定高阈值时,这些象素点构成了某个尺度下的边缘检测算子的确定的输出。

    个别的弱响应通常对应于噪声,但是如果这些点是与某些具有强响应的点连接时,它们很可能是图象中真实的边缘。这些连接的象素点在当其响应超过一给定的低阈值时,就被当作边缘象素。

    这里的低阈值和高阈值需要根据对信噪比的估计来确定。

    (5)算子的合适尺度取决于图象中所含的物体情况。解决该未知数的方法是使用多个尺度,将所得信息收集起来。不同尺度的Canny检测算子由高斯的不同的标准差(来表示。有可能存在几个尺度的算子对边缘都给出突出的响应(即信噪比超过阈值);在这种情况下,选择具有最小尺度的算子,因为它定位最准确。

特征综合方法(Feature synthesis appmach)

    首先标记出所有由最小尺度算子得到的突出边缘。具有较大尺度(的算子产生的边缘根据它们(标记出的边缘)合成得到(即,根据从较小的尺度收集到的证据来预测较大尺度(应具有的作用效果)。然后将合成得到的边缘响应与较大尺度(的实际边缘响应作比较。仅当它们比通过合成预测的响应显著地强时,才将其标记为边缘。

    这一过程可以对一个尺度序列(从小到大)重复进行,通过不断加入较小的尺度中没有的边缘点的方式累积起来生成边缘图。

 

Canny边缘检测算法

    l、对于递增的标准差(重复(2)到(6)步骤);

    2、将图象f与尺度为高斯函数做卷积;

    3、对图象中的每个象素,估计局部边缘的法向n;

    4、用非最大抑制公式找到边缘的位置;

    5、用公式计算边缘强度;

    6、对边缘图像做滞后阈值化处理,消除虚假响应;

    7、用特征综合方法,收集来自多尺度的最终的边缘信息。  (通常的实现,省略该步。)

posted @ 2007-01-29 11:51 言学 阅读(3579) 评论(2) 编辑

数字图像处理基础-第二章数字图像处理基础

第二章数字图像处理基础

2.1数字图像的类型

一、静态图像的2种类型

    为了方便地处理数字图像,根据数字图像的特性将其分成不同的类型:

    矢量vector图

    矢量图是用一系列绘图指令来表示一幅图,如AutoCAD中的绘图语句。在Corel Draw和Adobe Illustrator中生成的图像均为矢量图。这种方法的本质是用数学(更准确地说是几何学)公式描述一幅图像。图像中每一个形状都是一个完整的公式,称为一个对象。对象是一个封闭的整体,所以定义图像上对象的变化和对象与其它对象的关系对计算机来说是简单的,所有这些变化都不之会影响到图像中的其他对象。

公式化表示图像使得矢量图具有两个优点:

      ★一是它的文件数据量很小

      ★_二是图像质量与分辨率无关

    这意味着无论将图像放人或缩小了多少次,图像总是以显示设备允许的最人清晰度显示。在计算机计算与显示一幅图像时,也往往能看到画图的过程。

  但是,矢量图有一个明显的缺点:

  ★矢量图不易制作色调丰富或色彩变化太多的图像,而日绘出来的图像不是很逼真,同时也不易在不同的软件问交换文件。

 

位图(Bitmap,也称为栅格图像)

    位图是通过许多像素点表示一幅图像,每个像素具有颜色属性和位置属性。位图可以从传统的相片、幻灯片上制作出来或使用数字相机得到,也可以利用WindOWS的画笔(Painbrush)用颜色点填充网格单元来创建位图。位市图又可以分成如下四种:  线面稿  LineArt)、灰度图像(GrayScale)、,索引颜色图像(Index Color)和真彩色图像(TrueColor)。

A、  线画猫(LineArt

  线画稿只有黑白两种颜色,这种形式通常也称为¨黑白艺术"、¨位图艺术¨、  ¨一位元艺术¨。用扫描仪扫描图像,当设置成LineArt格式时,扫描仪以一位颜色模式来看待图像。若样点颜色为黑,则扫描仪将相应的像素位元置为O,否则置为l。线画稿适合于由黑白两色构成而没有灰度阴影的图像。

B、  灰度图像GrayScale

    在灰度图像中,像素灰度级用8bit表示,所以每个像素都是介于黑色和白色之间的256(28=256)种灰度中的一种。灰度图像只有灰度颜色而没有彩色。我们通常所说的黑白照片,其实包含了黑白之间的所有灰度色调。从技术上来说,就是具有从黑到白的256种灰度色域(Gamut)的单色图像。

C、索引颜色图像Index Color

在介绍索引图像之前,我们首先了解PC机是如何处理颜色的。人多数扫描仪都是以2 4位模式对图像进行采样,即可以从图像中采样出l677万种不同的颜色。用这种方式获得的颜色通常称为RGB颜色,这是目前所能获取、浏览和保存的颜色信息最丰富的彩色图像。由于它所表达的颜色远远超出了人眼所能辨别的范为,故将其称为¨真彩色¨。

在真彩色出现之前,由于技术上的原因,计算机在处理时并没有达到每像素24位的真彩色水平,为此人们创造了索引颜色。索引颜色通常也称为映射颜色,在这种模式F,颜色都是预先定义的,并且可供选用的一组颜色也很有限,索引颜色的图像最多只能显示256种颜色。

 调色板(palette'):图像的色彩索引表

若图象的色彩数远小于全色彩数时,当每个像素的颜色值用它在色彩索引表中的位置表示就可以大大节约存储空间。这种技术常用于各种图像的存储格式中,如bmp,tif,gif等。一幅索引颜色图像在图像文件里定义,当打开该文件时,构成该图像具体颜色的,索引值就被读入程序里,然后根据索引值找到最终的颜色。(图像表示用到调色板时,像素值存储的是该像素的颜色在调色板中的地址,即索引值)

  真彩色图像(True Color)

真彩色图像将像素的色彩能力推向了顶峰。¨真彩色¨是RGB颜色的另一种流行的叫法。从技术角度考虑,真彩色是指写到磁盘上的图像类型,而RGB颜色是指显示器的显示模式。RGB图像的颜色是非映射的,它可以从系统的¨颜色表¨里自由获取所需的颜色,这种图像文件里的颜色直接与PC机上的显示颜色相对应。在真彩色图像中,每一个像素由红、绿和蓝三个字节组成,每个字节为8 bit,表示O到255之间的不同的亮度值,这三个字节组合可以产生256x256x256=22 4=l6,777,2l6(=40962相当于4096x4096大小的图象每个象素值都不一样时的容量)(即:约1677万)种不同的颜色。

二、位图的有关术语

  像素(Pixel)、点(Dot)和样点(Sample)

  在计算机显示器上,图像是由许多光点组成的,将显示器上的这些点称为像素。像素的分割有不同的方法,实际常用正方形网格点阵分割方案,这是因为其像素网格点阵规范,易于在图像输入、输出设备上实现。

【2】样点和点

    扫描一幅图像时,需设置扫描仪的分辨率(Resolution),分辨率决定了扫描仪从源图像里每英寸取多少个样点。扫描仪将源图像看成由人量的网格组成,然后在每一个网格里取出一点,用该点的颜色值来代表这一网格里所有点的颜色值,这些被选出的点就是样点。扫长,对设备的要求也就越高。所以在制作图像时要根据需要来选择分辨率。

【2)屏幕分辨率

    屏幕分辨率通常是指,显示屏幕在水平和垂直方向上所能显示的象素数。它取决于显示器的大小及其像素设置。如:标准的VGA显卡的分辨率是6 40×4 80,即水平方向6 40点(像素),  垂直方向4 80点(像素)。现在好一点的显卡已支持l 2 80×l024以上的分辨率。

【3)打印机分辨率

  打印机分辨率义称输出分辨率,是指打印机输出图像时每英寸的点数(dpi)。打印机分辨率也决定了输出图像的质量,打印机分辨率越高,可以减少打印的锯齿边缘,在灰度的半色调表现上也会较为平滑。由于超微细碳粉技术的成熟,新的激光打印机的分辨率可达600~1200 dpi,作为专业排版输出已经绰绰有余了。

【4)扫描仪分辨率

    扫描仪分辨率的表示方法与打印机相类似,一般也用dpi表示,不过这里的点是样点,与打印机的输出点是不同的。一般扫描仪提供的方式是水平分辨率要比垂直分辨率高。台式扫描仪的分辨率可以分为光学分辨率和输出分辨率。光学分辨率是指扫描仪硬件所真正扫描到的图像分辨率,目前市场上的产品,其光学分辨率可达800~l200dpi以上。输出分辨率是通过软件强化以及内插补点之后产生的分辨率,大约为光学分辨率的3~4倍。所以目前当你见到号称分辨率高达4800dpi或6400 dpi的扫描仪时,这一定指的是输出分辨率。

 

第二章数字图像处理基础

2.2图像数字化技术

    图像处理的方法有模拟式和数字式两种:我们日常生活中见到的图像一般是连续形式的模拟图像,所以数字图像处理首先要将连续图像离散化,转换为数字图像。

    图像的数字化包括采样和量化两个过程。

    设连续图像f(x,y)经数字化后,可以用一个离散量组成的n(m)阶矩阵(即二维数组)g(i,j)来表示,矩阵中的每一个元素称为像元、像素或图像元素。而g(i,j)代表(i,j)点的灰度值,即亮度值。

 

几点说明:

   A、由于g(i,j)代表该点图像的光强度,而光是能量的一种形式,故g(i,j)必须大于零,且为有限值,即:O<g(i,j)<∞;

   B、数字化采样一般是按正方形点阵取样的,除此之外还有三角形点阵、正六角形点阵取样;

   C、  以上是用g(i,j)的数值来表示(i,j)位置点上灰度级值的大小,即只反映了黑自灰度的关系,如果是一幅彩色图像,各点的数值还应当反映色彩的变化,可用g(i,j,入)表示,其中入是波长。如果图像是运动的,还应是时间t的函数,即可表示为g(i,j,入,t)。

 

一、图像的输入设备

 (1)基于CCD光电耦器件的输入设备

    A、摄像机、数字摄像机

    B、数字相机

    C、平板扫描仪

  (2)基于光电倍增管的输入设备

    A、滚筒扫描仪

    扫描仪分辨率与扫描图象的大小。分辨率:单位长度上采样的像素个数:DPI(Dot Per Inch)

 

图像数字化设备的组成

    采样和量化是数字化一幅图像的两个基本过程。即把图像划分为若干图像元素(像素)并给出它们的地址(采样);度量每一像素的灰度,并把连续的度量结果量化为整数(量化);最后将这些整数结果写入存储设备。为完成这些功能,图像数字化设备必须包含以下五个部分:

    【1】采样孔(aperturesampleing);使数字化设备能够单独地观测特定的图像元素而不受图像其他部分的影响;

    【2】图像扫描机构;  使采样孔按照预先确定的方式在图像上移动,从而按顺序观测每一个像素;

    【3】光传感器;通过采样检测图像的每一像素的亮度,通常采用CCD阵列;

    【4】量化器;将传感器输出的连续量转化为整数值。典型的量化器是A/D转换电路,它产生一个与输入电压或电流成比例的数值;

    【5】输出存储装置;将量化器产生的灰度值按适当格式存储起来,以用于计算机后续处理。

 

图像数字化设备的性能

    虽然数字化设备的组成各不相同,但可从如下几方面对其性能进行比较:

    (1)像素大小;采样孔的人小和相邻像素的间距是两个重要的性能指标。如果数字化设备是在一个放大率可变的光学系统上,那么对应于输入图像平面上的采样点大小和采样间距也是可变的。

【2】图像大小;图像大小即数字化设备,所允许的最人输入图像的尺寸。

   (3)线性度;对光强进行数字化时,灰度正比于图像亮度的实际精确程度是一个重要的指标。非线性的数字化设备,会影响后续过程的有效性。能将图像量化为多少级灰度也是非常重要的参数。图像的量化精度经历了早期的黑白二值图像、灰度图像及现在的彩色及真彩色图像。当然,量化精度越高,存储像素信息需要的字节数也越大。

   (4)噪声;字化设备的噪声水平也是一个重要的性能参数。例如,数字化一幅灰度值恒定的图像,虽然输入亮度是一个常量,但是数字化设备中固有的噪声却会使图像的灰度发生变化。因此数字化设备所产生的噪声是图像质量下降的根源之一,应当使噪声小于图像内的反差点(即对比度)。

 

二、采样

1、采样和采样点

    ★图像在空间上的离散化称为采样,也就是用空间上部分点的灰度值代表图像,这些点称为采样点。

2、采样方法

    ★由于图像是一种二维分布的信息,为了对它进行采样操作,需要先将二维信号变为一维信号,再对一维信号完成采样。具体做法是,先沿垂直方向按一定间隔从上到下顺序地沿水平方向直线扫描,取出各水平线上灰度值的一维扫描;而后再对一维扫描线信号按一定间隔采样得到离散信号,即先沿垂直方向采样,再沿水平方向采样这两个步骤完成采样操作。

    ★对于运动图像(即时间域上的连续图像),需先在时间轴上采样,再沿垂直方向采样,最后沿水平方向采样,由这三个步骤完成。

    ★对一幅图像采样时,若每行(即横向)像素为M个,每列(即纵向)像素为N个,则图像大小为M×N个像素。

3、图像采样的形式化定义

  设Z表示整数集合。采样处理:将xy平面分配到一个网格上,且每一个网格中心的坐标是一个笛卡儿乘积ZxZ的元素对,即所有有序元素对(a,b)的集合,其中a和b属于整数集合Z。

    在进行采样时,采样点间隔的选取是一个非常重要的问题,它决定了采样后图像的质量,即忠实于原图像的程度。采样间隔的大小选取要依据原图像中包含的细微浓淡变化来决定。一般,图像中细节越多,采样间隔应越小。根据一维采样定理,若一维信号g(t)的最大频率为W,以T≤l/2W为间隔进行采样,则能够根据采样结果g(iT)(i=…,-l,O,l….)完全恢复g(t)。

 4、非均匀采样

    在厌度级变化尖锐的区域,用细腻的采样,在灰度级比较平滑的区域,用粗糙的采样

 

三、量化

1、图像灰度值的量化

    模拟图像经过采样后,在时间和空间上离散化为像素。但采样所得的像素值(即灰度值)仍是连续量。把采样后所得的各像素的灰度值从模拟量到离散量的转换称为图像灰度的量化。

    若连续灰度值用z来表示,对于满足zi≤z≤zi+1的z值,都量化为整数qi。qi称为像素的灰度值,z与qi的差称为量化误差。一般,像素值量化后用一个字节8 bit来表示,比如:把由黑-灰-白的连续变化的灰度值,量化为O~255共256级灰度值,灰度值的范闱为O~255,表示亮度从深到浅,对应图像中的颜色为从黑到白。

    图像的量化处理:将图像的像素值从模拟量映射到离散量Z的处理

2、图像的形式化定义

    设Z表示整数集合,R表示实数集合,f(x,y)是数字图像:

    A、仪当(x,y)是ZxZ中的整数,

    B、并日f是给每一个坐标对(x,y)分配了一个灰度值(该值出于R) 的函数。

3、连续灰度值量化为灰度级的方法有两种:

  A、一种是等间隔量化

  等间隔量化就是简单地把采样值的灰度范围等间隔地分割并进行量化。对于像素灰度值在黑-白范围较均匀分布的图像,这种量化方法可以得到较小的量化误差。该方法也称为均匀量化或线性量化。为了减小量化误差,引入了非均匀量化的方法。

  B、另一种是非等间隔量化

  非均匀量化是依据一幅图像具体的灰度值分布的概率密度函数,按总的量化误差最小的原则来进行量化。具体做法是对图像中像素灰度值频繁出现的灰度值范围,量化间隔取小一些,而对那些像素灰度值极少出现的范围,则量化间隔取大些。

    由于图像灰度值的概率分布密度函数因图像不同而异,  所以不可能找到一个适用于各种不同图像的最佳非等间隔量化方案。因此,实用一般都采用等间隔量化。

 

四、采样与量化参数的选择

   一幅图像在采样时,行、列的采样点与量化时每个像素量化的级数,既影响数字图像的质量,也影响到该数字图像数据量的大小。

    一般,当限定数字图像的大小时,为了得到质量较好的图像可采用如下原则:

    (1)对缓变的图像,应该细量化,粗采样,以避免假轮廓。

    (2)细节丰富的图像,应细采样,粗量化,以避免模糊(混叠)。

    (3)对于彩色图像,是按照颜色成分--红(R)、绿(G)、蓝(B)

  分别采样和量化的。若各种颜色成分均按8 bit量化,即每种颜色量级别是256,则可以处理256×256×256=167772l6种颜色。

 

采样分辨率和量化级数与数字化图像质量之间的关系:

    (1)对一幅图像,当量化级数Q一定时,采样点数M×N对图像质量有着显著的影响。采样点数越多,图像质量越好;当采样点数减少时,图上的块状效应就逐渐明显。

    (2)同理,当图像的采样点数一定时,采用不同量化级数的图像质量也不一样。量化级数越多,图像质量越好,当量化级数越少时,图像质量越差,量化级数最小的极端情况就是二值图像,图像出现假轮廓。

一个好的近似图像,需要多少采样分辨率和灰度级

   胡昂【1965】实验

A、实验方法

★选取一组细节多少不同的、不同N、M、G的图象;

★让观察者根据他们的主观质量感觉给这些图象排序;

B、实验结论

★随着采样分辨率和灰度级的提高,主观质量也提高;

★对有人量细节的图象,质量对灰度级需求相应降低;

 

(2)非统一的图像量化

  A、附近使用较少的灰度级。剩余的灰度级可用于灰度级变化比较平滑的区域;

 C、  避免或减少由于量化的太粗糙,在灰度级变化比较平滑的区域出现假轮廓的现象;

 

2.3数字图像的存储:图像的存储体系

一、图像文件格式体系

  A、国际标准:TIF(Tag Image File Format)、JPEG(JointPhotographer’s Experts Group)

  B、互联网用:GIF(Graphics Interchange Format)、JPEG、PNG

  C、  印刷用:TIF、JPG、TAG、PCX

二、图像存储体系

  A、内存存储:处理时使用

  B、硬盘存储:处理、备份时用(在线)

  C、备份存储:光盘、磁带(离线、近线)

  D、分级存储(HSM),网络存储(SAN/NAS)

三、彩色图像的存储

  A、按像素存储

  B、按色面存储

四、处理中的图像存储

    1、图像处理算法对存储缓冲区的不同处理模式:以像素为单位的

处理,单缓冲区存储处理

   2体积图像处理中的块缓冲区处理方式:行缓冲区、定长块缓冲区、不定长块缓冲

   3大体积图像处理中的文件映射处理方式

        A、由操作系统和程序语言开发工具提供支持

        B、存在的问题:存储空间的动态不可控性

五、图像的打印:打印机类型

  A、喷墨打印机

  B、激光打印机

  C、热升华打印机

  D、热蜡打印机

  E、印刷机:(数字印刷机和传统印刷机:平印、凹印、丝印)

六、打印机显色原理

    (1)CMYK减色法

    (2)半色调(Halftone):通过基本颜色细小色块的组合变化

实现连续色调的图象

    (3)网点(Screen)

         A、  调幅网点:通过改变网点的大小;

         B、  调频网点:通过改变单位面积中,相同大小网点的出现次数。

 

2.4色度学基础与颜色模型

 

色度学基础

  在前面学习灰度图像时,图像的像素值是光强,  即二维空间变量的函数f(x,y)。如把灰度值看成是二维空间变量和光谱变量的函数f(x,y,入),即多光谱图像,也就是通常所说的彩色图像。在计算机上显示一幅彩色图像时,每一个像素的颜色是通过三种基本颜色(即红、绿、蓝)合成的,即最常见的RGB颜色模型。要理解颜色模型,首先应了解人的视觉系统。

 

三色原理

  在人的视觉系统中存在着杆状细胞和锥状细胞两种感光细胞。杆状细咆为暗视器官,锥状细胞是明视器官,在照度足够高时起作用,并能分别辨颜色。锥状细胞将电磁光谱的可见部分分为三个波段:红、绿、蓝。由于这个原因,这三种颜色被称为三基色。

一、色度学基础

  根据人眼的结构,所有颜色都可看作是三种基本颜色…R、G、B(Green、Red、B1ue分别表示红、绿、蓝)按照不同的比例组合而成。为了建立标准,国际照度委员会(CIE)甲.在l931年就规定三种基本色的波长分别为R:700 nm,G:546.1 nm,B:435.8 nm。 前面已讲过,一幅彩色图像的像素值可看作是光强和波长的函数值f(x,y,入),但.实际使用时,将其看作是一幅普通二维图像,且每个像素有红、绿、蓝三个灰度值会更直观些。

颜色的三个属性

颜色是外界光刺激作用于人的视觉器官而产生的主观感觉。颜色分两人类:非彩色和彩色。非彩色是指黑色、白色和介于这两者之间深浅不同的灰色,也称为无色系列。彩色是指除了非彩色以外的各种颜色。颜色有三个基本属性,分别是色调、饱和度和亮度。基于这三个基本属性,提出了一种重要的颜色模型HIS(Hue、Saturafton、Intensity)。在HSI颜色模型部分中,我们将详细介绍这三个基本属性。

 

二、颜色模型

    为了科学地定量描述和使用颜色,人们提出了各种颜色模型。目前常用的颜色模型按用途可分为两类, 一类面向诸如视频监视器、彩色摄像机或打印机之类的硬件设备。另一类面向以彩色处理为目的的应用,如动面中的彩色图形。

  ★1、面向硬件设备的最常用彩色模型是RGB模型;

  ★2、而面向彩色处理的最常用模型是H SI模型Q

  ★3、另外,在印刷工业上和电视信号传输中,经常使用CMYK和YuV色彩系统Q

1、RGB模型

A、通常使丽于彩色光栅图形显示设备中,计算机屏幕显示通常用RGB表色系统,它是通过相加来产生其他颜色

的,这种做法通常称为加色合成法(Additive Color Synthesis)。

B、真实感图形学中的主要的颜色模型

C、彩用三维直角坐标系

D、RGB立方体

  RGB模型用三维空间中的一个点来表示一种颜色。每个点有三个分量,分别代表该点颜色的红、绿、蓝亮度值,亮度值限定在[O,1]。在

RGB模型立方体中,原点所对应的颜色为黑色,它的三个分量值都为零。距离原点最远的顶点对应的颜色为白色,它的三个分量值都为l。从黑到白的灰度值分布在这两个点的连线上,该线称为灰色线。立方体内其余各点对应不同的颜色。彩色立方体中有三个角对应于三基色…一红、绿、蓝。剩下的三个角对应于三基色的三个补色--黄色、青色(蓝绿色)、品红(紫色)。红、绿、蓝原色混合在一起可以产生复合色。

2、HSI模型

  H SI模型是Munsell提出的,它反映了人的视觉系统观察彩色的方式,在艺术上经常使用HSI模型。Munsell颜色系统采用网柱形表示方法,该系统建立在一系列颜色样品的基础上,因而是一种主观标准。

(1)HSI模型一量化颜色三属性

  H色调(Hue):取值O一360

  S饱和度(Saturation):取值O-l或O-1 00

  I亮度(Intensity):取值O-1或O-1 OO

(2)HSl模型HSl模型的建立基于两个重要的事实:

  ①I分量与图像的彩色信息无关;

  ②H和S分量与人感受颜色的方式是紧密相联的。

  这些特点使得HSI模型非常适合借助人的视觉系统来感知彩色特性的图像处理算法。

  饱和度是指一个颜色的鲜明程度,饱和度越高,颜色越深, 比如深红,深绿。饱和度参数是色环的原点(网心)到彩色点的半径的长度。由色相环可以看出,环的边界上纯的或饱和的颜色,其饱和度值为l。在中心是中性(灰色)阴影,饱和度为O。

 亮度是指光波作用于感受器所发生的效应,其人小由物体反射系数来决定,反射系数越大,物体的亮度愈大,反之愈小。

  HSI模型的三个属性定义了一个三维柱形空间,灰度阴影沿着轴线从底部的黑变到顶部的白,具有最高亮度。最大饱和度的颜色位于网柱上顶面的网周上。

(3)RGB转换到HSl

    对任何3个[O,1]范围内的R、G、B值,其对应H SI模型中的I、S、H分量的计算方法。计算出的H值的范围为[O。,1 80。],对应于G≥B。在G<B时,H值大于l80。,只要令H=3 60。一H,即可把H转换到[1 80。,360。]区间。所以若将两种情况都考虑上,则算得的H是在[O。,360。]范围内。当S=O时对应的是无色彩的中心点,

这时H就没有意义,此时定义H为O。当I=O时,S也没有意义。

(4)HSI转换到RGB

    假设S、I的值在[O,1]之间,R、G、B的值也在[O,1]之间,则H SI转换为RGB的公式为(分成3段以利用对称性)

3、CMYK模型

CMYK表色系统

  A、以红、绿、蓝的补色青(Cyan)、品红(Magenta)、黄(Yellow)以及黑色(Black)为原色构成的颜色模型;

  B、  常用于从白光中滤去某种颜色,又被称为减性原色系统,在白色中减去某种颜色来定义一种颜色;

  C、一般用于印刷行业中(在处理图像时,一般部用CMYK模式,主要是因为这种模式的文件大,  占用的磁盘空间和内存大。);在印刷工业上则通常用CMYK表色系统,它是通过颜色相减来产生其他颜色的,所以称这种方式为减色合成法(Subtractive ColorSynthesis)。

  D、  印刷硬拷贝设备的颜色处理;

  E、  在白纸面上涂黄色和品红色,纸面上将呈现红色;白光被吸收了蓝光和绿光,只能反射红光;

  F、RGB颜色模型与CMY颜色模型都是面向硬件模型。

4、YIQ模型

A、YIQ电视信号彩色坐标系统

  在彩色电视广播中,由于要考虑与黑白电视广播的并存性,因此,对于从摄像设备(摄像机)得到的R、G、B信号,需要把亮度信号与两个色差信号分开进行处理。美国和日本等的标准电视方式NTSC方式中采用了YIQ颜色坐标系统。Y称为亮度,Y值和一个色彩的伽马修正后的亮度成比例,另外两个被称为色度的成分I和Q联合表示一幅图像的色调和饱和度幅性。传输YIQ值而不是传输直接来自彩色摄像机的伽马修正后的RGB值的原因是:

    1)单独的Y信号可以和已经存在的单色监视器一起显示单色图像

    2)可以限制I和Q的空间带宽而没有明显的图像退化。这导致:提出了一个精巧的模拟调制计划,以使彩色电视载体的带宽可以被限制为和单色载体的带宽一样。

B、YUV电视信号彩色坐标系统

  YUV彩色电视信号传输时,将R、G、B改组成亮度信号和色度信号。许多国家使用的PAL和SECAM制式的彩色电视系统中将伽马修正后的R、G、B三色信号改组成Y、U、V信号,  其中Y信号表示亮度,U、V信号是色差信号。YUV坐标系统最初是作为NTSC的传输标准提出的,但是回来被YIQ所取代,因为发现对于一个同样水平的视觉质量来说,I和Q信号在带宽上可以被减少到比U和V信号更大的程度。在色彩空间上通过对U和V信号作一个简单的坐标旋转即可得到I和Q信号。

5、Lab颜色模型

Lab颜色坐标系

  Lab颜色模型是CIE于1976年推荐的设计成符合盂塞尔彩色系统的表色系。 Lab颜色由亮度或光亮度分量L和a、b两个色度分量组成。其中 a在的正向数值越大表示越红,在负向的数值越大则表示越绿;b在的正向数值越大表示越黄,在负向的数值越大表示越蓝。 Lab颜色与设备无关,无论使用何种设备(如显示器、打印机、计算机或扫描仪)创建或输出图像,这种模型都能生成一致的颜色。

posted @ 2007-01-29 11:51 言学 阅读(2704) 评论(2) 编辑

数字图像处理基础-第一章绪论

第一章绪论

1.1数字图像处理(DIP)技术的发展历程简介

  (1)20世纪50一60年代(摇篮期)

    ★太空探索计划  非线性失真、几何变形、噪声、电源干扰

★生物医学

(2)70年代  (发展期)

    ★模式识别技术

    ★图像理解

    ★Ct技术

(3)80年代(普及期)

    ★微机、实际需求牵引,DIP渗透到各个领域

(4)90年代一现在  (高新技术发展)

    ★新器件(光电器件),新处理器,新结构(并行处理,流水线)

    ★20 l O年并行处理一一模拟脑、软计算

1.2应用领域

  (1)通讯

  通讯包括图像传输、电视电话、  电视会议等,t要是进行图像压缩(包括理解基础上的压缩)和传输。

  (2)遥感:卫星、航空

  航空遥感和卫星遥感图像需要用数字技术加工处理,并提取有用的信息;主要用于地形地质,矿藏探查,森林、水利、海洋、农业等资源调查,自然灾害预测预报,环境污染监测,气象卫星云图处理以及地面军事目标的识别。

  (3)安全:指纹识别、视频跟踪及监控等    公安部门的现场照片、指纹、手迹、印章、人像等的处理和辨识;

军事目标的侦察、制导和警戒系统、自动灭火器的控制及反伪装;历史文字和图片档案的修复和管理等。

  (4)医学:整容、立体脑图像配准、心脏核磁共振数据的可视化、支气管虚拟内窥镜。

    图像处理的医学应用非常广泛,无论是临床诊断还是病理研究都人量采用DIP技术;它的直观、无创伤、安全方便等优点备受青睐;图像处理首先应用于细胞分类、染色体分类和放射图像等;70年代数字图像处理在医学中的应用有了重人突破,1 972年X射线断层扫描CT得到实用;1 977年闩血球自动分类仪问世;1 9 80实现了CT的立体重建,计算机图像处理在医学I_:应用最成功的例子就是X射线CT,其卡要研制者H011nsfeld(英)和Commack(美)获得了1 979年的诺贝尔生理医学奖。

 (5)视频和多媒体系统

 目前,电视制作系统广泛使用的图像处理、变换、合成,多媒体系统中静止.图像和动态图像的采集、压缩、处理、存贮和传输等。

 (6)工业生产中的应用

 在生产线中对产品进行无损检测是DIp技术的重要应用;该应用从70年代起取得了迅速的发展,主要有产品质量检测、生产过程的自动控制、机器人视觉等;在产品质量检测方面:在电子工业中,检验印刷电路板的质量、监测零部件的装配等;食品、水果质量的检查,纺织品质量检查,焊缝质量或表面缺陷、无损探伤;义如,_二维图纸自动输入和理解,金属材料的成分和结构分析,光测弹性力学中应力条纹的分析等;在工业自动控制中,主要使用机器视觉系统对生产过程进行监视和控制,如港口的监测调度、交通管理、流水生产线的自动控制等。

 (7)电子商务

    在当前呼声甚高的电子商务中,图像处理技术也人有可为,如身份认证、产品防伪、水印技术等。

    总之,图像处理技术应用领域相当广泛,已在国家安全、经济发展、H常生活中充当越来越重要的角色,对国计民生的作用不可低估。

posted @ 2007-01-29 11:50 言学 阅读(966) 评论(1) 编辑