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

    文檔首頁(yè)>>LEADTOOLS使用教程>>LEADTOOLS使用教程:圖像數(shù)據(jù)格式的更改

    LEADTOOLS使用教程:圖像數(shù)據(jù)格式的更改


    LeadTools中,您可以使用許多高級(jí)、低級(jí)的方法和類改變顏色分辨率(每像素的位數(shù))。大多數(shù)圖像處理方法在內(nèi)存中操作圖像,因此在文件中保存圖像時(shí)這些更改是永久性的。一些低級(jí)的方法會(huì)操作您管理的緩沖區(qū),例如在加載圖像時(shí)處理數(shù)據(jù)。

     

    下面我們將介紹LeadTools中改變顏色分辨率類和方法,主要包括以下幾類:

    1. 自動(dòng)顏色還原

     


    Dithering method
     
    獲取和設(shè)置默認(rèn)的抖動(dòng)方法,被一些內(nèi)部的LEADTOOLS方法引用。

     

    2. 主要顏色分辨率

     

    ColorResolutionCommand

    此類可以將一個(gè)圖像轉(zhuǎn)換為每像素任意位數(shù)。

    可以設(shè)置輸出路徑、設(shè)定調(diào)色板。您可以直接轉(zhuǎn)換原圖或創(chuàng)建一個(gè)新的轉(zhuǎn)換后圖像。

    在指定調(diào)色板時(shí),您可以使用簡(jiǎn)單的調(diào)色板選項(xiàng)或設(shè)定一個(gè)符合您要求的自定義調(diào)色板。自定義調(diào)色板可設(shè)置為任意大小,它可以包括特定的顏色、保留的空白項(xiàng)和開放項(xiàng)。如果您想多次使用一些自定義調(diào)色板,可以使用RasterUserMatchTable創(chuàng)建一個(gè)表格優(yōu)化性能。

     

    以下為使用ColorResolutionCommand類的代碼片段,將圖像的分辨率轉(zhuǎn)為每像素8位:

    注:附件sampleColorResolutionCommand.rar

    
     
    
    1: RasterCodecs codecs = new RasterCodecs(); 
      2: string srcFileName = Path.Combine(ImagesPath.Path, "Image1.cmp");
      3: string destFileName = Path.Combine(ImagesPath.Path, "Image1_colorres8.bmp");
      4: 
      5: // 從磁盤加載源圖像
      6: RasterImage image = codecs.Load(srcFileName);
      7: 
      8: //將顏色分辨率轉(zhuǎn)為每像素8位,在單獨(dú)的圖像中使用Netscape調(diào)色板
      9: ColorResolutionCommand cmd = new ColorResolutionCommand();
     10: cmd.Mode = ColorResolutionCommandMode.CreateDestinationImage;
     11: cmd.BitsPerPixel = 8;
     12: cmd.Order = RasterByteOrder.Rgb;
     13: cmd.DitheringMethod = RasterDitheringMethod.None;
     14: cmd.PaletteFlags = ColorResolutionCommandPaletteFlags.UsePalette;
     15: cmd.SetPalette(RasterPalette.Netscape());
     16: cmd.Run(image);
     17: RasterImage destImage = cmd.DestinationImage;
     18: Assert.IsTrue(destImage.BitsPerPixel == 8);
     19: 
     20: // 保存至磁盤
     21: codecs.Save(destImage, destFileName, RasterImageFormat.Bmp, 8);
     22: destImage.Dispose();
     23: image.Dispose();
     24: codecs.Dispose();

     

    3. 支持自定義調(diào)色板的抖動(dòng)

     



    RasterUserMatchTable 類
     
    使用RasterUserMatchTable類可創(chuàng)建一個(gè)預(yù)定義的表格,加快在ColorResolutionCommand中使用用戶調(diào)色板此類情況的轉(zhuǎn)換速度。

     

    在使用時(shí)我們應(yīng)該遵循以下的順序:

     

    以下為RasterUserMatchTable類使用的代碼片段(注:附件sampleRasterUserMatchTable.rar)

    
     
    
    1: RasterCodecs codecs = new RasterCodecs(); 
      2:    string srcFileName = Path.Combine(ImagesPath.Path, "Image1.cmp");
      3:    string destFileName = Path.Combine(ImagesPath.Path, "RasterUserMatchTable.bmp");
      4: 
      5:    // 從磁盤加載圖像
      6:    RasterImage image = codecs.Load(srcFileName);
      7: 
      8:    //64色彩虹調(diào)色板
      9:    RasterColor[] colors = 
     10:    {
     11:       new RasterColor(0, 0, 0), new RasterColor(0, 0, 85), new RasterColor(0, 0, 170), new RasterColor(0, 0, 255),
     12:       new RasterColor(85, 0, 0), new RasterColor(85, 0, 85), new RasterColor(85, 0, 170), new RasterColor(85, 0, 255),
     13:       new RasterColor(170, 0, 0), new RasterColor(170, 0, 85), new RasterColor(170, 0, 170), new RasterColor(170, 0, 255),
     14:       new RasterColor(255, 0, 0), new RasterColor(255, 0, 85), new RasterColor(255, 0, 170), new RasterColor(255, 0, 255),
     15:       new RasterColor(0, 85, 0), new RasterColor(0, 85, 85), new RasterColor(0, 85, 170), new RasterColor(0, 85, 255),
     16:       new RasterColor(85, 85, 0), new RasterColor(85, 85, 85), new RasterColor(85, 85, 170), new RasterColor(85, 85, 255),
     17:       new RasterColor(170, 85, 0), new RasterColor(170, 85, 85), new RasterColor(170, 85, 170), new RasterColor(170, 85, 255),
     18:       new RasterColor(255, 85, 0), new RasterColor(255, 85, 85), new RasterColor(255, 85, 170), new RasterColor(255, 85, 255),
     19:       new RasterColor(0, 170, 0), new RasterColor(0, 170, 85), new RasterColor(0, 170, 170), new RasterColor(0, 170, 255),
     20:       new RasterColor(85, 170, 0), new RasterColor(85, 170, 85), new RasterColor(85, 170, 170), new RasterColor(85, 170, 255),
     21:       new RasterColor(170, 170, 0), new RasterColor(170, 170, 85), new RasterColor(170, 170, 170), new RasterColor(170, 170, 255),
     22:       new RasterColor(255, 170, 0), new RasterColor(255, 170, 85), new RasterColor(255, 170, 170), new RasterColor(255, 170, 255),
     23:       new RasterColor(0, 255, 0), new RasterColor(0, 255, 85), new RasterColor(0, 255, 170), new RasterColor(0, 255, 255),
     24:       new RasterColor(85, 255, 0), new RasterColor(85, 255, 85), new RasterColor(85, 255, 170), new RasterColor(85, 255, 255),
     25:       new RasterColor(170, 255, 0), new RasterColor(170, 255, 85), new RasterColor(170, 255, 170), new RasterColor(170, 255, 255),
     26:       new RasterColor(255, 255, 0), new RasterColor(255, 255, 85), new RasterColor(255, 255, 170), new RasterColor(255, 255, 255)
     27:    };
     28: 
     29:    // 創(chuàng)建和設(shè)置user match table
     30:    RasterUserMatchTable userMatchTable = new RasterUserMatchTable();
     31:    userMatchTable.Create(colors);
     32:    userMatchTable.Use();
     33: 
     34:    // 使用新調(diào)色板更改顏色分辨率。注意若您多次使用,user match table 使您的代碼速度更快。它的//代碼在這里出現(xiàn)是因?yàn)槲覀兿胍蚰故舅窃趺词褂玫摹?
     35: 
     36:    ColorResolutionCommand command = new ColorResolutionCommand(
     37:       ColorResolutionCommandMode.InPlace,
     38:       8,
     39:       RasterByteOrder.Rgb,
     40:       RasterDitheringMethod.FloydStein,
     41:       ColorResolutionCommandPaletteFlags.UsePalette | ColorResolutionCommandPaletteFlags.FastMatch,
     42:       colors);
     43:    command.Run(image);
     44: 
     45:    //若您不再需要使用user match table,釋放它
     46:    userMatchTable.Unuse();
     47: 
     48:    // 將圖像保存回磁盤
     49:    codecs.Save(image, destFileName, RasterImageFormat.Bmp, 8);
     50: 
     51:    // 清理
     52:    image.Dispose();
     53:    codecs.Dispose();

     

    4. 專門的分辨率方法

     

     

    說明

    AutoBinarizeCommand

    此方法自動(dòng)在位圖中使用二值分割。注意,此類只在Document/Medical工具包中可用。此方法能改進(jìn)識(shí)別的結(jié)果(包括OCR、條碼、OMR、ICR)。

    但在某些圖像的使用上有一些限制,詳情請(qǐng)點(diǎn)擊AutoBinarizeCommand查看幫助文檔。

    AutoBinaryCommand

    基于直方圖統(tǒng)計(jì)分析的兩峰值方法,可將二值分割應(yīng)用于使用了一個(gè)自動(dòng)計(jì)算閾值的圖像。注意,此類也只在Document/Medical工具包中可用。

    更多信息請(qǐng)點(diǎn)擊AutoBinaryCommand查看幫助文檔。

    ChannelMixerCommand

    使用ChannelMixerCommandFactor類,可以重新分配一個(gè)特定圖像的RGB值。用于顏色的調(diào)整和修正。

    更多信息請(qǐng)點(diǎn)擊ChannelMixerCommand查看幫助文檔。

    ConvertToColoredGrayCommand

    將圖像轉(zhuǎn)為灰度圖像,并基于此類的屬性擴(kuò)展色彩成分。注意,此類只在Document工具包中可用。

    更多信息請(qǐng)點(diǎn)擊ConvertToColoredGrayCommand查看幫助文檔。

    DesaturateCommand

    通過將每個(gè)顏色的飽和度減少至0,將圖像轉(zhuǎn)換為灰度級(jí)。這個(gè)轉(zhuǎn)換不會(huì)改變圖像的顏色辨率。

    更多信息請(qǐng)點(diǎn)擊DesaturateCommand查看幫助文檔。

    DynamicBinaryCommand

    通過使用每個(gè)像素的本地閾值,在不改變每像素位數(shù)的情況下將圖像轉(zhuǎn)為黑白圖像。這個(gè)方法可用于條碼識(shí)別的預(yù)處理,能夠改進(jìn)識(shí)別的結(jié)果。

    更多信息請(qǐng)點(diǎn)擊DynamicBinaryCommand查看幫助文檔。

    GrayscaleCommand

    將一個(gè)1位、4位、8位、16位、24位或32位的圖像轉(zhuǎn)化為8位、12位或16位的灰度圖像。在Document/Medical Imaging版本中僅支持12位和16位的灰度圖像。

    更多信息請(qǐng)點(diǎn)擊GrayscaleCommand查看幫助文檔。

    GrayScaleToDuotoneCommand

    通過將像素的原始值和新的顏色混合,或用新的顏色替換像素的原始值的方法,將灰度圖像轉(zhuǎn)換為彩色。此類在Raster Pro及以上的工具包可用。此方法的設(shè)計(jì)對(duì)象為灰度圖像,如果圖像不是灰度的,只能影響圖像中紅=綠=藍(lán)的像素或區(qū)域。

    更多信息請(qǐng)點(diǎn)擊GrayScaleToDuotoneCommand查看幫助文檔。

    GrayScaleToMultitoneCommand

    通過將像素的原始值和一種或多種新顏色混合,或用一種或多種新顏色替換像素原始值的方法,將灰度圖像轉(zhuǎn)換為彩色。此類在Raster Pro及以上的工具包可用。此方法的設(shè)計(jì)對(duì)象為灰度圖像,如果圖像不是灰度的,只能影響圖像中紅=綠=藍(lán)的像素或區(qū)域。

    更多信息請(qǐng)點(diǎn)擊GrayScaleToMultitoneCommand查看幫助文檔。

    HalfToneCommand

     

    使用特定的循環(huán)模式,將1位、4位、8位、16位、24位或32位圖像轉(zhuǎn)換為半色調(diào)圖像。半色調(diào)圖像是1位的抖動(dòng)圖像,用于黑白打印或顯示。

    更多信息請(qǐng)點(diǎn)擊HalfToneCommand查看幫助文檔。

    SampleTargetCommand

     

    通過將樣本顏色轉(zhuǎn)換為目標(biāo)顏色來校正顏色值。這個(gè)命令在Raster Pro及以上工具包中可用。

    更多信息請(qǐng)點(diǎn)擊SampleTargetCommand查看幫助文檔。

    SegmentCommand

     

    分割圖像,分割后的每段像素具有大致相同的顏色(顏色均勻)。這個(gè)命令在Raster Pro及以上工具包中可用。

    更多信息請(qǐng)點(diǎn)擊SegmentCommand查看幫助文檔。

    WindowLevelCommand

     

    將一個(gè)12位或16位的灰度圖像轉(zhuǎn)換為8位灰度或24-位RGB圖像。此類僅在Medical工具包中可用。

    更多信息請(qǐng)點(diǎn)擊WindowLevelCommand查看幫助文檔。

    5. 低級(jí)顏色分辨率的方法和類

     

    方法/類

    說明

    Convert 方法

    在指定的緩沖區(qū)中將數(shù)據(jù)轉(zhuǎn)換為規(guī)定的每像素位數(shù)和顏色順序。

    DitherLine 方法

    采用循環(huán)的方式,在輸入緩沖區(qū)中以行的方式抖動(dòng),并將其寫入一個(gè)輸出緩沖區(qū)。

    StartDithering 方法

    初始化一個(gè)圖像的緩沖抖動(dòng)。

    StopDithering 方法

    清除StartDitheringDitherLine(Byte[],Int32,Byte[],Int32)方法中的所有數(shù)據(jù)變量和緩沖區(qū)。

    6. 顏色空間的轉(zhuǎn)換

     

    Windows通常使用RGB顏色空間模型,在加載和保存文件時(shí),如有需要,LEADTOOLS會(huì)將圖像數(shù)據(jù)在RGB和其他顏色空間之間轉(zhuǎn)換。此外,LEADTOOLS還為其他顏色空間模型提供了方法。您可以使用高級(jí)ColorSeparateCommandColorMergeCommand類創(chuàng)建和合并使用多種顏色空間模型的分色,包括RGB、CMYK、CMY、HSV和HLS。您也可以使用低級(jí)RasterColorSpace類在緩沖區(qū)中將原數(shù)據(jù)在不同的顏色空間之間轉(zhuǎn)換,包括RGB、YUV、CMYK、CMY、YIQ、HSV、和 HLS。

    注意:LEADTOOLS還支持TIFF CMYK文件的加載,且不需將數(shù)據(jù)轉(zhuǎn)換為BGR。在使用了LoadCmykPlanes的圖像中,我們將每一個(gè)單獨(dú)的頁(yè)面作為CMYK平面加載。若您想要將平面保存為TIFF CMYK,可以調(diào)用SaveCmykPlanes。

    轉(zhuǎn)載來自于http://blog.gcpowertools.com.cn/post/2014/09/11/image-processing-change-data-format-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); })();