当前位置:文档之家› iOS 图形处理

iOS 图形处理

iOS 图形处理
iOS 图形处理

iOS 图形处理 Core Graphics Quartz2D 教程

Core Graphics Framework是一套基于C的API框架,使用了Quartz作为绘图引擎。它提供了低级别、轻量级、高保真度的2D渲染。该框架可以用于基于路径的绘图、变换、颜色管理、脱屏渲染,模板、渐变、遮蔽、图像数据管理、图像的创建、遮罩以及PDF文档的创建、显示和分析。

iOS支持两套图形API族:Core Graphics/QuartZ 2D 和OpenGL ES。OpenGL ES是跨平台的图形API,属于OpenGL的一个简化版本。QuartZ 2D是苹果公司开发的一套API,它是Core Graphics Framework的一部分。需要注意的是:OpenGL ES是应用程序编程接口,该接口描述了方法、结构、函数应具有的行为以及应该如何被使用的语义。也就是说它只定义了一套规范,具体的实现由设备制造商根据规范去做。而往往很多人对接口和实现存在误解。举一个不恰当的比喻:上发条的时钟和装电池的时钟都有相同的可视行为,但两者的内部实现截然不同。因为制造商可以自由的实现Open

GL ES,所以不同系统实现的OpenGL ES也存在着巨大的性能差异。

Core Graphics API所有的操作都在一个上下文中进行。所以在绘图之前需要获取该上下文并传入执行渲染的函数中。如果你正在渲染一副在内存中的图片,此时就需要传入图片所属的上下文。获得一个图形上下文是我们完成绘图任务的第一步,你可以将图形上下文理解为一块画布。如果你没有得到这块画布,那么你就无法完成任何绘图操作。当然,有许多方式获得一个图形上下文,这里我介绍两种最为常用的获取方法。

第一种方法就是创建一个图片类型的上下文。调用UIGraphicsBeginImageContextWithOptions函数就可获得用来处理图片的图形上下文。利用该上下文,你就可以在其上进行绘图,并生成图片。调用UIGraphicsGetImageFromCurrentImageContext函数可从当前上下文中获取一个UIImage对象。记住在你所有的绘图操作后别忘了调用UIGraphicsEndImageContext函数关闭图形上下文。

第二种方法是利用cocoa为你生成的图形上下文。当你子类化了一个UIView并实现了自己的drawRect:方法后,一旦drawRect:方法被调用,Cocoa就会为你创建一个图形上下文,此时你对图形上下文的所有绘图操作都会显示在UIView上。

判断一个上下文是否为当前图形上下文需要注意的几点:

UIGraphicsBeginImageContextWithOptions函数不仅仅是创建了一个适用于图形操作的上下文,并且该上下文也属于当前上下文。

?当drawRect方法被调用时,UIView的绘图上下文属于当前图形上下文。

?回调方法所持有的context:参数并不会让任何上下文成为当前图形上下文。此参数仅仅是对一个图形上下文的引用罢了。

作为初学者,很容易被UIKit和Core Graphics两个支持绘图的框架迷惑。

UIKit

像UIImage、NSString(绘制文本)、UIBezierPath(绘制形状)、UIColor都知道如何绘制自己。这些类提供了功能有限但使用方便的方法来让我们完成绘图任务。一般情况下,UIKit就是我们所需要的。

使用UiKit,你只能在当前上下文中绘图,所以如果你当前处于UIGraphicsBeginImageContextWithOptions函数或drawRect:方法中,你就可以直接使用UIKit提供的方法进行绘图。如果你持有一个context:参数,那么使用UIKit提供的方法之前,必须将该上下文参数转化为当前上下文。幸运的是,调用UIGraphicsPushContext函数可以方便的将context:参数转化为当前上下文,记住最后别忘了调用UIGraphicsPopContext函数恢复上下文环境。

Core Graphics

这是一个绘图专用的API族,它经常被称为QuartZ或QuartZ 2D。Core Graphics是iOS 上所有绘图功能的基石,包括UIKit。

使用Core Graphics之前需要指定一个用于绘图的图形上下文(CGContextRef),这个图形上下文会在每个绘图函数中都会被用到。如果你持有一个图形上下文context:参数,那么你等同于有了一个图形上下文,这个上下文也许就是你需要用来绘图的那个。如果你当前处于UIGraphicsBeginImageContextWithOptions函数或drawRect:方法中,并没有引用一个上下文。为了使用Core Graphics,你可以调用UIGraphicsGetCurrentContext函数获得当前的图形上下文。

至此,我们有了两大绘图框架的支持以及三种获得图形上下文的方法(drawRect:、drawRect: inContext:、UIGraphicsBeginImageContextWithOptions)。那么我们就有6种绘图的形式。如果你有些困惑了,不用怕,我接下来将说明这6种情况。无需担心还没有具体的绘图命令,你只需关注上下文如何被创建以及我们是在使用UIKit还是Core Graphics。

第一种绘图形式:在UIView 的子类方法drawRect :中绘制一个蓝色圆,使用UIKit 在Cocoa 为我们提供的当前上下文中完成绘图任务。

1 2 3 4 5 -(void)drawRect:(CGRect)rect{ UIBezierPath*p=[UIBezierPath bezierPathWithOvalInRect:CGRectMake(0,0,100,100)]; [[UIColor blueColor]setFill]; [p fill]; }

第二种绘图形式:使用Core Graphics 实现绘制蓝色圆。

1 2 3 4 5 6 -(void)drawRect:(CGRect)rect{ CGContextRef con=UIGraphicsGetCurrentContext(); CGContextAddEllipseInRect(con,CGRectMake(0,0,100,100)); CGContextSetFillColorWithColor(con,[UIColorblueColor].CGCol or); CGContextFillPath(con); }

第三种绘图形式:我将在UIView 子类的drawLayer:inContext :方法中实现绘图任务。drawLayer:inContext :方法是一个绘制图层内容的代理方法。为了能够调用

drawLayer:inContext :方法,我们需要设定图层的代理对象。但要注意,不应该将UIView 对象设置为显示层的委托对象,这是因为UIView 对象已经是隐式层的代理对象,再将它设置为另一个层的委托对象就会出问题。轻量级的做法是:编写负责绘图形的代理类。在MyView.h 文件中声明如下代码:

1 2 @interfaceMyLayerDelegate:NSObject

@end

然后MyView.m 文件中实现接口代码:

1

2

3 4 5 6 7 8 9 10 11 1

2

@implementationMyLayerDelegate

-(void)drawLayer:(CALayer*)layerinContext:(CGContextRef)ctx

{

UIGraphicsPushContext(con);

UIBezierPath*p=[UIBezierPathbezierPathWithOvalInRect:CGRect Make(0,0,100,100)];

[[UIColor blueColor]setFill];

[pfill];

UIGraphicsPopContext();

}

@end

直接将代理类的实现代码放在MyView.m 文件的#import 代码的下面,这样感觉好像在使用私有类完成绘图任务(虽然这不是私有类)。需要注意的是,我们所引用的上下文并不是当前上下文,所以为了能够使用UIKit ,我们需要将引用的上下文转变成当前上下文。 编写完代理类实现代码,接下来编写使用这个代理类的代码:

