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

news/2024/7/21 7:12:50 标签: 图像处理, 可视化, TWaver 3D, HTML5, 计算机
数字图像处理(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


http://www.niftyadmin.cn/n/1765741.html

相关文章

在Linux下怎么确定哪个网卡对应哪个接口?

国内私募机构九鼎控股打造APP&#xff0c;来就送 20元现金领取地址&#xff1a;http://jdb.jiudingcapital.com/phone.html 内部邀请码&#xff1a;C8E245J &#xff08;不写邀请码&#xff0c;没有现金送&#xff09;国内私募机构九鼎控股打造&#xff0c;九鼎投资是在全国股份…

技术回溯,点阵字库为3D中文字符展示提供新思路

早在遥远的DOS时代&#xff0c;点阵汉字库为计算机处理汉字起到了关键作用。当时的显示器在图形模式下的分辨率只有640x480甚至320x200&#xff0c;显示汉字直接使用点阵字库在屏幕上打点就可以了。如今的电脑屏幕甚至手机、电视屏幕都已经进入视网膜高清屏时代&#xff0c;字体…

用拓扑图呈现多层级关系图(二)

上一篇里我们用TWaver制作了一个公司内部的流程图&#xff0c;这一弹&#xff0c;我们来研究如何呈现出公司内部门和员工间的关系网图。先来看看效果&#xff1a; 例子中我们展示的是各部门员工之间的复杂关系图。在公司内部&#xff0c;不仅部门内部员工之间发生着关系往来&…

用拓扑图实现多层级关系图(三)可折叠流程图

说到TWaver的流程图却是层出不穷&#xff0c;千姿百态。2D的&#xff0c;3D的&#xff0c;静态的&#xff0c;动态的。这次要给大家呈现的是一款全矢量的&#xff0c;非常清新优美的流程图。先给大家看看效果&#xff1a; 看到这样的图&#xff0c;是不是觉得不就是用了几张贴图…

HTML5实现的矢量卡片式组织结构图

组织结构图&#xff08;Organization chart&#xff09;是企业的流程运转、部门设置及职能规划等最基本的结构依据。和客户交流时&#xff0c;不少人都提到需要一个灵活的工具来绘制呈现企业的组织架构&#xff0c;今天就给大家带来一款用TWaver实现的组织结构图&#xff0c;提…

设计模式:命令模式(Command)

定 义&#xff1a;将一个请求封装为一个对象&#xff0c;从而使你可用不同的请求对客户进行参数化&#xff1b;对请求排列或者记录请求日志&#xff0c;以及支持可撤销的操作。 结构图&#xff1a; Command类&#xff1a; abstract class Command{protected Receiver receive…

HTML5,不只是看上去很美 (第一弹:彩虹爆炸图)

25年过去了&#xff0c;Brooks博士著名的“没有银弹”的论断依旧没有被打破。HTML5也是一样。但这并不妨碍HTML5是一个越来越有威力的“炸弹”&#xff1a;发展迅速、势不可挡。随着HTML5技术的普及&#xff0c;用HTML5做可视化呈现的项目越来越多了。HTML5的优势明显&#xff…

iOS程序启动过程笔记

CHENYILONG Blog笔记 一、iOS程序的完整启动过程&#xff08;有storyboard&#xff09;1.先执行main函数&#xff0c;main内部会调用UIApplicationMain函数2.UIApplicationMain函数里面做了什么事情&#xff1a;1> 创建UIApplication对象2> 创建UIApplication的delegate对…