A high-performance general-purpose compute library
* Copyright (c) 2014, ArrayFire
* All rights reserved.
* This file is distributed under 3-clause BSD license.
* The complete license agreement can be obtained at:
* http://arrayfire.com/licenses/BSD-3-Clause
#include <arrayfire.h>
#include <math.h>
#include <cstdio>
using namespace af;
int main(int, char**) {
try {
// Initialize the kernel array just once
af::Window myWindow(512, 512, "Histogram example using ArrayFire");
af::Window imgWnd(480, 640, "Input Image");
array img = loadImage(ASSETS_DIR "/examples/images/arrow.jpg", false);
array hist_out = histogram(img, 256, 0, 255);
myWindow.setAxesTitles("Bins", "Frequency");
myWindow.setPos(480, 0);
while (!myWindow.close() && !imgWnd.close()) {
myWindow.hist(hist_out, 0, 255);
catch (af::exception& e) {
fprintf(stderr, "%s\n", e.what());
return 0;
Window object to render af::arrays.
Definition: graphics.h:37
A multi dimensional data container.
Definition: array.h:37
const array as(dtype type) const
Casts the array into another data type.
An ArrayFire exception class.
Definition: exception.h:22
virtual const char * what() const
Returns an error message for the exception in a string format.
Definition: exception.h:46
@ u8
8-bit unsigned integral values
Definition: defines.h:218
AFAPI void info()
void image(const array &in, const char *title=NULL)
Renders the input array as an image to the window.
void hist(const array &X, const double minval, const double maxval, const char *const title=NULL)
Renders the input array as a histogram to the window.
bool close()
Check if window is marked for close.
void setPos(const unsigned x, const unsigned y)
Set the start position where the window will appear.
void setAxesTitles(const char *const xtitle="X-Axis", const char *const ytitle="Y-Axis", const char *const ztitle=NULL)
Setup the axes titles for a plot/surface/vector field.
Definition: algorithm.h:15