1 2 3 4 5 MyView*myView=[[MyViewalloc]initWithFrame:CGRectMake(0,0,320,480)]; CALayer *myLayer = [CALayer layer]; myLayer.delegate=self; [https://www.doczj.com/doc/7c8116366.html,yeraddSublayer:myLayer]; [myView setNeedsDisplay]; // 调用此方法,drawLayer: inContext:方法才会被调用。

第四种绘图形式: 使用Core Graphics 在drawLayer:inContext :方法中实现同样操作,代码如下:

1 2 3 4 5 -(void)drawLayer:(CALayer*)layinContext:(CGContextRef)con{ CGContextAddEllipseInRect(con,CGRectMake(0,0,100,100)); CGContextSetFillColorWithColor(con,[UIColorblueColor].CGCol or); CGContextFillPath(con); }

最后,演示UIGraphicsBeginImageContextWithOptions 的用法,并从上下文中生成一个UIImage 对象。生成UIImage 对象的代码并不需要等待某些方法被调用后或在UIView 的子类中才能去做。

第五种绘图形式: 使用UIKit 实现:

1 2 3 4 5 6 UIGraphicsBeginImageContextWithOptions(CGSizeMake(100,100),NO,0); UIBezierPath* p =[UIBezierPath bezierPathWithOvalInRect:CGRectMa ke(0,0,100,100)]; [[UIColor blueColor]setFill]; [p fill]; UIImage*im=UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext();

解释一下UIGraphicsBeginImageContextWithOptions 函数参数的含义:第一个参数表示所要创建的图片的尺寸;第二个参数用来指定所生成图片的背景是否为不透明,如上我们使用YES 而不是NO ,则我们得到的图片背景将会是黑色,显然这不是我想要的;第三个参数指定生成图片的缩放因子,这个缩放因子与UIImage 的scale 属性所指的含义是一致的。传入0则表示让图片的缩放因子根据屏幕的分辨率而变化,所以我们得到的图片不管是在单分辨率还是视网膜屏上看起来都会很好。

第六种绘图形式: 使用Core Graphics 实现:

1 2 3 4 5 6 7 UIGraphicsBeginImageContextWithOptions(CGSizeMake(100,100),NO,0); CGContextRef con = UIGraphicsGetCurrentContext();

CGContextAddEllipseInRect(con,CGRectMake(0,0,100,100));

CGContextSetFillColorWithColor(con,[UIColorblueColor].CGColor); CGContextFillPath(con);

UIImage* im=UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

UIKit 和Core Graphics 可以在相同的图形上下文中混合使用。在iOS 4.0之前,使用UIKit 和UIGraphicsGetCurrentContext 被认为是线程不安全的。而在iOS4.0以后苹果让绘图操作在第二个线程中执行解决了此问题。

UIImage 常用的绘图操作

一个UIImage 对象提供了向当前上下文绘制自身的方法。我们现在已经知道如何获取一个图片类型的上下文并将它转变成当前上下文。

平移操作:下面的代码展示了如何将UIImage 绘制在当前的上下文中。

1 2 3 4 5 6 7 8 9 10 UIImage*mars=[UIImage imageNamed:@"Mars.png"];

CGSize sz =[mars size];

UIGraphicsBeginImageContextWithOptions(CGSizeMake(sz.width*2,sz.hei ght),NO,0);

[mars drawAtPoint:CGPointMake(0,0)];

[marsdrawAtPoint:CGPointMake(sz.width,0)];

UIImage* im=UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

UIImageView* iv =[[UIImageView alloc]initWithImage:im];

[self.window.rootViewController.view addSubview:iv];

iv.center=self.window.center;

图1 UIImage 平移处理

缩放操作:下面代码展示了如何对UIImage 进行缩放操作:

1 2 3 4 5 6 7 UIImage*mars=[UIImage imageNamed:@"Mars.png"];

CGSize sz =[mars size];

UIGraphicsBeginImageContextWithOptions(CGSizeMake(sz.width*2,sz.heig ht*2),NO,0);

[mars drawInRect:CGRectMake(0,0,sz.width*2,sz.height*2)];

[marsdrawInRect:CGRectMake(sz.width/2.0,sz.height/2.0,sz.width,sz.he ight) blendMode:kCGBlendModeMultiplyalpha:1.0];

UIImage* im=UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

图2 UIImage 缩放处理

UIImage 没有提供截取图片指定区域的功能。但通过创建一个较小的图形上下文并移动图片到一个适当的图形上下文坐标系内,指定区域内的图片就会被获取。

裁剪操作:下面代码展示了如何获取图片的右半边:

1 2 3 4 5 6 UIImage*mars=[UIImage imageNamed:@"Mars.png"]; CGSize sz =[mars size]; UIGraphicsBeginImageContextWithOptions(CGSizeMake(sz.width/2.0,sz.h eight),NO,0); [mars drawAtPoint:CGPointMake(-sz.width/2.0,0)]; UIImage*im=UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext();

以上的代码首先创建一个一半图片宽度的图形上下文,然后将图片左上角原点移动到与图形上下文负X 坐标对齐,从而让图片只有右半部分与图形上下文相交。

图3 UIImage 裁剪原理

CGImage 常用的绘图操作

UIImage 的Core Graphics 版本是CGImage (具体类型是CGImageRef )。两者可以直接相互转化: 使用UIImage 的CGImage 属性可以访问Quartz 图片数据;将CGImage 作为UIImage 方法imageWithCGImage:或initWithCGImage:的参数创建UIImage 对象。 一个CGImage 对象可以让你获取原始图片中指定区域的图片(也可以获取指定区域外的图片,UIImage 却办不到)。

下面的代码展示了将图片拆分成两半,并分别绘制在上下文的左右两边:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

UIImage*mars=[UIImage imageNamed:@"Mars.png"]; // 抽取图片的左右半边 CGSizesz=[mars size]; CGImageRef marsLeft=CGImageCreateWithImageInRect([marsCGImage],CGR ectMake(0,0,sz.width/2.0,sz.height)); CGImageRefmarsRight=CGImageCreateWithImageInRect([marsCGImage],CGRe ctMake(sz.width/2.0,0,sz.width/2.0,sz.height)); // 将每一个CGImage 绘制到图形上下文中 UIGraphicsBeginImageContextWithOptions(CGSizeMake(sz.width*1.5,sz.h eight),NO,0); CGContextRef con = UIGraphicsGetCurrentContext(); CGContextDrawImage(con,CGRectMake(0,0,sz.width/2.0,sz.height),marsL eft); CGContextDrawImage(con,CGRectMake(sz.width,0,sz.width/2.0,sz.height ),marsRight); UIImage*im=UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); // 记得释放内存,ARC 在这里无效 CGImageRelease(marsLeft); CGImageRelease(marsRight); 你也许发现绘出的图是上下颠倒的!图片的颠倒并不是因为被旋转了。当你创建了一个CGImage 并使用CGContextDrawImage 方法绘图就会引起这种问题。这主要是因为原始的本地坐标系统(坐标原点在左上角)与目标上下文(坐标原点在左下角)不匹配。有很多方法可以修复这个问题,其中一种方法就是使用CGContextDrawImage 方法先将

CGImage 绘制到UIImage 上,然后获取UIImage 对应的CGImage ,此时就得到了一个倒转的CGImage 。当再调用CGContextDrawImage 方法,我们就将倒转的图片还原回来了。实现代码如下:

1 2 CGImageRefflip(CGImageRefim){

CGSize sz=CGSizeMake(CGImageGetWidth(im),CGImageGetHeight(i

3 4 5 6 7 8 9 m));

UIGraphicsBeginImageContextWithOptions(sz,NO,0);

CGContextDrawImage(UIGraphicsGetCurrentContext(),CGRectMake(0,0,sz.width,sz.height),im);

CGImageRefresult=[UIGraphicsGetImageFromCurrentImageContext() CGImage];

UIGraphicsEndImageContext();

returnresult;

}

现在将之前的代码修改如下:

1 2 CGContextDrawImage(con,CGRectMake(0,0,sz.width/2.0,sz.height),flip(marsLeft));

CGContextDrawImage(con,CGRectMake(sz.width,0,sz.width/2.0,sz.height ),flip(marsRight));

然而,这里又出现了另外一个问题:在双分辨率的设备上,如果我们的图片文件是高分辨率(@2x )版本,上面的绘图就是错误的。原因在于对于UIImage 来说,在加载原始图片时使用imageNamed:方法,它会自动根据所在设备的分辨率类型选择图片,并且

UIImage 通过设置用来适配的scale 属性补偿图片的两倍尺寸。但是一个CGImage 对象并没有scale 属性,它不知道图片文件的尺寸是否为两倍!所以当调用UIImage 的CGImage 方法,你不能假定所获得的CGImage 尺寸与原始UIImage 是一样的。在单分辨率和双分辨率下,一个UIImage 对象的size 属性值都是一样的,但是双分辨率UIImage 对应的

CGImage 是单分辨率UIImage 对应的CGImage 的两倍大。所以我们需要修改上面的代码,让其在单双分辨率下都可以工作。代码如下:

1 2 3 4 UIImage*mars=[UIImageimageNamed:@"Mars.png"];

CGSize sz =[marssize];

// 转换CGImage 并使用对应的CGImage 尺寸截取图片的左右部分

CGImageRef marsCG = [marsCGImage];

5 6 7 8 9 10 11 12 13 14 15 16

CGSizeszCG=CGSizeMake(CGImageGetWidth(marsCG),CGImageGetHeight(mars CG));

CGImageRef marsLeft=CGImageCreateWithImageInRect(marsCG,CGRectMake (0,0,szCG.width/2.0,szCG.height));

CGImageRefmarsRight=CGImageCreateWithImageInRect(marsCG,CGRectMake(szCG.width/2.0,0,szCG.width/2.0,szCG.height));

UIGraphicsBeginImageContextWithOptions(CGSizeMake(sz.width*1.5,sz.h eight),NO,0);

//剩下的和之前的代码一样,修复倒置问题

CGContextRef con = UIGraphicsGetCurrentContext();

CGContextDrawImage(con,CGRectMake(0,0,sz.width/2.0,sz.height),flip(marsLeft));

CGContextDrawImage(con,CGRectMake(sz.width,0,sz.width/2.0,sz.height

),flip(marsRight));

UIImage*im=UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

CGImageRelease(marsLeft);

CGImageRelease(marsRight);

上面的代码初看上去很繁杂,不过不用担心,这里还有另一种修复倒置问题的方案。相对于使用flip 函数,你可以在绘图之前将CGImage 包装进UIImage 中,这样做有两大优点:

?

当UIImage 绘图时它会自动修复倒置问题 ? 当你从CGImage 转化为Uimage 时,可调用imageWithCGImage:scale:orientation:

方法生成CGImage 作为对缩放性的补偿。

所以这是一个解决倒置和缩放问题的自包含方法。

代码如下:

1 2 3 4 5 UIImage*mars=[UIImage imageNamed:@"Mars.png"];

CGSize sz =[marssize];

CGImageRefmarsCG=[marsCGImage];

CGSize szCG = CGSizeMake(CGImageGetWidth(marsCG),CGImageGetHeigh t(marsCG));

6 7 8 9 10 11 12 13 14 15 16 1

7

1

8

CGImageRefmarsLeft=CGImageCreateWithImageInRect(marsCG,CGRectMake(0,0,szCG.width/2.0,szCG.height));

CGImageRefmarsRight=CGImageCreateWithImageInRect(marsCG,CGRectMake(szCG.width/2.0,0,szCG.width/2.0,szCG.height));

UIGraphicsBeginImageContextWithOptions(CGSizeMake(sz.width*1.5,sz.h eight),NO,0);

[[UIImageimageWithCGImage:marsLeft

scale:[marsscale]

orientation:UIImageOrientationUp] drawAtPoint:CGPointMake(0,0

)];

[[UIImageimageWithCGImage:marsRight

scale:[marsscale]

orientation:UIImageOrientationUp] drawAtPoint:CGPointMake(sz.width,0)];

UIImage* im=UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

CGImageRelease(marsLeft);CGImageRelease(marsRight);

还有另一种解决倒置问题的方案是在绘制CGImage 之前,对上下文应用变换操作,有效地倒置上下文的内部坐标系统。这里先不做讨论。

为什么会发生倒置问题

究其原因是因为Core Graphics 源于Mac OS X 系统,在Mac OS X 中,坐标原点在左下方并且正y 坐标是朝上的,而在iOS 中,原点坐标是在左上方并且正y 坐标是朝下的。在大多数情况下,这不会出现任何问题,因为图形上下文的坐标系统是会自动调节补偿的。但是创建和绘制一个CGImage 对象时就会暴露出倒置问题。

CIFilter 与CIImage

CIFilter 与CIImage 是iOS 5新引入的,虽然它们已在MAX OS X 系统中存在多年。前缀“CI”表示Core Image ,这是一种使用数学滤镜变换图片的技术。但是你不要去幻想iOS 提供了像Photoshop 软件那样强大的滤镜功能。使用Core Image 之前你需要将

CoreImage.framework 框架导入到你的target 之中。

所谓滤镜指的是CIFilter 类,滤镜可被分为以下几类:

模板与渐变类

这两类滤镜创建的CIImage可以和其他的CIImage进行合并,比如一种单色,一个棋盘,条纹,亦或是渐变。

合成类

此类滤镜可以将一张图片与另外的图片合并,合成滤镜模式常见于图形处理软件Photoshop 中。

色彩类

此滤镜调整、修改图片的色彩。因此你可以改变一张图片的饱和度、色度、亮度、对比度、伽马、白点、曝光度、阴影、高亮等属性。

几何变换类

此类滤镜可对图片执行基本的几何变换,比如缩放、旋转、裁剪。

CIFilter使用起来非常的简单。CIFilter看上去就像一个由键值组成的字典。它生成一个CIImage对象作为其输出。一般地,一个滤镜有一个或多个输入,而对于部分滤镜,生成的图片是基于其他类型的参数值。CIFilter对象是一个集合,可使用键值对进行检索。通过提供滤镜的字符串名称创建一个滤镜,如果想知道有哪些滤镜,可以查询苹果的Core Image Filter Reference文档,或是调用CIFilter的类方法filterNamesInCategories:,参数值为nil。每一个滤镜拥有一小部分用来确定其行为的键值。如果你想修改某一个键(比如亮度键)对应的值,你可以调用setValue:forKey:方法或当你指定一个滤镜名时提供所有键值对。

需要处理的图片必须是CIImage类型,调用initWithCGImage:方法可获得CIImage。因为CGImage又是作为滤镜的输出,因此滤镜之间可被连接在一起(将滤镜的输出作为initWithCGImage:方法的输入参数)

当你构建一个滤镜链时,并没有做复杂的运算。只有当整个滤镜链需要输出一个CGImage 时,密集型计算才会发生。调用contextWithOptions:和createCGImage: fromRect:方法创建CIContext。与以往不同的地方是CIImage没有frame与bounds属性;只有extent 属性。你将非常频繁的使用这个属性作为createCGImage: fromRect:方法的第二个参数。

接下来我将演示Core Image 的使用。首先创建一个径向渐变的滤镜,该滤镜是从白到黑的渐变方式,白色区域的半径默认是100。接着将其与一张使用CIDarkenBlendMode 滤镜的图片合成。CIDarkenBlendMode 的作用是背景图片样本将被源图片的黑色部分替换掉。 代码如下:

1 2 3 4 5 6 7 8 9 10 11 12 UIImage*moi=[UIImageimageNamed:@"Mars.jpeg"];

CIImage* moi2=[[CIImage alloc]initWithCGImage:moi.CGImage]; CIFilter*grad=[CIFilter filterWithName:@"CIRadialGradient"];

CIVector* center=[CIVectorvectorWithX:moi.size.width/2.0Y:moi.size .height/2.0];

// 使用setValue :forKey :方法设置滤镜属性

[grad setValue:centerforKey:@"inputCenter"];

// 在指定滤镜名时提供所有滤镜键值对

CIFilter* dark=[CIFilterfilterWithName:@"CIDarkenBlendMode" key sAndValues:@"inputImage",grad.outputImage, @"inputBackgroundImag e",moi2,nil];

CIContext*c=[CIContextcontextWithOptions:nil];

CGImageRef moi3 = [ccreateCGImage:dark.outputImagefromRect:moi2.extent];

UIImage*moi4=[UIImageimageWithCGImage:moi3scale:moi.scaleorientatio n:moi.imageOrientation];

CGImageRelease(moi3);

图4 图片合成快照

这个例子可能没有什么吸引人的地方,因为所有一切都可以使用Core Graphics完成。除了Core Image是使用GPU处理,可能有点吸引人。Core Graphics也可以做到径向渐变并使用混合模式合成图片。但Core Image要简单得多,特别是当你有多个图片输入想重用一个滤镜链时。并且Core Image的颜色调整功能比Core Graphics更加强大。对了,Core Image 还能实现自动人脸识别哦!

绘制一个UIView

绘制一个UIVIew最灵活的方式就是由它自己完成绘制。实际上你不是绘制一个UIView,你只是子类化了UIView并赋予子类绘制自己的能力。当一个UIVIew需要执行绘图操作的时,drawRect:方法就会被调用。覆盖此方法让你获得绘图操作的机会。当drawRect:方法被调用,当前图形上下文也被设置为属于视图的图形上下文。你可以使用Core Graphics 或UIKit提供的方法将图形画到该上下文中。

你不应该手动调用drawRect:方法!如果你想调用drawRect:方法更新视图,只需发送setNeedsDisplay方法。这将使得drawRect:方法会在下一个适当的时间调用。当然,不要覆盖drawRect:方法除非你知道这样做绝对合法。比方说,在UIImageView子类中覆盖drawRect:方法是不合法的,你将得不到你绘制的图形。

在UIView子类的drawRect:方法中无需调用super,因为本身UIView的drawRect:方法是空的。为了提高一些绘图性能,你可以调用setNeedsDisplayInRect方法重新绘制视图的子区域,而视图的其他部分依然保持不变。

一般情况下,你不应该过早的进行优化。绘图代码可能看上去非常的繁琐,但它们是非常快的。并且iOS绘图系统自身也是非常高效,它不会频繁调用drawRect:方法,除非迫不得已(或调用了setNeedsDisplay方法)。一旦一个视图已由自己绘制完成,那么绘制的结果会被缓存下来留待重用,而不是每次重头再来。(苹果公司将缓存绘图称为视图的位图存储回填(bitmap backing store))。你可能会发现drawRect:方法中的代码在整个应用程序生命周期内只被调用了一次!事实上,将代码移到drawRect:方法中是提高性能的普遍做法。这是因为绘图引擎直接对屏幕进行渲染相对于先是脱屏渲染然后再将像素拷贝到屏幕要来的高效。

当视图的backgroundColor为nil并且opaque属性为YES,视图的背景颜色就会变成黑色。

Core Graphics上下文属性设置

当你在图形上下文中绘图时,当前图形上下文的相关属性设置将决定绘图的行为与外观。因此,绘图的一般过程是先设定好图形上下文参数,然后绘图。比方说,要画一根红线,接着画一根蓝线。那么首先需要将上下文的线条颜色属性设定为为红色,然后画红线;接着设置上下文的线条颜色属性为蓝色,再画出蓝线。表面上看,红线和蓝线是分开的,但事实上,在你画每一条线时,线条颜色却是整个上下文的属性。无论你用的是UIKit 方法还是Core Graphics 函数。

因为图形上下文在每一时刻都有一个确定的状态,该状态概括了图形上下文所有属性的设置。为了便于操作这些状态,图形上下文提供了一个用来持有状态的栈。调用

CGContextSaveGState 函数,上下文会将完整的当前状态压入栈顶;调用

CGContextRestoreGState 函数,上下文查找处在栈顶的状态,并设置当前上下文状态为栈顶状态。

因此一般绘图模式是:在绘图之前调用CGContextSaveGState 函数保存当前状态,接着根据需要设置某些上下文状态,然后绘图,最后调用CGContextRestoreGState 函数将当前状态恢复到绘图之前的状态。要注意的是,CGContextSaveGState 函数和

CGContextRestoreGState 函数必须成对出现,否则绘图很可能出现意想不到的错误,这里有一个简单的做法避免这种情况。代码如下:

1 2 3 4 5 6 7 8 -(void)drawRect:(CGRect)rect{

CGContextRef ctx=UIGraphicsGetCurrentContext();

CGContextSaveGState(ctx);

{

// 绘图代码

}

CGContextRestoreGState(ctx);

}

但你不需要在每次修改上下文状态之前都这样做,因为你对某一上下文属性的设置并不一定会和之前的属性设置或其他的属性设置产生冲突。你完全可以在不调用保存和恢复函数的情况下先设置线条颜色为红色,然后再设置为蓝色。但在一定情况下,你希望你对状态的设置是可撤销的,我将在接下来讨论这样的情况。

许多的属性组成了一个图形上下文状态,这些属性设置决定了在你绘图时图形的外观和行为。下面我列出了一些属性和对应修改属性的函数;虽然这些函数是关于Core Graphics 的,但记住,实际上UIKit同样是调用这些函数操纵上下文状态。

线条的宽度和线条的虚线样式

CGContextSetLineWidth、CGContextSetLineDash

线帽和线条联接点样式

CGContextSetLineCap、CGContextSetLineJoin、CGContextSetMiterLimit

线条颜色和线条模式

CGContextSetRGBStrokeColor、CGContextSetGrayStrokeColor、CGContextSetStrokeColorWithColor、CGContextSetStrokePattern

填充颜色和模式

CGContextSetRGBFillColor,CGContextSetGrayFillColor,CGContextSetFillColorWit hColor, CGContextSetFillPattern

阴影

CGContextSetShadow、CGContextSetShadowWithColor

混合模式

CGContextSetBlendMode(决定你当前绘制的图形与已经存在的图形如何被合成)

整体透明度

CGContextSetAlpha(个别颜色也具有alpha成分)

文本属性

CGContextSelectFont、CGContextSetFont、CGContextSetFontSize、CGContextSetTextDrawingMode、CGContextSetCharacterSpacing

是否开启反锯齿和字体平滑

CGContextSetShouldAntialias、CGContextSetShouldSmoothFonts

另外一些属性设置:

裁剪区域:在裁剪区域外绘图不会被实际的画出来。

变换(或称为“CTM“,意为当前变换矩阵): 改变你随后指定的绘图命令中的点如何被映射到画布的物理空间。

许多这些属性设置接下来我都会举例说明。

路径与绘图

通过编写移动虚拟画笔的代码描画一段路径,这样的路径并不构成一个图形。绘制路径意味着对路径描边或填充该路径,也或者两者都做。同样,你应该从某些绘图程序中得到过相似的体会。

一段路径是由点到点的描画构成。想象一下绘图系统是你手里的一只画笔,你首先必须要设置画笔当前所处的位置,然后给出一系列命令告诉画笔如何描画随后的每段路径。每一段新增的路径开始于当前点,当完成一条路径的描画,路径的终点就变成了当前点。

下面列出了一些路径描画的命令:

定位当前点

CGContextMoveToPoint

描画一条线

CGContextAddLineToPoint、CGContextAddLines

描画一个矩形

CGContextAddRect、CGContextAddRects

描画一个椭圆或圆形

CGContextAddEllipseInRect

描画一段圆弧

CGContextAddArcToPoint、CGContextAddArc

通过一到两个控制点描画一段贝赛尔曲线

CGContextAddQuadCurveToPoint、CGContextAddCurveToPoint

关闭当前路径

CGContextClosePath这将从路径的终点到起点追加一条线。如果你打算填充一段路径,那么就不需要使用该命令,因为该命令会被自动调用。

描边或填充当前路径

CGContextStrokePath、CGContextFillPath、CGContextEOFillPath、CGContextDrawPath。对当前路径描边或填充会清除掉路径。如果你只想使用一条命令完成描边和填充任务,可以使用CGContextDrawPath命令,因为如果你只是使用CGContextStrokePath对路径描边,路径就会被清除掉,你就不能再对它进行填充了。

创建路径并描边路径或填充路径只需一条命令就可完成的函数:CGContextStrokeLineSegments、CGContextStrokeRect、CGContextStrokeRectWithWidth、CGContextFillRect、CGContextFillRects、CGContextStrokeEllipseInRect、CGContextFillEllipseInRect。

一段路径是被合成的,意思是它是由多条独立的路径组成。举个例子,一条单独的路径可能由两个独立的闭合形状组成:一个矩形和一个圆形。当你在构造一条路径的中间过程(意思是在描画了一条路径后没有调用描边或填充命令,或调用CGContextBeginPath函数来清除路径)调用CGContextMoveToPoint函数,就像是你拾起画笔,并将画笔移动到一个新的位置,如此来准备开始一段独立的相同路径。如果你担心当你开始描画一条路径的时候,已经存在的路径和新的路径会被认为是已存在路径的一个合成部分,你可以调用CGContextBeginPath函数指定你绘制的路径是一条独立的路径;苹果的许多例子都是这样做的,但在实际开发中我发现这是非必要的。

CGContextClearRect函数的功能是擦除一个区域。这个函数会擦除一个矩形内的所有已存在的绘图;并对该区域执行裁剪。结果像是打了一个贯穿所有已存在绘图的孔。

CGContextClearRect 函数的行为依赖于上下文是透明还是不透明。当在图形上下文中绘图时,这会尤为明显和直观。如果图片上下文是透明的

(UIGraphicsBeginImageContextWithOptions 第二个参数为NO ),那么

CGContextClearRect 函数执行擦除后的颜色为透明,反之则为黑色。

当在一个视图中直接绘图(使用drawRect :或drawLayer :inContext :方法),如果视图的背景颜色为nil 或颜色哪怕有一点点透明度,那么CGContextClearRect 的矩形区域将会显示为透明的,打出的孔将穿过视图包括它的背景颜色。如果背景颜色完全不透明,那么CGContextClearRect 函数的结果将会是黑色。这是因为视图的背景颜色决定了是否视图的图形上下文是透明的还是不透明的。

图5 CGContextClearRect 函数的应用

如图5,在左边的蓝色正方形被挖去部分留为黑色,然而在右边的蓝色正方形也被挖去部分留为透明。但这两个正方形都是UIView 子类的实例,采用相同的绘图代码!不同之处在于视图的背景颜色,左边的正方形的背景颜色在nib 文件中

但是这却完全改变了CGContextClearRect 函数的效果。UIView 子类的drawRect :方法看起来像这样:

1 2 3 4 CGContextRefcon=UIGraphicsGetCurrentContext();

CGContextSetFillColorWithColor(con,[UIColorblueColor].CGColor); CGContextFillRect(con,rect);

CGContextClearRect(con,CGRectMake(0,0,30,30));

为了说明典型路径的描画命令,我将生成一个向上的箭头图案,我谨慎避免使用便利函数操作,也许这不是创建箭头最好的方式,但依然清楚的展示了各种典型命令的用法。

数字图像处理知

数字图像处理知识点总结

数字图像处理知识点总结 第一章导论 1.图像:对客观对象的一种相似性的生动性的描述或写真。 2.图像分类:按可见性(可见图像、不可见图像),按波段数(单波段、多波段、超波段), 按空间坐标和亮度的连续性(模拟和数字)。3.图像处理:对图像进行一系列操作,以到达预期目的的技术。 4.图像处理三个层次:狭义图像处理、图像分析和图像理解。 5.图像处理五个模块:采集、显示、存储、通信、处理和分析。 第二章数字图像处理的基本概念 6.模拟图像的表示:f(x,y)=i(x,y)×r(x,y),照度分量0

称为采样。采样间隔和采样孔径的大小是两个 很重要的参数。采样方式:有缝、无缝和重叠。 9.将像素灰度转换成离散的整数值的过程叫量化。 10.表示像素明暗程度的整数称为像素的灰度级(或灰度值或灰度)。 11.数字图像根据灰度级数的差异可分为:黑白图像、灰度图像和彩色图像。 12.采样间隔对图像质量的影响:一般来说,采样间隔越大,所得图像像素数越少,空间分 辨率低,质量差,严重时出现像素呈块状的国际棋盘效应;采样间隔越小,所得图像像素数越多,空间分辨率高,图像质量好,但数据量大。13.量化等级对图像质量的影响:量化等级越多,所得图像层次越丰富,灰度分辨率高,图 像质量好,但数据量大;量化等级越少,图像层次欠丰富,灰度分辨率低,会出现假轮廓现象,图像质量变差,但数据量小。但在极少数情况下对固定图像大小时,减少灰度级能改善质量,产生这种情况的最可能原因是减少灰度级一般会增加图像的对比度。例如对细节比较丰富的图像数字化。

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

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 )

