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

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

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

    TWaver - 專注UI技術

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

    數字圖像處理(Digital Image Processing)又稱為計算機圖像處理,它是指將圖像信號轉換成數字信號并利用計算機對其進行處理的過程。常用的圖像處理方法有圖像增強、復原、編碼、壓縮等,數字圖像處理應用領域非常廣泛。具體關于數字圖像處理的介紹可以參考書籍《岡薩雷斯 數字圖像處理》。
    TWaver作為可視化的利器,如果在展示網元的時候,融入圖像處理技術,將會對網元圖標的顯示增加了靈活性,是一件非常有意思的事情。那么我們不妨來試試,如何將圖像處理技術融入進來。
    首先我們重寫一個網元CNode,定制用來處理圖像的特殊網元。

    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{
    //此處處理圖像,并繪制圖像
    }
    }

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

    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.圖像灰度化
    灰度化的計算公式如下: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.圖像旋轉

    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;
    }

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


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


    網站導航:
    博客園   IT新聞   Chat2DB   C++博客   博問  
     
    主站蜘蛛池模板: 亚洲欧洲日产国码二区首页| 香蕉视频亚洲一级| 国产精品一区二区三区免费 | 亚洲精品偷拍无码不卡av| 亚洲视频在线观看视频| a级毛片高清免费视频就| 亚洲人成无码久久电影网站| 精品亚洲aⅴ在线观看| 日本一卡精品视频免费| 精品少妇人妻AV免费久久洗澡| 在线观看亚洲AV每日更新无码| 最近的2019免费中文字幕| 中文国产成人精品久久亚洲精品AⅤ无码精品 | 亚洲片一区二区三区| xxxxxx日本处大片免费看| 亚洲日韩欧洲无码av夜夜摸| 99麻豆久久久国产精品免费 | 亚洲精品在线免费观看视频| 亚洲国产精品张柏芝在线观看| www.黄色免费网站| 亚洲精品无码永久在线观看男男| 精品国产免费观看久久久| 高清免费久久午夜精品| 成年女人视频网站免费m| 亚洲狠狠婷婷综合久久蜜芽| 国产精品嫩草影院免费| 好湿好大好紧好爽免费视频| 亚洲精品自产拍在线观看动漫| 在线看免费观看AV深夜影院| 亚洲午夜无码毛片av久久京东热| 免费一级毛片在播放视频| 亚洲人成人77777网站不卡| 国产白丝无码免费视频| 亚洲国产精品一区二区第一页免 | 亚洲欧洲日韩不卡| 久久天天躁狠狠躁夜夜免费观看 | 国产精品永久免费视频| 91精品国产亚洲爽啪在线影院| 天天摸夜夜摸成人免费视频 | 国产情侣久久久久aⅴ免费 | 亚洲AV综合色区无码另类小说|