`

数字图像处理技术在TWaver可视化中的应用

阅读更多

数字图像处理(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

分享到:
评论

相关推荐

    10个TWaver网页3D可视化精彩案例.docx

    ### TWaver网页3D可视化...综上所述,TWaver通过其强大的3D可视化技术,在多个领域展现出了广泛的应用前景。无论是科学研究、工业制造还是日常管理,TWaver都能够提供高效的解决方案,极大地提升了工作效率和用户体验。

    twaver-flex中文用户手册

    《Twaver Flex中文用户手册》是一本详尽的指南,专为使用Twaver Flex图形库在Flex平台上构建可视化应用的开发者设计。Twaver是一个强大的工具,用于创建数据可视化、网络图表、流程图以及复杂的交互式应用程序。这个...

    twaver web实例源码

    【描述】"twaver web结合extjs源码学习资料"意味着这个压缩包包含了一组实际项目的源代码,用于展示如何在Web环境中整合Twaver和ExtJS。通过学习这些源码,开发者可以深入了解这两个库如何协同工作,创建交互式和...

    Twaver Flex技术

    在IT领域,Twaver Flex技术是一种用于构建数据可视化应用的专业工具,尤其适用于创建复杂的网络拓扑图、流程图和业务流程模型。它提供了强大的图形用户界面(GUI)组件和API,允许开发者以Flex语言编写交互式、动态...

    TWaver的3d图形组件库,小demo

    TWaver是一个专业级的图表和数据可视化工具,它提供了HTML5版本的3D图形组件,允许开发者在Web应用中创建交互式的三维图形。 【描述解读】 描述中提到的“TWaver HTML5 3D 制作的demo提供一个3d图形展示的基本代码...

    twaver flex 中文用户使用手册

    Twaver Flex是一款基于Adobe Flex技术的可视化开发框架,它提供了丰富的图表类型、自定义图形以及交互功能,广泛应用于数据可视化、网络拓扑图、流程图等领域。 本手册首先会介绍Twaver Flex的基本概念,包括其设计...

    twaver 官方文档

    3. **TWaver Whitebook.pdf**:白皮书通常是对某一技术或产品的深入解析,可能包含了TWaver的设计理念、核心技术、实际应用场景以及与其他可视化工具的比较。它可能详述了TWaver如何处理大数据、实时更新、跨平台...

    twaver.js使用示例

    可能是用于展示如何在twaver.js中处理警报或事件管理的实例。通过这个文件,我们可以学习到如何利用twaver.js来设计和实现报警系统的图形界面,包括节点的动态更新、状态显示、事件触发等。 **综合知识点:** 1. *...

    twaver-html5-5.9.0-api_html5_-5.9.0-api_twaver_

    通过这些文件,开发者可以学习如何在HTML5环境中集成Twaver,创建交互式的可视化界面,包括添加图形元素、处理用户交互、响应事件、定制样式和布局等。同时,了解API文档可以帮助开发者掌握如何利用Twaver提供的类和...

    TWaver-java-4.1试用版jar包

    TWaver提供了一个全面的解决方案,帮助开发者创建复杂的图表、仪表盘以及交互式的数据可视化应用。在版本4.1中,我们预计会看到一些性能优化、新功能的添加以及对现有特性的改进。 【描述】"TWaver-java-4.1试用版...

    TWaver文档

    - TWaver在处理大量数据时表现出了极高的效率,例如在**Java**版本中可以在1秒内呈现10,000个节点和连线;在**Flex**版本中也可以在1.5秒内完成同样的任务。 - 这样的性能优势使得TWaver非常适合于处理大规模的数据...

    TWaver HTML5 开发指南代码

    TWaver是一个强大的可视化框架,其核心特性是支持复杂的图形和网络图表的绘制,尤其适合在Web上创建交互式的机房、网络设备、服务器架构等展示。 一、TWaver概述 TWaver是一个高效且灵活的JavaScript库,专门用于...

    twaver-flex-3.6.5 官方demo

    Twaver是一款强大的数据可视化和建模工具,广泛应用于网络、系统和业务流程的图形化表示。在3.6.5这个版本中,官方提供了Demo来展示其功能和特性。 【描述】"twaver-flex-3.6.5 官方demo" 意味着用户可以通过这个...

    TWaver HTML5 Developer Guide

    TWaver HTML5 Developer Guide是关于TWaver HTML5组件套件的...通过这份指南,开发者能够深入理解TWaver HTML5的架构、组件使用方法和开发最佳实践,并能够高效地开发出功能强大且界面友好的网络管理和数据可视化应用。

    TWaver-java-4.1最新 官网试用版jar包及Demo

    用户可以通过试用版的jar包进行初步体验,同时附带的Demo则能够帮助开发者更好地理解和学习如何在实际项目中运用TWaver。 【标签】"TWaver":这是此资源的关键标识,代表了TWaver库。TWaver是一个强大的图形绘制和...

    twaver-java-3.7

    总的来说,Twaver Java 3.7版本为Java开发者提供了一套强大而灵活的数据可视化工具,无论是在企业应用还是科研项目中,都能发挥其独特价值。通过深入学习和实践,开发者可以构建出极具吸引力的数据可视化应用,以...

    twaver 教程

    Twaver是一款强大的图形化开发工具,专为创建复杂的网络拓扑图、流程图、组织结构图等而设计,广泛应用于电信系统、网络安全和物联网解决方案中。本教程将深入讲解如何利用Twaver进行高效的数据可视化。 首先,我们...

    TWaver_Flex中文帮助文档

    TWaver Flex是基于Flex/Flash平台的一个网络可视化组件,用于构建动态的网络图形界面。文档版本为2.0,发布于2011年8月,由ServaSoftware提供。 ### TWaver Flex组成和功能 文档描述了TWaver Flex的核心功能和组成...

    twaver-java-4.1

    8. `lib`:库文件夹,包含了TWaver的核心库和其他依赖的第三方库,这些库文件是构建和运行TWaver应用所必需的。 通过这个开发包,开发者可以充分利用TWaver提供的各种组件和功能,创建出极具吸引力的数据可视化应用...

Global site tag (gtag.js) - Google Analytics