《图形图像处理》试题

蒙阴县职教中心2011年度上学期期中考试 《图形图像处理》试题 A卷 (说明:本卷不交,所有答案书写着B卷规定位置) 一、填空题(每空1分,共16分) 1、RGB分别表示三种颜色()()()。 2、做一幅杂志封页广告设计稿,在输出时,应使用()颜色模式,以便于印刷处理。 3、Photoshop是一个图形图像处理软件,是()公司出品。 4、为了方便对图像做随时的修改处理,通常我们将Photoshop图稿先存储为()格式,然后再输出。 ) 5、在Photoshop中使用图层蒙板,黑色默认表示();白色默认表示()。 6、在Photoshop中,增加需区范围可使用()键;减少选区范围则使用()键;取消选区的快捷键是()+()键。 7、Photoshop中图像通道通常有()通道、()通道、()通道和RGB通道组成。 8、Photoshop中修补一个老相片,通常使用()工具,配合校色处理。 二、单选题(每小题分,共75分) 1.photoshop()软件 A 图形处理软件 B 素统 C 图象处理软件 D 软件处理2.PHOTOSHOP生成的文件默认的文件格式是以()为扩展名 A Bmp B Dpg C EPS D PSD @ 3.以下几种颜色格式()颜色格式适合分色输出 A RG B B多通道 C LAB D CMYK 4.应用前景色填充图层的快捷键是() A CTL+SHIFT B CTL+DEL C ALT+DEL D SHIFT+DEL 5.应用选框工具的正常格式建立矩形,正方形选区要加按() A shift B CTRL C ALT D 空格 6.HSB中的H是指() A 饱和度 B 亮度 C 色相 D 色域 7.如果想在现有选择区域的基础上增加选择区域,应按住下列哪个键 A. Shift B. Ctrl C. Alt D. Tab / 8.图象的分辩率为300象素每英寸则每平方英寸上公布的象素总数为() A 300 B 600 C 90000 D 900000

