A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from http://www.arrayfire.org/docs/image_processing_2pyramids_8cpp-example.htm below:

ArrayFire: image_processing/pyramids.cpp

#include <stdio.h>

#include <cstdlib>

static const float pyramid_kernel[] = {1, 4, 6, 4, 1, 4, 16, 24, 16,

4, 6, 24, 36, 24, 6, 4, 16, 24,

16, 4, 1, 4, 6, 4, 1};

array

pyramid(

const array

& img,

const int

level,

const bool

sampling) {

array

kernel(5, 5, pyramid_kernel);

kernel = kernel / 256.f;

if (sampling) {

for (int i = 0; i < level; i++) {

for

(

int

j = 0; j < pyr.

dims

(2); j++)

pyr(span, span, j) = convolve(pyr(span, span, j), kernel);

pyr = pyr(

seq

(0, pyr.

dims

(0) - 1, 2),

seq

(0, pyr.

dims

(1) - 1, 2),

span);

}

} else {

for (int i = 0; i < level; i++) {

tmp(

seq

(0, 2 * pyr.

dims

(0) - 1, 2),

seq

(0, 2 * pyr.

dims

(1) - 1, 2),

span) = pyr;

for

(

int

j = 0; j < pyr.

dims

(2); j++)

tmp(span, span, j) =

convolve

(tmp(span, span, j), kernel * 4.f);

pyr = tmp;

}

}

return pyr;

}

void pyramids_demo() {

af::Window

wnd_rgb(

"Image Pyramids - RGB Images"

);

af::Window

wnd_gray(

"Image Pyramids - Grayscale Images"

);

wnd_rgb.setPos(25, 25);

wnd_gray.setPos(150, 150);

loadImage

(ASSETS_DIR

"/examples/images/atlantis.png"

,

true

) /

255.f;

array

downc1 = pyramid(img_rgb, 1,

true

);

array

downc2 = pyramid(img_rgb, 2,

true

);

array

upc1 = pyramid(img_rgb, 1,

false

);

array

upc2 = pyramid(img_rgb, 2,

false

);

array

downg1 = pyramid(img_gray, 1,

true

);

array

downg2 = pyramid(img_gray, 2,

true

);

array

upg1 = pyramid(img_gray, 1,

false

);

array

upg2 = pyramid(img_gray, 2,

false

);

while (!wnd_rgb.close() && !wnd_gray.close()) {

wnd_rgb.grid(2, 3);

wnd_rgb(0, 0).image(img_rgb, "color image");

wnd_rgb(1, 0).image(downc1, "downsample 1 level");

wnd_rgb(0, 1).image(downc2, "downsample 2 levels");

wnd_rgb(1, 1).image(upc1, "upsample 1 level");

wnd_rgb(0, 2).image(upc2, "upsample 2 level");

wnd_rgb.show();

wnd_gray.grid(2, 3);

wnd_gray(0, 0).image(img_gray, "grayscale image");

wnd_gray(1, 0).image(downg1, "downsample 1 level");

wnd_gray(0, 1).image(downg2, "downsample 2 levels");

wnd_gray(1, 1).image(upg1, "upsample 1 level");

wnd_gray(0, 2).image(upg2, "upsample 2 level");

wnd_gray.show();

}

}

int main(int argc, char** argv) {

int device = argc > 1 ? atoi(argv[1]) : 0;

try {

printf("** ArrayFire Image Pyramids Demo **\n\n");

pyramids_demo();

fprintf(stderr,

"%s\n"

, e.

what

());

throw;

}

return 0;

}

Window object to render af::arrays.

A multi dimensional data container.

dim4 dims() const

Get dimensions of the array.

array copy() const

Perform deep copy of the array.

An ArrayFire exception class.

virtual const char * what() const

Returns an error message for the exception in a string format.

seq is used to create sequences for indexing af::array

array constant(T val, const dim4 &dims, const dtype ty=(af_dtype) dtype_traits< T >::ctype)

C++ Interface to generate an array with elements set to a specified value.

AFAPI void setDevice(const int device)

Sets the current device.

AFAPI array colorSpace(const array &image, const CSpace to, const CSpace from)

C++ Interface wrapper for colorspace conversion.

AFAPI array loadImage(const char *filename, const bool is_color=false)

C++ Interface for loading an image.

AFAPI array convolve(const array &signal, const array &filter, const convMode mode=AF_CONV_DEFAULT, const convDomain domain=AF_CONV_AUTO)

C++ Interface for convolution any(one through three) dimensional signals.


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4