ArrayFire: image_processing/confidence_connected_components.cpp (original) (raw)

#include

#include

#include

#include

using namespace af;

float min = af::min(in);

float max = af::max(in);

return (in - min) / (max - min);

}

void markCrossHair(array& in, const unsigned x, const unsigned y,

const float val) {

const int draw_len = 5;

for (int i = -1; i < 2; i++) {

in(x + i, seq(y - draw_len, y + draw_len), 0) = val;

in(x + i, seq(y - draw_len, y + draw_len), 1) = 0.f;

in(x + i, seq(y - draw_len, y + draw_len), 2) = 0.f;

in(seq(x - draw_len, x + draw_len), y + i, 0) = val;

in(seq(x - draw_len, x + draw_len), y + i, 1) = 0.f;

in(seq(x - draw_len, x + draw_len), y + i, 2) = 0.f;

}

}

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

try {

unsigned radius = 3;

unsigned multiplier = 2;

int iter = 3;

loadImage(ASSETS_DIR "/examples/images/depression.jpg", false);

array normIn = normalize01(input);

unsigned seedx = 162;

unsigned seedy = 126;

array blob = confidenceCC(input, 1, &seedx, &seedy, radius, multiplier,

iter, 255);

markCrossHair(colorIn, seedx, seedy, 1);

markCrossHair(colorOut, seedx, seedy, 255);

af::Window wnd("Confidence Connected Components Demo");

while (!wnd.close()) {

wnd.grid(1, 2);

wnd(0, 0).image(colorIn, "Input Brain Scan");

wnd(0, 1).image(colorOut, "Region connected to Seed(162, 126)");

wnd.show();

}

fprintf(stderr, "%s\n", e.what());

throw;

}

return 0;

}

Window object to render af::arrays.

A multi dimensional data container.

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

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

C++ Interface wrapper for colorspace conversion.

AFAPI array confidenceCC(const array &in, const array &seeds, const unsigned radius, const unsigned multiplier, const int iter, const double segmentedValue)

C++ Interface for confidence connected components.

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

C++ Interface for loading an image.