彩色图像处理

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);

《图形图像处理》试题

学校 班级 考号 姓名__________________________ ◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆装◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆ ◆◆◆◆◆◆◆◆◆◆◆◆◆ ◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆ 2011年春季学期期考试题 《图形图像处理》 考试成绩: 一、填空题(每空2分,共30分) 1、退出时,可以选择“文件”菜单下的 命令实现。 2、选择“文件”菜单下的 命令,可以保存图像文件;选择“文件”菜单下的 命令,可以打开图像文件。 3、位图又称 ,它由若干 组成。 4、对于 图像,无论将其放大和缩小多少倍,图形都有一样平滑的边缘和清晰的视觉细节。 5、分辨率是指 ,单位长度上像素越 ,图像就越清晰。 6、全选一幅图像的操作方法是单击[选择]菜单中的 命令。 7、使用画笔工具绘制的线条比较 ,而使用铅笔工具绘制的线条比较 。 8、修复画笔工具和 工具都可以用于修复图像中的杂点、蒙尘、划痕及褶皱等。 9、选取图像后,按 键可以复制图像,按 键可以剪切图像,按 键可以粘贴图像。 二、选择题(每小题2分,共60分) 1、下面模式中,不属于图像常用的颜色模式的是( )。 A 、RGB B 、灰度 C 、HSB D 、双色调 2、构成位图图像的最基本单位是( )。 A 、颜色 B 、通道 C 、图层 D 、像素 3、在中,生成的图像文件默认格式为( )。 A 、JPG B 、PDF C 、PSD D 、GIF 4、选取连续的相似的颜色的区域的工具是( )。 A 、矩形工具 B 、椭圆工具 C 、魔棒工具 D 、磁性套索工具 5、下面的工具不属于擦除工具的是( )。 A 、魔术橡皮擦工具 B 、模糊工具 C 、橡皮擦工具 D 、背景擦除工具 6、钢笔工具可以绘制最简单的线条是( )。 A 、像素 B 、曲线 C 、锚点 D 、直线 7、钢笔工具的作用是( )。 A 、绘制路径 B 、绘制曲线 C 、旋转图片 D 、绘画 8、主要用于绘制直线的工具是( )。 A 、自由钢笔工具 B 、钢笔工具 C 、路径选择工具 D 、直接选择工具 9、选区只能转换为( )。 A 、任意路径 B 、辅助路径 C 、工作路径 D 、平滑曲线 10、当使用魔棒工具时,绘制出的是一个像素点,容差值可能是( )。 A 、255 B 、256 C 、0 D 、1 11、以下工具可以编辑路径的是( )。 A 、钢笔工具 B 、铅笔工具 C 、直接选择工具 D 、转换点工具 12、是用来处理( )的软件。 A 、图形 B 、图像 C 、文字 D 、动画 13、按住( )键,可以确保用椭圆工具绘制出的是正圆。 A 、Shift B 、Ctrl C 、Alt D 、Capslock 14、选择“编辑”菜单下的( )命令可以将剪贴板上的图像粘贴 到选区。

