LEADTOOLS使用教程:图像的几何变换

转帖|使用教程|编辑:龚雪|2014-09-17 09:24:18.000|阅读 759 次

概述:本文主要介绍LeaTools的图像几何变换。

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>

相关链接:

1. 高级缩放类

ResizeCommand

调整已有图像的大小,并将调整后的图像设为目标图像,原始图像不变。

SizeCommand

将图像调整到一个新的宽和高。

 

以下为使用ResizeCommand 类的代码片段(注:Resize.rar):

  1: RasterCodecs codecs = new RasterCodecs();
  2: string srcFileName = Path.Combine(ImagesPath.Path, "Image1.cmp");
  3: string destFileName = Path.Combine(ImagesPath.Path, "ResizeCommand.bmp");
  4: 
  5: // 从磁盘加载原始图像
  6: RasterImage srcImage = codecs.Load(srcFileName);
  7: 
  8: // 创建目标图像
  9: RasterImage destImage = new RasterImage(
 10:    RasterMemoryFlags.Conventional,
 11:    100,
 12:    100,
 13:    srcImage.BitsPerPixel,
 14:    srcImage.Order,
 15:    srcImage.ViewPerspective,
 16:    srcImage.GetPalette(),
 17:    IntPtr.Zero,
 18:    0);
 19: 
 20: // 将原始图像调整大小
 21: ResizeCommand command = new ResizeCommand();
 22: command.DestinationImage = destImage;
 23: command.Flags = RasterSizeFlags.Bicubic;
 24: command.Run(srcImage);
 25: 
 26: // 将调整后的图像保存至磁盘
 27: codecs.Save(destImage, destFileName, RasterImageFormat.Bmp, 24);
 28: 
 29: // 清理
 30: srcImage.Dispose();
 31: destImage.Dispose();
 32: codecs.Dispose();


以下为使用SizeCommand类的代码片段(注:Resize.rar):

  1:    RasterCodecs codecs = new RasterCodecs();
  2:    string srcFileName = Path.Combine(ImagesPath.Path, "Image1.cmp");
  3:    string destFileName = Path.Combine(ImagesPath.Path,"SizeCommand.bmp");
  4: 
  5:    // 从磁盘加载原始图像
  6:    RasterImage image = codecs.Load(srcFileName);
  7:    SizeCommand command = new SizeCommand();
  8:    command.Width = 128;
  9:    command.Height = 128;
 10:    command.Flags = RasterSizeFlags.Resample;
 11:    command.Run(image);
 12: 
 13:    // 将图像保存至磁盘
 14:    codecs.Save(image, destFileName, RasterImageFormat.Bmp, 8);
 15: 
 16:    // 清理
 17:    image.Dispose();
 18:    codecs.Dispose();

2. 高级裁剪类

 

AutoCropCommand

 

裁剪当前图像,删除边缘的空白区域

 

AutoCropRectangleCommand

 

若使用了AutoCropCommand类,可以使用此类获取裁剪时使用的矩形。

 

CropCommand

 

使用定义好的矩形裁剪图像。

 

以下为使用AutoCropCommand类的代码片段(注:CropCommand.rar):

  1: // 加载图像
  2: RasterCodecs codecs = new RasterCodecs();
  3: codecs.ThrowExceptionsOnInvalidImages = true;
  4: RasterImage image = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "Master.jpg"));
  5: 
  6: // 准备command
  7: AutoCropCommand command = new AutoCropCommand();
  8: 
  9: //在误差20内自动裁剪图像
 10: command.Threshold = 20;
 11: 
 12: command.Run(image);


以下为使用AutoCropRectangleCommand类的代码片段(注:CropCommand.rar):

  1:    //加载图像
  2:    RasterCodecs codecs = new RasterCodecs();
  3:    codecs.ThrowExceptionsOnInvalidImages = true;
  4: 
  5:    RasterImage image = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "Master.jpg"));
  6: 
  7:    // 准备command
  8:    AutoCropRectangleCommand command = new AutoCropRectangleCommand();
  9:    command.Threshold = 0;
 10:    command.Run(image);
 11:    MessageBox.Show("左 = " + command.Rectangle.Left.ToString() + "\n" +
 12:          "上 = " + command.Rectangle.Top.ToString() + "\n" +
 13:          "右 = " + command.Rectangle.Right.ToString() + "\n" +
 14:          "下 = " + command.Rectangle.Bottom.ToString());


以下为使用CropCommand类的代码片段(注:CropCommand.rar):

  1:    RasterCodecs codecs = new RasterCodecs();
  2:    string srcFileName = Path.Combine(ImagesPath.Path, "Image1.cmp");
  3:    string destFileName = Path.Combine(ImagesPath.Path, "CropCommand.bmp");
  4: 
  5:    //从磁盘中加载原始图像
  6:    RasterImage image = codecs.Load(srcFileName);
  7: 
  8:    // 从图像的各边裁剪掉100像素
  9:    CropCommand command = new CropCommand();
 10:    command.Rectangle = new LeadRect(
 11:       100,
 12:       100,
 13:       image.Width - 100,
 14:       image.Height - 100);
 15:    command.Run(image);
 16: 
 17:    // 将其保存至磁盘
 18:    codecs.Save(image, destFileName, RasterImageFormat.Bmp, 24);
 19: 
 20:    // 清理
 21:    image.Dispose();
 22:    codecs.Dispose();

3. 其他的高级变换类 

类名

说明

BendCommand

以轴心点为中心,沿着弯曲的平面扭曲当前图像。这个中心点必须定义在图像内或区域内。若图像有一个区域,变换只应用于此区域。

