• <menu id="w2i4a"></menu>
  • logo LEADTOOLS使用教程

    文檔首頁(yè)>>LEADTOOLS使用教程>>LEADTOOLS使用教程:圖像的幾何變換

    LEADTOOLS使用教程:圖像的幾何變換


    1. 高級(jí)縮放類

    ResizeCommand

    調(diào)整已有圖像的大小,并將調(diào)整后的圖像設(shè)為目標(biāo)圖像,原始圖像不變。

    SizeCommand

    將圖像調(diào)整到一個(gè)新的寬和高。

     

    以下為使用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: // 創(chuàng)建目標(biāo)圖像
      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: // 將原始圖像調(diào)整大小
     21: ResizeCommand command = new ResizeCommand();
     22: command.DestinationImage = destImage;
     23: command.Flags = RasterSizeFlags.Bicubic;
     24: command.Run(srcImage);
     25: 
     26: // 將調(diào)整后的圖像保存至磁盤
     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. 高級(jí)裁剪類

     

    AutoCropCommand

     

    裁剪當(dāng)前圖像,刪除邊緣的空白區(qū)域

     

    AutoCropRectangleCommand

     

    若使用了AutoCropCommand類,可以使用此類獲取裁剪時(shí)使用的矩形。

     

    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: // 準(zhǔn)備command
      7: AutoCropCommand command = new AutoCropCommand();
      8: 
      9: //在誤差20內(nèi)自動(dòng)裁剪圖像
     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:    // 準(zhǔn)備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. 其他的高級(jí)變換類 

    類名

    說(shuō)明

    BendCommand

    以軸心點(diǎn)為中心,沿著彎曲的平面扭曲當(dāng)前圖像。這個(gè)中心點(diǎn)必須定義在圖像內(nèi)或區(qū)域內(nèi)。若圖像有一個(gè)區(qū)域,變換只應(yīng)用于此區(qū)域。

    這個(gè)類在Raster Pro及以上工具包中可用。

    ChangeViewPerspectiveCommand

    旋轉(zhuǎn)和翻轉(zhuǎn)圖像數(shù)據(jù),以獲取想要的查看視角。

     

    CylinderCommand

    繞著一個(gè)圓柱扭曲圖像。此命令只在Raster Pro及以上工具包中可用。

     

    DeskewCommand

    旋轉(zhuǎn)特定的圖像并拉直。

     

    FlipCommand

    從頂端到底端或從左到右翻轉(zhuǎn)RasterImage

     

    FreeHandShearCommand

    使用振幅數(shù)組通過(guò)所畫的波形剪切圖像。此命令僅在Raster Pro及以上工具包中可用。

     

    FreeHandWaveCommand

    通過(guò)振幅數(shù)組和旋轉(zhuǎn)角度中指定的波形,扭曲圖像。此命令僅在Raster Pro及以上工具包中可用。

    FreePlaneBendCommand

    將圖像包裹在一個(gè)以曲線塑造的3D平面上。此命令只在Raster Pro及以上工具包中可用。

    原圖:

    LEADTOOLS使用教程:圖像的幾何變換

    應(yīng)用此效果后:

    LEADTOOLS使用教程:圖像的幾何變換

    FreeRadialBendCommand

    將圖像按著曲線塑造的3D平面的半徑包裹。此命令只在Raster Pro及以上工具包中可用。

    原始圖像:

    LEADTOOLS使用教程:圖像的幾何變換

    應(yīng)用此效果后:

    LEADTOOLS使用教程:圖像的幾何變換

    ImpressionistCommand

    使圖片看起來(lái)像出自一個(gè)印象派畫家之手。此命令只在Raster Pro及以上工具包中可用。

    PlaneBendCommand

    將圖像沿著Z軸放置在平行平面,并朝著中心點(diǎn)彎曲。此命令只在Raster Pro及以上工具包中可用。

    原始圖像:

    LEADTOOLS使用教程:圖像的幾何變換

    使用后的效果:

    LEADTOOLS使用教程:圖像的幾何變換

    PlaneCommand

    將圖像沿著Z軸放置在平行平面。此命令只在Raster Pro及以上工具包中可用。

    原始圖像:

    LEADTOOLS使用教程:圖像的幾何變換

    使用后的效果:

    LEADTOOLS使用教程:圖像的幾何變換

     

    PolarCommand

    將圖像從矩形轉(zhuǎn)換為極坐標(biāo),反之亦然。此命令只在Raster Pro及以上工具包中可用。

     

    PunchCommand

    通過(guò)將圖像向中心擠壓或從中心向外擴(kuò)展來(lái)彎曲圖像。此命令只在Raster Pro及以上工具包中可用。

     

    RadialBlurCommand

    通過(guò)繞著中心點(diǎn)旋轉(zhuǎn)像素模糊圖像。此命令只在Raster Pro及以上工具包中可用。

     

    RadialWaveCommand

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

     

    RippleCommand

    在同心圓內(nèi)扭曲圖像。此命令只在Raster Pro及以上工具包中可用。

     

    RotateCommand

    以指定的度數(shù)旋轉(zhuǎn)圖像。此命令只在Raster Pro及以上工具包中可用。

     

    RotateViewPerspective 方法

    通過(guò)改變ViewPerspective旋轉(zhuǎn)RasterImage

     

    ShearCommand

    以平行四邊形的方式移動(dòng)圖像的角。

     

    SphereCommand

    繞著一個(gè)3D球形,扭曲圖像。此命令只在Raster Pro及以上工具包中可用。

     

    SwirlCommand

    根據(jù)旋轉(zhuǎn)角度旋轉(zhuǎn)圖像,以產(chǎn)生漩渦的模式。此命令只在Raster Pro及以上工具包中可用。

     

    RasterCodecs.Transform 方法

    可完成特定格式的無(wú)損轉(zhuǎn)換。

    TunnelCommand

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

    原始圖像:

    LEADTOOLS使用教程:圖像的幾何變換

    使用后的效果:

    LEADTOOLS使用教程:圖像的幾何變換

     

    WaveCommand

    使用特定角度特定波形的兩個(gè)垂直波扭曲圖像。此命令只在Raster Pro及以上工具包中可用。

     

    WindCommand

    創(chuàng)建細(xì)線,以特定的角度引導(dǎo)它,作用于被影響的圖像上。此命令只在Raster Pro及以上工具包中可用。

     

    ZoomBlurCommand

    從特定中心點(diǎn)開(kāi)始沿著半徑線模糊圖像。此命令只在Raster Pro及以上工具包中可用。

     

    ZoomWaveCommand

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

    4. 低級(jí)縮放方法

    ResizeBuffer 方法

    使用Start方法將緩沖區(qū)調(diào)整為指定的新大小。

     

    Start 方法

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

     

    Stop 方法

    清除Start方法中所有的數(shù)據(jù)變量和緩沖區(qū)。

     

     

    轉(zhuǎn)載來(lái)自于http://blog.gcpowertools.com.cn/post/2014/09/12/geometric-transformations-by-leadtools.aspx

    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();