<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Visual C++ 2005圖像編程之預(yù)備知識

      圖像處理過程中,有很多需要我們掌握或者注意的方方面面。這里我先簡單介紹一些比較基礎(chǔ)的、重要的知識。

      1、圖像處理系統(tǒng)框架

      一個基本的圖像處理系統(tǒng)包含有4個子系統(tǒng):圖像輸入系統(tǒng)、圖像輸出系統(tǒng)(顯示)、圖像存儲系統(tǒng)、圖像處理與分析系統(tǒng)。


    圖 1-1

      2、圖像的構(gòu)成

      圖像給我們的第一直觀感覺就是一些五顏六色的點,在計算機語言中,這些點被稱為像素。正是這些像素匯集在一起就構(gòu)成了一副副美麗的圖片。那么如何把這種直觀的認(rèn)識和我們的計算機程序結(jié)合起來呢?如何在計算機中表示這些五顏六色的點?理解了這2個問題對我們后面的圖像處理有很多的幫助。圖像可以是矩陣,在計算機程序語言中,最好的表示方法就是數(shù)組,二維數(shù)組。把圖像每個像素點保存在數(shù)組的一個元素中。這一過程也稱為數(shù)字圖像采樣:把二維坐標(biāo)空間表示的圖像數(shù)字化。

      3、圖像處理的速度

      在圖像處理的過程中,有大量的數(shù)學(xué)計算和循環(huán)。如何處理好這些過程對圖像處理的速度有非常重要的影響。處理函數(shù)內(nèi)部變量的定義也需要注意:比如對常用的變量,可以在函數(shù)內(nèi)部用靜態(tài)或者全局變量保存,加快速度。但是,在大型的項目中,過多的靜態(tài)、局部變量會占用更多的內(nèi)存,同時影響程序的啟動速度。所以這需要我們根據(jù)實際的情況進(jìn)行權(quán)衡。 數(shù)學(xué)計算時有浮點和整數(shù),浮點運算非常精確;但是計算速度稍慢,整數(shù)運算不會有誤差,計算速度快。所以在圖像處理過程中,盡量使用整數(shù)運算,浮點運算會因為計算機的處理器表示方式有一定的誤差。

      在遍歷圖像的像素點時,會有大量的循環(huán)過程,在循環(huán)過程中,盡量減少可能的代碼如變量定義,多用處理器支持更好的加法和移位運算,減少乘法運算。甚至,如果可能對一些常用函數(shù)可以采用匯編語言。

      4、貼圖的效率

      很多初學(xué)圖像編程的朋友幾乎都遇到貼圖閃爍的問題。我們最常用的方法就是雙緩沖貼圖。基本的代碼片斷:

    //pDC是最后圖像顯示的目標(biāo)窗口DC,pMemDC是內(nèi)存中的臨時DC

    CDC *pMemDC = CreateCompatibleDC(pDC);

    CBitmap Bitmap;

    //Width、Height是圖像最后顯示的目標(biāo)窗口高度和寬度

    Bitmap. CreateCompatibleBitmap(pDC, Width, Height);

    pMemDC->SelectObject(&Bitmap);

      然后我們就可以在pMemDC上進(jìn)行任何需要的畫圖操作,畫完后再貼到目標(biāo)窗口DC

    pDC->BitBlt(0, 0, Width, Height, pMemDC, 0, 0, SRCCOPY);

    pMemDC->DeleteDC();

      在有的時候我們需要進(jìn)行大量的貼圖,貼很多不同的小的圖片時,需要注意SelectObject函數(shù)的調(diào)用,頻繁的調(diào)用這個函數(shù)選入不同的各種畫圖屬性會大大降低程序的速度。

      避免一些不必要的重畫,在完成自己的畫圖后,可以禁止系統(tǒng)的畫圖過程來避免閃爍:在WM_ERASEBKGND消息函數(shù)里直接返回TRUE,不再繼續(xù)調(diào)用基類的消息處理函數(shù)。需要重畫時進(jìn)行精確的更新,而不是盲目的將所有的內(nèi)容都重畫,如調(diào)用InvalidateRect來代替過渡的Invalidate調(diào)用過程。因為計算Rect的時間比重畫那些不需要重畫的內(nèi)容所消耗的時間要少得多。

      在圖像處理過程中,還有許多方面需要我們特別注意,我會在后面的部分做進(jìn)一步的討論。

      5、顏色空間(Color Space)及轉(zhuǎn)換

      5.1、顏色空間介紹

      顏色空間就是把我們表示顏色的各個組件映射到笛卡兒的二維或者三維坐標(biāo)系中。簡單一點就是我們?nèi)绾斡脦讉€顏色組合來表示自然界所有的顏色。

      (1)、RGB顏色空間

      用R(Red)、G(Green)、B(Blue)三種顏色組合可以表示自然界所有的顏色,也稱為加色系統(tǒng)。因為我們把RGB范圍類的值相加可以產(chǎn)生任何的顏色。假設(shè)圖像沒有其他顏色都是黑色(RGB=0),然后我們往圖片上加上不同的RGB值顏色,就可以產(chǎn)生不同的色彩,下面的圖1-2表示了RGB系統(tǒng)是如何相加混合顏色的。


    圖 1-2 圖1-3

      (2)、CMY(CMYK)顏色空間

      CMY是用RGB的補色來表示色彩的。所謂的補色就是用白色減去RGB后得到的顏色。白色減去綠色是洋紅(Magenta),減去紅色是青色(Cyan),減去藍(lán)色是黃色(Yellow)。

      上面的圖1-3演示了CMY是如何相減混合顏色的。

      CMYK是CMY的擴展,消除了CMY表示法中存在的理論和實際的差別。因為單獨使用CMY無法合成真正的黑色,所以為了避免這個問題,CMYK就直接在CMY的基礎(chǔ)添加了黑色的表示部分。

      (2)、HSV顏色空間

      色彩有三個屬性:色相、彩度與明度。

      1) 色相(Hue)又稱為色調(diào),是指色彩的相貌,或是區(qū)別色彩的名稱或色彩的種類,

      而色相與色彩明暗無關(guān)。

      2) 彩度(Chroma)指色彩的強弱,也稱色彩的飽和度(Saturation),色彩純與不純的分別。

      3) 明度(Value)是指色彩的明暗程度, 光度的高低, 要看其接近白色或灰色的程度而定,越接近白色明度越高,越接近灰色或黑色,其明度越低。

      HSV顏色空間就是用這三個屬性描述不同顏色的。當(dāng)Saturation為0時,Hue不存在。圖像為灰度圖。明度的Value也可以用亮度表示(Brightness)。Hue為0時顏色是紅色。

      (4) HLS顏色空間

      HLS的基本意義和HSV相同,顏色的范圍值一樣:Hue(0-360),L(0-1),S(0-1),V(0-1)。

      只是在表示相同顏色時值不同了,Hue為0顏色是藍(lán)色。增加L的值相當(dāng)于向Hue添加白色的比例,減少就是增加黑色的比例。

      在現(xiàn)實生活中,還有其他很多的顏色空間如YIQ、YUV、YCrCb。我們這里不全部介紹,有興趣的朋友可參考相關(guān)的書籍。

      5.2 不同顏色空間的轉(zhuǎn)換

      圖像處理中進(jìn)行圖像調(diào)整時,采用不同的顏色空間能更好的幫助我們實現(xiàn)對不同的顏色值進(jìn)行調(diào)整。比如調(diào)整色調(diào)和飽和度時就把圖像重RGB轉(zhuǎn)為HSV調(diào)整HS的值,然后轉(zhuǎn)回到RGB系統(tǒng)中。具體的轉(zhuǎn)換方法在后續(xù)的圖像處理庫中,我會提供一個完整的類。

    posted on 2008-04-26 14:40 Jarod.cn.LuLuLife 閱讀(148) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    導(dǎo)航

    統(tǒng)計

    公告

    我的知識Blog!

    常用鏈接

    留言簿(3)

    隨筆檔案

    文章檔案

    Image

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 最近免费字幕中文大全视频| 羞羞视频免费网站日本| 18禁美女裸体免费网站| 亚洲成a人片在线观看无码| 成人免费777777被爆出| 亚洲精品乱码久久久久久蜜桃不卡| 免费三级毛片电影片| 亚洲码一区二区三区| AA免费观看的1000部电影| 亚洲午夜视频在线观看| 91青青青国产在观免费影视| 亚洲的天堂av无码| 啦啦啦在线免费视频| 真人无码作爱免费视频| 国产精品亚洲不卡一区二区三区| 久久丫精品国产亚洲av| 无码人妻一区二区三区免费n鬼沢| 国产99视频精品免费观看7| 国产亚洲精品成人AA片| 免费日本黄色网址| a毛片视频免费观看影院| 亚洲AV第一页国产精品| 国产一卡二卡3卡四卡免费| 国产成人精品日本亚洲语音| 国产综合精品久久亚洲| 免费不卡在线观看AV| 久久精品国产亚洲AV蜜臀色欲| 久久免费国产精品一区二区| 亚洲毛片免费观看| 成年私人影院免费视频网站| 男人j进女人p免费视频| 亚洲国产一区二区a毛片| 成人免费无毒在线观看网站 | 亚洲第一网站男人都懂| 一级做受视频免费是看美女| 久久亚洲私人国产精品vA| 在线jlzzjlzz免费播放| 中文在线观看免费网站| 亚洲国产熟亚洲女视频| 中文字幕亚洲图片| 好吊妞在线成人免费|