这个类在Raster Pro及以上工具包中可用。

ChangeViewPerspectiveCommand

旋转和翻转图像数据,以获取想要的查看视角。

 

CylinderCommand

绕着一个圆柱扭曲图像。此命令只在Raster Pro及以上工具包中可用。

 

DeskewCommand

旋转特定的图像并拉直。

 

FlipCommand

从顶端到底端或从左到右翻转RasterImage

 

FreeHandShearCommand

使用振幅数组通过所画的波形剪切图像。此命令仅在Raster Pro及以上工具包中可用。

 

FreeHandWaveCommand

通过振幅数组和旋转角度中指定的波形,扭曲图像。此命令仅在Raster Pro及以上工具包中可用。

FreePlaneBendCommand

将图像包裹在一个以曲线塑造的3D平面上。此命令只在Raster Pro及以上工具包中可用。

原图:

LEADTOOLS使用教程:图像的几何变换

应用此效果后:

LEADTOOLS使用教程:图像的几何变换

FreeRadialBendCommand

将图像按着曲线塑造的3D平面的半径包裹。此命令只在Raster Pro及以上工具包中可用。

原始图像:

LEADTOOLS使用教程:图像的几何变换

应用此效果后:

LEADTOOLS使用教程:图像的几何变换

ImpressionistCommand

使图片看起来像出自一个印象派画家之手。此命令只在Raster Pro及以上工具包中可用。

PlaneBendCommand

将图像沿着Z轴放置在平行平面,并朝着中心点弯曲。此命令只在Raster Pro及以上工具包中可用。

原始图像:

LEADTOOLS使用教程:图像的几何变换

使用后的效果:

LEADTOOLS使用教程:图像的几何变换

PlaneCommand

将图像沿着Z轴放置在平行平面。此命令只在Raster Pro及以上工具包中可用。

原始图像:

LEADTOOLS使用教程:图像的几何变换

使用后的效果:

LEADTOOLS使用教程:图像的几何变换

 

PolarCommand

将图像从矩形转换为极坐标,反之亦然。此命令只在Raster Pro及以上工具包中可用。

 

PunchCommand

通过将图像向中心挤压或从中心向外扩展来弯曲图像。此命令只在Raster Pro及以上工具包中可用。

 

RadialBlurCommand

通过绕着中心点旋转像素模糊图像。此命令只在Raster Pro及以上工具包中可用。

 

RadialWaveCommand

使用从中心辐射的波形扭曲图像。此命令只在Raster Pro及以上工具包中可用。

 

RippleCommand

在同心圆内扭曲图像。此命令只在Raster Pro及以上工具包中可用。

 

RotateCommand

以指定的度数旋转图像。此命令只在Raster Pro及以上工具包中可用。

 

RotateViewPerspective 方法

通过改变ViewPerspective旋转RasterImage

 

ShearCommand

以平行四边形的方式移动图像的角。

 

SphereCommand

绕着一个3D球形,扭曲图像。此命令只在Raster Pro及以上工具包中可用。

 

SwirlCommand

根据旋转角度旋转图像,以产生漩涡的模式。此命令只在Raster Pro及以上工具包中可用。

 

RasterCodecs.Transform 方法

可完成特定格式的无损转换。

TunnelCommand

沿着Z轴在隧道中放置图像。此命令只在Raster Pro及以上工具包中可用。

原始图像:

LEADTOOLS使用教程:图像的几何变换

使用后的效果:

LEADTOOLS使用教程:图像的几何变换

 

WaveCommand

使用特定角度特定波形的两个垂直波扭曲图像。此命令只在Raster Pro及以上工具包中可用。

 

WindCommand

创建细线,以特定的角度引导它,作用于被影响的图像上。此命令只在Raster Pro及以上工具包中可用。

 

ZoomBlurCommand

从特定中心点开始沿着半径线模糊图像。此命令只在Raster Pro及以上工具包中可用。

 

ZoomWaveCommand

使用从特定中心放大的波形扭曲图像。此命令只在Raster Pro及以上工具包中可用。

4. 低级缩放方法

ResizeBuffer 方法

使用Start方法将缓冲区调整为指定的新大小。

 

Start 方法

ResizeBuffer(Byte[],Int32,Int32,Int32)方法建立信息。

 

Stop 方法

清除Start方法中所有的数据变量和缓冲区。

 

 

转载来自于http://blog.gcpowertools.com.cn/post/2014/09/12/geometric-transformations-by-leadtools.aspx


标签:多媒体图像处理

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com

文章转载自:慧都控件网

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
相关产品
LEADTOOLS Imaging Pro Developer Toolkit

20多年的老牌图像处理控件,支持TWAIN扫描、200多种图像效果、150多种图像格式…

LEADTOOLS Document Suite Developer Toolkit

LEADTOOLS Document Imaging Suite SDK是LEADTOOLS SDK中各种特点的精选组合,这套强大的工具利用了LEAD行业领先的图像处理技术来智能地识别文档的特征,而根据文档的特征可以识别扫描的或传真的任何类型的表格图像。

LEADTOOLS Document Imaging Developer Toolkit

多语言的文档图像处理控件,支持光符识别处理、条形码扫描识别等。

LEADTOOLS Medical Developer Toolkit

LEADTOOLS Medical Imaging是一款医疗成像控件,包含了一些精心挑选的、经过优化的特性,可以满足医疗成像应用程序开发的特殊需要。

LEADTOOLS Medical Imaging Suite Developer Toolkit

LEADTOOLS Medical Imaging Suite帮您开发功能强大的PACS和医学成像应用程序

扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP