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

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

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

    TWaver - 專(zhuān)注UI技術(shù)

    http://twaver.servasoft.com/
    posts - 171, comments - 191, trackbacks - 0, articles - 2
      BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    數(shù)字圖像處理(Digital Image Processing)又稱(chēng)為計(jì)算機(jī)圖像處理,它是指將圖像信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)并利用計(jì)算機(jī)對(duì)其進(jìn)行處理的過(guò)程。常用的圖像處理方法有圖像增強(qiáng)、復(fù)原、編碼、壓縮等,數(shù)字圖像處理應(yīng)用領(lǐng)域非常廣泛。具體關(guān)于數(shù)字圖像處理的介紹可以參考書(shū)籍《岡薩雷斯 數(shù)字圖像處理》。
    TWaver作為可視化的利器,如果在展示網(wǎng)元的時(shí)候,融入圖像處理技術(shù),將會(huì)對(duì)網(wǎng)元圖標(biāo)的顯示增加了靈活性,是一件非常有意思的事情。那么我們不妨來(lái)試試,如何將圖像處理技術(shù)融入進(jìn)來(lái)。
    首先我們重寫(xiě)一個(gè)網(wǎng)元CNode,定制用來(lái)處理圖像的特殊網(wǎng)元。

    public class CNode extends Node{
    public function CNode(id:Object = null){
    super(id);
    }
    override public function get elementUIClass():Class{
    return CNodeUI;
    }
    }


    public class CNodeUI extends NodeUI{
    private var currentImageAsset:IImageAsset = null;
    private var currentComponent:DisplayObject = null;
    public function CNodeUI(network:Network, node:Node){
    super(network,node);
    }

    override protected function drawDefaultContent(graphics:Graphics):void{
    //此處處理圖像,并繪制圖像
    }
    }

    這樣一個(gè)在TWaver中處理圖像的框架就搭建完成了,只要在上面的drawDefaultContent方法中對(duì)圖像處理并返回繪制,即可實(shí)現(xiàn)圖像的處理。
    那么我們先來(lái)看看圖像的常見(jiàn)處理方法,在此說(shuō)明,選擇一張美女圖片作為圖像處理的素材。
    1.圖像二值化:將圖像視為二維數(shù)組,遍歷二維數(shù)組,并處理單個(gè)像素的值。實(shí)現(xiàn)灰度化,需要定義一個(gè)顏色(或灰度值)閾值,將圖像中灰度值按照閾值分開(kāi)。

    private function doBinary(bd:BitmapData):BitmapData {
    var rect:Rectangle = bd.rect;
    for(var i:int=rect.x; i<rect.x+rect.width;i++) {
    for(var j:int=rect.y; j<rect.y+rect.height;j++) {
    var color:uint = bd.getPixel(i,j);
    if(color>0x605555){
    bd.setPixel(i,j,0xffffff);
    }else{
    bd.setPixel(i,j,0x00000);
    }
    }
    }
    return bd;
    }

    效果如下:
    binaryzation
    2.圖像灰度化
    灰度化的計(jì)算公式如下:Gary(i,j)=0.299*R(i,j)+0.587*G(i,j)+0.114*B(i,j);

    private function doGray(bd:BitmapData):BitmapData {
    var rect:Rectangle = bd.rect;
    for(var i:int=rect.x; i for(var j:int=rect.y; j var color = bd.getPixel(i,j);
    var rgb:Array = ColorUtils.CombinationToRGB(color);
    var gray = (int)(rgb[0] * 0.299 + rgb[1] * 0.587 + rgb[2] * 0.114);
    bd.setPixel(i,j,ColorUtils.RGBToCombination([gray,gray,gray]));
    }
    }
    return bd;
    }

    grayImage
    3.圖像旋轉(zhuǎn)

    private function doRotate(bd:BitmapData):BitmapData{
    var rect:Rectangle = bd.rect;
    var m:Matrix = new Matrix();
    m.rotate(Math.PI/3);
    m.translate(rect.height,0);
    var bmp:BitmapData = new BitmapData(bd.height, bd.width,false);
    bmp.draw(bd,m);
    return bmp;
    }

    圖像旋轉(zhuǎn)60度
    rotate01
    圖像先二值化,再旋轉(zhuǎn)60度
    rotate02
    圖像處理的算法很多,在這先拋磚引玉,后面可以支持更新比較復(fù)雜的圖像處理結(jié)果。
    有人會(huì)問(wèn),這樣處理有什么意義呢,具有什么實(shí)際應(yīng)用價(jià)值嗎?
    答案是肯定的,任何一種技術(shù),只要用對(duì)了地方,就會(huì)體現(xiàn)它的價(jià)值,那么圖像處理技術(shù)與TWaver相結(jié)合能擦出什么火花呢?
    看下面的demo。
    在網(wǎng)元發(fā)生告警的時(shí)候,TWaver傳統(tǒng)方法是通過(guò)混合網(wǎng)元圖片顏色和告警顏色,得到效果如下:
    alarmColor
    那么使用圖像處理技術(shù)可以得到這樣的渲染結(jié)果:
    innerColor
    怎么樣,效果還不錯(cuò)吧,需要抓緊聯(lián)系我們吧,郵件:jeff.fu@servasoft.com


    只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 成年女人免费v片| 一二三四视频在线观看中文版免费| 国产精品免费一级在线观看| 亚洲AV无码久久久久网站蜜桃| 亚洲一区二区三区免费视频| 亚洲毛片免费视频| 日韩不卡免费视频| 黄页免费的网站勿入免费直接进入| 亚洲欧洲精品一区二区三区| 麻花传媒剧在线mv免费观看| 亚洲熟妇色自偷自拍另类| 美女网站免费福利视频| 亚洲a∨国产av综合av下载| 国产又长又粗又爽免费视频| 理论片在线观看免费| 久久久久亚洲爆乳少妇无| 免费黄色电影在线观看| 亚洲中文无码线在线观看| 免费看香港一级毛片| 一个人看的在线免费视频| 亚洲精品你懂的在线观看| 亚洲免费中文字幕| 亚洲欧美国产国产综合一区| 亚洲国产91精品无码专区| 国产偷伦视频免费观看| 亚洲AV一二三区成人影片| 国产成人一区二区三区免费视频 | 中国一级特黄高清免费的大片中国一级黄色片 | 日韩精品亚洲aⅴ在线影院| 久久爰www免费人成| 亚洲sss综合天堂久久久| 四虎永久在线精品免费观看地址| 久久一区二区免费播放| 亚洲综合综合在线| 国产成人免费网站在线观看| 久久不见久久见免费影院www日本| 亚洲av片劲爆在线观看| 夜夜嘿视频免费看| 日本免费A级毛一片| 亚洲一本到无码av中文字幕| 中文字幕精品无码亚洲字|