玩转 ArrayFire:09 Forge 下的可视化


前言

在《玩转 ArrayFire:08 数组和矩阵操作》中,我们已经了解到 ArrayFire 的统一后端,在这一篇中,我们继续学习 ArrayFire 在 Forge 下的可视化操作。


一、介绍

     ArrayFire 作为一个库,旨在为高性能、并行和 GPU 计算提供一个健壮且易于使用的平台。 Forge ——一个 OpenGL 可视化库——的目标也是提供同样健壮的可视化,并且能使 Arrayfire 数据结构和 OpenGL 互操作。
     Arrayfire 提供了包装函数,它被设计成一个简单的接口来可视化 af::array。这些函数执行各种互操作任务。其中一个特别的例子是,我们可以直接从 GPU-dataGPU-framebuffer 中提取数据绘图,而不是浪费时间从 GPU 复制和重新格式化数据到主机再返回给 GPU !这节省了 2 份内存拷贝。
    可视化可以用鼠标操作。可以采取以下措施:

       - 缩放(Alt +鼠标左键点击,上下移动)
       - 平移(左键点击并拖动)
       - 旋转(鼠标右键-跟踪球旋转)

    现在,让我们来看看:我们可以用 Forge 展示什么样的视觉效果,以及 Arrayfire 是如何在两个库之间处理数据的。

二、窗口设置

    在调用 Forge 函数之前,我们需要建立相关的 “canvas” 类。Forge 函数被添加到 af::Window 类。首先让我们创建一个窗口:

	const static int width = 512, height = 512;
	af::Window window(width, height, "2D plot example title");
	do{
   
	//drawing functions here
	} while( !window.close() );

    ArrayFire 还添加了一个绘图循环,所以可以使用 Forge 的绘图函数来绘制窗口。

三、绘图函数

    下面,介绍几种常见的绘图函数:

    1. Image

     af::Window::image() 函数的作用是绘制灰度或彩色图像。要绘制灰度图像,应该将 2D 数组传递到函数中。让我们看一个静态噪声的例子:

	array img = constant(0, width, height); //make a black image
	array random = randu(width, height);      //make random [0,1] distribution
	img(random > 0.5) = 1
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值