影像处理基本技术

照片编辑“高棉的微笑”

使用“镜头矫正”滤镜对画面进行矫正,操作步骤如下: (1)在Photoshop中,打开文件“吴哥少女.jpg”。双击工具箱中的“抓手工具”,令窗口缩放至合适显示比例。 (2)在图层面板上右键单击“背景”图层,从弹出的快捷菜单中选择“复制图层…”命令,在“复制图层”对话框中,命名新图层为“镜头矫正”,如图4所示,单击“确定”按钮。 (3)单击“背景”图层的“指示图层可见性图标”,隐藏该图层。 图4 “复制图层”对话框 (4)为了防止在镜头矫正过程中图像转到画布之外,要向四周扩展画布。可在菜单栏中选择“图像”→“画布大小…”命令,选中“相对”复选框,输入需要扩展的相对尺寸。如图5所示,单击“确定”按钮。 图5 “画布大小”对话框 (5)在菜单栏中选择“滤镜”→“扭曲”→“镜头矫正…”命令,出现扩展至全屏幕的“镜头矫正”对话框,矫正由于仰拍造成的镜头成像变形。 ○1为了便于观察,取消对话框下方的“显示网格”复选框;使用对话框左侧工具属性栏的“拉直工具”沿着窗格清晰的雕刻纹理,绘制一条水平矫正线将图像拉直到新的横轴,画面自动旋转相应的角度,如图6所示。

