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

1.高级缩放类

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

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

以下为使用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类的代码片段(注: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.其他的高级变换类

类名

说明

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

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

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

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

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

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

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

原图:

402b2d9dd8c1bbc91ed3356d6ea1b2f1.png

应用此效果后:

3e3ac0340fd321810042bbe20d96e8f6.png

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

原始图像:

21d2532837a74944d97d7de3e38c45a0.png

应用此效果后:

d29e017e0880e3625ace5b2d42a882fa.png

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

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

原始图像:

cd0b0509f26e1cb99422a6da8e3f11a1.png

使用后的效果:

ee8bfb8090c59e53f15a1533fd331c60.png

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

原始图像:

42aa1e3eab123f0c42b4b08cb13cfb3a.png

使用后的效果:

ec13300fad2108c566ef76bb8eac8866.png

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

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

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

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

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

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

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

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

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

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

原始图像:

b2955a47e9f9c106efd05ff7e9a3b26e.png

使用后的效果:

18bf92dec6c21cee3e89d3bb8424e90c.png

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

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

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

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

4.低级缩放方法

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

标签:多媒体图像处理

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,尊重他人劳动成果

文章转载自:慧都控件网


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部