最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#生成影像金字塔的原理實(shí)例

 更新時(shí)間:2013年05月10日 10:12:54   作者:  
最近在處理一個(gè)關(guān)于影像金字塔的問(wèn)題,這個(gè)金字塔程序是用C#寫(xiě)的,需要的朋友可以參考一下

這里首先先講一下金字塔的原理:

影像金字塔就是把一個(gè)原始圖像處理成一個(gè)類似于塔狀的影像結(jié)構(gòu)(請(qǐng)不要糾結(jié)于這個(gè)概念)

在影像金字塔中最精細(xì)層的分辨率為16*16,下一層是8*8,依次為4*4,2*2,1*1

如下圖所示:

圖中網(wǎng)格頂點(diǎn)表示原始圖像16*16;紅色差號(hào)代表8*8;黑色圓圈代表4*4.

按照上述原理,那么編程實(shí)現(xiàn)不過(guò)就是隔點(diǎn)采樣,那么相鄰兩幅圖像在對(duì)應(yīng)點(diǎn)上的灰度值應(yīng)該相等,當(dāng)然我是這么想的。

C#在Drawing命名空間下的Bitmap類里面有一個(gè)處理影像金字塔的函數(shù),

復(fù)制代碼 代碼如下:

public void mipmaping()

{

    Bitmap jpgsource =new  Bitmap(@"E:\height512.jpg");

    Bitmap jpgTarget = new Bitmap(jpgsource, jpgsource.Width>>1, jpgsource.Height>>1);

    jpgTarget.Save(@"E:\height256.jpg");

  }

但是經(jīng)過(guò)我逐像素對(duì)比之后,發(fā)現(xiàn)這兩張圖上對(duì)應(yīng)點(diǎn)的像素并不相等,這說(shuō)明一個(gè)問(wèn)題:C#里的這個(gè)方法肯定不是按照逐點(diǎn)采樣,而是采用某種方法把圖像拉伸的。這似乎不太符合金字塔的原理,所以我又重新寫(xiě)了一個(gè)金字塔的函數(shù):

復(fù)制代碼 代碼如下:

public void Rescale()

 {

   Bitmap myImage1024 = new Bitmap(@"E:\height.jpg");

   int width = myImage1024.Height; ;

   int height = myImage1024.Width; ;

   Console.WriteLine(DateTime.Now.ToString());

   for (int power = 1; power < 3; power++)

    {

      Bitmap myImage = new Bitmap(width >> power, height >> power);

 

      int row = myImage.Height;

      int column = myImage.Width;

      for (int i = 0; i < row; i++)

       for (int j = 0; j < column; j++)

       {   //這里是精要,實(shí)際上就是按照采樣間距 踩點(diǎn)

           int i1024 = getcoor(i, power); int j1024 = getcoor(j, power);

           Color color1024 = myImage1024.GetPixel(i1024, j1024);

           myImage.SetPixel(i, j, color1024);

       }

           myImage.Save(string.Format(@"E:\myjpg\height{0}.jpg", width >> power));

     }

           Console.WriteLine(DateTime.Now.ToString());

}

public int getcoor(int i,int power)

{

    if (power > 1)

        return 2 * getcoor(i,power-1) +1;

    else

        return 2 * i + 1;

}

按照我寫(xiě)的這個(gè)函數(shù)來(lái)建造金字塔,此時(shí)相鄰圖層之間的對(duì)應(yīng)點(diǎn)像素值就相等了。

您可能感興趣的文章:

相關(guān)文章

  • C#如何在自定義事件里傳遞自定義數(shù)據(jù)

    C#如何在自定義事件里傳遞自定義數(shù)據(jù)

    相信很多小伙伴都知道傳值的一些方式,比如構(gòu)造方法傳值,屬性傳值等,這篇文章主要來(lái)給大家分享的另一種方式,通過(guò)自定義事件來(lái)傳值,感興趣的可以了解下
    2024-12-12
  • C#實(shí)現(xiàn)網(wǎng)頁(yè)畫(huà)圖功能

    C#實(shí)現(xiàn)網(wǎng)頁(yè)畫(huà)圖功能

    這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)網(wǎng)頁(yè)畫(huà)圖功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • C# 注冊(cè)表 操作實(shí)現(xiàn)代碼

    C# 注冊(cè)表 操作實(shí)現(xiàn)代碼

    Windows 操作系統(tǒng)的注冊(cè)表包含了很多有關(guān)計(jì)算機(jī)運(yùn)行的配置方式,打開(kāi)注冊(cè)表我們可以看到注冊(cè)表是按類似于目錄的樹(shù)結(jié)構(gòu)組織的
    2009-07-07
  • C#文件路徑操作詳細(xì)總結(jié)

    C#文件路徑操作詳細(xì)總結(jié)

    本篇文章主要是對(duì)C#中的文件路徑操作進(jìn)行了詳細(xì)的總結(jié)介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助
    2014-01-01
  • 淺談C# 序列化與反序列化幾種格式的轉(zhuǎn)換

    淺談C# 序列化與反序列化幾種格式的轉(zhuǎn)換

    下面小編就為大家?guī)?lái)一篇淺談C# 序列化與反序列化幾種格式的轉(zhuǎn)換。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-08-08
  • C#可空類型用法分析

    C#可空類型用法分析

    這篇文章主要介紹了C#可空類型用法,實(shí)例分析了C#可空類型的功能、定義及使用方法,需要的朋友可以參考下
    2015-05-05
  • C#操作session的類實(shí)例

    C#操作session的類實(shí)例

    這篇文章主要介紹了C#操作session的類,實(shí)例分析了C#針對(duì)session的添加、讀取及刪除等技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-03-03
  • C#使用AForge實(shí)現(xiàn)調(diào)用攝像頭的示例詳解

    C#使用AForge實(shí)現(xiàn)調(diào)用攝像頭的示例詳解

    AForge是一個(gè)專門(mén)為開(kāi)發(fā)者和研究者基于C#框架設(shè)計(jì)的,這個(gè)框架提供了不同的類庫(kù)和關(guān)于類庫(kù)的資源,本文為大家介紹了C#使用AForge實(shí)現(xiàn)調(diào)用攝像頭的相關(guān)教程,需要的可以了解下
    2023-11-11
  • c#項(xiàng)目將dll打包到exe中的步驟

    c#項(xiàng)目將dll打包到exe中的步驟

    這篇文章主要介紹了c#項(xiàng)目將dll打包到exe中的步驟,幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下
    2021-04-04
  • 如何搭建新的WPF項(xiàng)目框架

    如何搭建新的WPF項(xiàng)目框架

    這篇文章主要介紹了如何搭建新的WPF項(xiàng)目框架,在項(xiàng)目開(kāi)發(fā)中比較常見(jiàn)的開(kāi)發(fā)模式就是MVVM模式,使用MVVM框架開(kāi)發(fā)好處:1、框架較輕,2、學(xué)習(xí)成本低、3、適用大多數(shù)中小型項(xiàng)目,4、相對(duì)于微軟的prism框架更容易上手,需要的朋友可以參考下
    2015-07-07

最新評(píng)論

宁武县| 本溪| 梓潼县| 聂拉木县| 罗城| 资阳市| 丹巴县| 沅陵县| 乾安县| 无极县| 宣汉县| 阳高县| 鄂伦春自治旗| 太湖县| 嫩江县| 定陶县| 云龙县| 陈巴尔虎旗| 台东市| 砀山县| 永定县| 东乡族自治县| 马鞍山市| 新营市| 奇台县| 迁安市| 太仆寺旗| 明星| 齐齐哈尔市| 上虞市| 石首市| 临桂县| 凌云县| 铅山县| 芷江| 宣威市| 诏安县| 汝南县| 新巴尔虎右旗| 清涧县| 翁源县|