图6 用拉直工具进行倾斜矫正 ○2调整右侧“变换”栏目中的“垂直透视”数值,矫正由于仰角拍摄令镜头产生近大远小畸变,设置参考如图7所示,单击“确定”按钮。 图7 用垂直透视矫正参考数值 镜头矫正前、后对比效果如图8所示。 图8 矫正前、后对比效果 说明 (1)“镜头矫正”滤镜可用来旋转图像,或修复由于相机垂直或水平倾斜而导致的图像透视现象。相对于使用“变换”命令,此滤镜的图像网格使得这些调整可以更为轻松精确地进行。 (2)“垂直透视”校正由于相机向上或向下倾斜而导致的图像透视,使图像中的垂直

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

精编资料 了解图形学与图像处理的发展,应用以及当前国际国内研究的热点和重要成果;理解图形学与图像处理对图元以及图像的分析与理解的以及二维与三维形状重建等;... 图形,图像 计算机图形学与图像处理教案 学时: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,计算机图形学中的一些基本概念: 什么是分辨率?什么是光栅?什么是光栅扫描系统的扫描线?什么是像 素?什么是帧缓冲器?什么是刷新率?

图形图像处理试卷

图形图像处理试卷 Company number:【WTUT-WT88Y-W8BBGB-BWYTT-19998】

图形图像处理试卷 姓名成绩 (注意:请将试题答案写在答题纸上) 一、单选题(共30分,每小题2分) 1.要使某图层与其下面的图层合并可按什么快捷键() A.Ctrl+K B.Ctrl+D C.Ctrl+E D.Ctrl+J? 2. 如果想在现有选择区域的基础上增加选择区域,应按住下列哪个键() A.Shift B.Ctrl C.Alt D.Tab 3. 在Photoshop工具箱中的工具,只要按下相应的快捷键即可选中该工具,如果要选中移动工具应该按哪个键:() A.M键 B.V键 C.B键 D.W键? 4. 使用矩形选框工具和椭圆选框工具时,如何做出正形选区() A.按住Alt键并拖拉鼠标 B.按住Ctrl键并拖拉鼠标? C.按住Shift键并拖拉鼠标 D.按住Shift+Ctrl键并拖拉鼠标? 5. 当你要对文字图层执行滤镜效果,那么首先应当做什么() A.将文字图层和背景层合并 B.将文字图层栅格化? C.确认文字层和其它图层没有链接 D.用文字工具将文字变成选取状态,然后在滤镜菜单下选择一个滤镜命令? 6. 下面对多边形套索工具的描述,正确的是:() A.多边形套索工具属于绘图工具 B.可以形成直线型的多边形选择区域? C.多边形套索工具属于规则选框工具 D.按住鼠标键进行拖拉,就可以形成选择区域?

7. Photoshop是用来处理()的软件; A、声音 B、图像 C、文字 D、动画 8. 下面关于分辨率说法中正确的是() A、缩放图像可以改变图像的分辨率 B、只降低分辨率不改变像素总数 C、同一图像中不同图层分辨率一定相同 D、同一图像中不同图层分辨率一定不同 9.不能创建选区的工具是(); A、单行选框 B、磁性套索工具 C、文字工具 D、文字蒙版工具 10 下面哪些选择工具的选区可以被用来定义画笔的形状() A矩形工具 B椭圆工具 C套索工具 D魔棒 11. 使用钢笔工具可以绘制最简单的线条是什么() A直线 B曲线 C锚点 D像素 12.下列哪个是photoshop图象最基本的组成单元:() A 节点 B.色彩空间 C.象素 D.路径 13. 在photoshop中允许一个图象的显示的最大比例范围是多少:()A. 100% B. 200% C. 600% D. 1600% 14. 如何移动一条参考线:() A.选择移动工具拖拉 B 无论当前使用何种工具,按住Alt键的同时单击鼠标C.在工具箱中选择任何工具进行拖拉 D.无论当前使用何种工具,按住shift键的同时单击鼠标 15. 自动抹除选项是哪个工具栏中的功能:() A.画笔工具 B.喷笔工具 C.铅笔工具 D.直线工具

数字图像处理技术试题答案

数字图像处理技术试题库 一、单项选择题:(本大题 小题, 2分/每小题,共 分) 1.自然界中的所有颜色都可以由()组成 A.红蓝绿 B.红黄绿 C.红黄蓝绿 D.红黄蓝紫白 2. 有一个长宽各为200个象素,颜色数为16色的彩色图,每一个象素都用R(红)、G(绿)、B(蓝)三个分量表示,则需要()字节来表示 A.100 B.200 C.300 D. 400 3.颜色数为16种的彩色图,R(红)、G(绿)、B(蓝)三个分量分别由1个字节表示,则调色板需要()字节来表示 A.48 B.60 C.30 D. 40 4.下面哪一个不属于bmp 文件的组成部分 A .位图文件信息头 B. 位图文件头 C.调色板 D. 数据库标示 5.位图中,最小分辨单元是 A.像素 B.图元 C.文件头 D.厘米 6.真彩色的颜色数为 A.888?? B. 161616?? C.128128128?? D.256256256?? 7.如果图像中出现了与相邻像素点值区别很大的一个点,即噪声,则可以通过以下方式去除 A.平滑 B.锐化 C. 坐标旋转 D. 坐标平移 8.下面哪一个选项不属于图像的几何变换() A.平移 B.旋转 C. 镜像 D. 锐化 9.设平移量为x x t t (,),则平移矩阵为() A .1 0 00 1 0 1x y t t ?????????? B. 1 0 00 -1 0 1x y t t ??-???????? C.1 0 00 1 0 - 1x y t t ????????-?? D.1 0 00 1 0 - -1x y t t ?????????? 10.设旋转角度为a ,则旋转变换矩阵为() A .cos() sin() 0sin() cos() 00 0 1a a a a -?????????? B .cos() sin() 0sin() cos() 00 0 1a a a a ?????????? C .sin() cos() 0 sin() cos() 0 0 0 1a a a a -?????????? D .cos() sin() 0sin() cos() 00 0 1a a a a -????-?????? 11.下面哪一个选项是锐化模板 A .-1 -1 -1-1 9 -1-1 -1 -1??????????g B .-1 -1 -1-1 -9 -1-1 -1 -1??????????g C .-1 -1 -1-1 8 -1-1 -1 -1??????????g D .-1 -1 -1-1 6 -1-1 -1 -1?????????? g 12.真彩色所能表示的颜色数目是 A .128128? B .256256256 ?? C .256 D .6059

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

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

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

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

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

数字图像处理基础知识总结

第一章数字图像处理概论 *图像是对客观存在对象的一种相似性的、生动性的描述或写真。 *模拟图像 空间坐标和明暗程度都是连续变化的、计算机无法直接处理的图像 *数字图像 空间坐标和灰度均不连续的、用离散的数字(一般整数)表示的图像(计算机能处理)。是图像的数字表示,像素是其最小的单位。 *数字图像处理(Digital Image Processing) 利用计算机对数字图像进行(去除噪声、增强、复原、分割、特征提取、识别等)系列操作,从而获得某种预期的结果的技术。(计算机图像处理) *数字图像处理的特点(优势) (1)处理精度高,再现性好。(2)易于控制处理效果。(3)处理的多样性。(4)图像数据量庞大。(5)图像处理技术综合性强。 *数字图像处理的目的 (1)提高图像的视感质量,以达到赏心悦目的目的 a.去除图像中的噪声; b.改变图像的亮度、颜色; c.增强图像中的某些成份、抑制某些成份; d.对图像进行几何变换等,达到艺术效果; (2)提取图像中所包含的某些特征或特殊信息。 a.模式识别、计算机视觉的预处理 (3)对图像数据进行变换、编码和压缩,以便于图像的存储和传输。 **数字图像处理的主要研究内容 (1)图像的数字化 a.如何将一幅光学图像表示成一组数字,既不失真又便于计算机分析处理 b.主要包括的是图像的采样与量化 (2*)图像的增强 a.加强图像的有用信息,消弱干扰和噪声 (3)图像的恢复 a.把退化、模糊了的图像复原。模糊的原因有许多种,最常见的有运动模糊,散焦模糊等(4*)图像的编码 a.简化图像的表示,压缩表示图像的数据,以便于存储和传输。 (5)图像的重建 a.由二维图像重建三维图像(如CT) (6)图像的分析 a.对图像中的不同对象进行分割、分类、识别和描述、解释。 (7)图像分割与特征提取 a.图像分割是指将一幅图像的区域根据分析对象进行分割。 b.图像的特征提取包括了形状特征、纹理特征、颜色特征等。 (8)图像隐藏 a.是指媒体信息的相互隐藏。 b.数字水印。 c.图像的信息伪装。 (9)图像通信

图形图像处理基础知识.

图形图像处理技能培训和鉴定标准 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

数字图像处理试题及答案

一、填空题(每题1分,共15分) 1、列举数字图像处理的三个应用领域 医学 、天文学 、 军事 2、存储一幅大小为10241024?,256个灰度级的图像,需要 8M bit 。 3、亮度鉴别实验表明,韦伯比越大,则亮度鉴别能力越 差 。 4、直方图均衡化适用于增强直方图呈 尖峰 分布的图像。 5、依据图像的保真度,图像压缩可分为 无损压缩 和 有损压缩 6、图像压缩是建立在图像存在 编码冗余 、 像素间冗余 、 心理视觉冗余 三种冗余基础上。 7、对于彩色图像,通常用以区别颜色的特性是 色调 、 饱和度 亮度 。 8、对于拉普拉斯算子运算过程中图像出现负值的情况,写出一种标定方法: m i n m a x m i ((,))*255/()g x y g g g -- 二、选择题(每题2分,共20分) 1、采用幂次变换进行灰度变换时,当幂次取大于1时,该变换是针对如下哪一类图像进行增强。 ( B ) A 图像整体偏暗 B 图像整体偏亮 C 图像细节淹没在暗背景中 D 图像同时存在过亮和过暗背景 2、图像灰度方差说明了图像哪一个属性。( B ) A 平均灰度 B 图像对比度 C 图像整体亮度 D 图像细节 3、计算机显示器主要采用哪一种彩色模型( A ) A 、RG B 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.都不 三、判断题(每题1分,共10分)

PHOTOSHOP图形图像处理课程标准

《PHOTOSHOP图形图像处理》课程标准 第一部分前言 一、课程概述 (一)课程性质 图形图像处理作为平面设计领域的重要组成部分,在各行各业中有着广泛的应用。Photoshop 是Adobe公司推出的一款目前非常流行、应用非常广泛的图片处理软件。伴随着计算机的普及和计算机在各行业的广泛应用,Photoshop发挥了越来越大的作用。Photoshop是当今使用最为广泛的的图像处理软件,广泛应用于平面设计等领域。Photoshop图像处理就是借助Photoshop软件来实现图形图像的绘制、图像的编辑、修饰、合成、特效制作、创意设计等。 《Photoshop图形图像处理》课程是计算机类专业一门专业技术必修课程,是培养学生专业能力的核心课程之一。本课程采用理实一体化教学,具有很强的实践性和应用性,它是利用计算机进行平面设计、网页设计、美术设计、多媒体应用软件开发制作的重要基础课程,是从事平面广告设计、包装设计、装饰设计、排版编辑、网页制作、图文印刷、动漫、游戏制作等工作的必备基础课,也是提高学生审美能力、创新能力、设计能力的计算机应用软件的典型课程。 (二)课程目的 该课程针对平面设计师、插画设计师、网络美工、动画美术设计师等工作岗位要求,培养学生图形图像绘制、图像合成、特效制作、产品效果图处理、网页图像处理、VI设计等技能,达到“会、熟、快、美”的岗位要求。通过对Photoshop软件的讲授与学习,让学生达到熟练处理图像与灵活创作设计的要求。学生应掌握平面绘图的方法;掌握图层、通路径等在图像处理中的应用;掌握常用的滤镜效果并在创作中应用;掌握Adobe ImageReady制作动画;掌握图形图像的输出等知识点。使学生掌握图形图像处理的基本理论和基本操作,并具有一定的广告设计和综合创作能力,同时培养学生创新思维能力和健康的审美意识以及团结协作能力,为其成长为一名合格的平面设计与制作人员奠定良好的基础,帮助学生在学习制作图像的过程中,培养审美能力,形成创新意识。 (三)课程定位 《Photoshop图形图像处理》属于一门专业必修课,它前续课程为《计算机应用基础》、《三大构成》等课程;后续课程为《Dreamweaver网页设计》、《Flash二维动画制作》、《3D MAX三维设计》等专业核心课程。在数字媒体制作、动漫设计、游戏软件专业中起承上启下、连贯前后课程,围绕专业核心技能设置的。鉴于计算机图形图像处理的重要意义和在设计中的重要左右,本课程作为平面设计的岗位职业能力培养,可以充分发挥学生的特长,拓展就业渠道。 本课程是数字媒体专业学生专业技能鉴定制定的专业考核技能,是学生必须掌握的职业核心技能,学完本课程后学生完全能够胜任数码照片处理、广告图像处理、VI图形绘制和网页图像处理等职业岗位。 二、课程设计理念 本课程针对高职高专教育教学的特点,以岗位需求为导向,以学生图形图像处理以及平面设计的职业能力培养为目标,以工作过程的系统化和可持续发展为出发点,与企业行业合作共同进行基于工作过程的课程设计开发。根据对学生所从事工作岗位职业能力、工作任务、工作过程的分析,以图形图像处理和平面设计领域的典型工作任务构建教学内容;以真实设计项目和典型案例为载体,采用理实一体化教学模式,基于平面设计实际工作流程设计教学实施过程,创作最佳的基于工作过程的学习环境;以学生为中心,采用项目导向、任务驱动、案例教学等行动导向教学法实施教学,充分调动学生的学习积极性;合理利用网络资源,多渠道拓展职业能力;充分体

图形与图像处理

第三章图形与图像处理 教学目标:了解图形与图像概述;了解静止图像压缩标准;了解显 示设备与扫描仪;掌握图像处理软件。 重点难点:图像处理软件。 教学内容: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.图形(矢量图形、几何图形) 矢量图是用一组命令来描述图形,这些命令给出构成图形的各

图形图像处理教学大纲

《图形图像处理》理论教学大纲 开课院(部):工程技术学院 撰写时间:2012年3月 课程名称:图形图像处理 英文名称:Graphic image processing 课程所属层面:①公共基础②学科基础③专业知识④工作技能 课程性质:①必修②限选③任选 课堂讲授学时:32 实践学时:32 总学时:64 总学分:4 周学时:4 开课学期:第 2 学期 一、课程目的与要求 1、基础知识目标:本课程全面细致地介绍了Adobe Photoshop CS 的各项功能,包括工具箱以及各工具选项栏的详细使用方法,选区的创建,蒙板、通道和图层的应用,如何扫描图像、打印图像以及图像

的色彩调节,滤镜特殊效果的使用。 2、能力目标:具有熟练使用Photoshop CS软件的能力;具有对平面图像进行熟练处理的能力以及使用图像输入、输出及打印的能力。 3、素质目标:通过实践环节的训练,树立理论联系实际的观点,培养实践能力、创新意识和创新能力、培养高技能人才奠定必要的基础。 二、与其它相关学科的衔接 《Photoshop CS图形图像处理》属于一门专业必修课,在后继的《Dreamever网页设计》,《Flash MX设计》等课程中,都有图形图像,动画的制作和处理,因此,本课程在大纲的编写和今后的教学实施过程中,都应该格外重视它的应用性。 三、教学内容与要求 第一章开始Photoshop CS之旅 本章教学目标与要求:掌握Photoshop CS基本术语及相关概念;了解Photoshop CS界面;了解Photoshop CS的各种功能;了解历史面板的作用和使用方法,掌握Photoshop CS基本操作。 本章重点:矢量图与位图解、图像的分辨率和尺寸Photoshop CS的新增功能。

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