本文整理汇总了C++中af::regions方法的典型用法代码示例。如果您正苦于以下问题:C++ af::regions方法的具体用法?C++ af::regions怎么用?C++ af::regions使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类af
的用法示例。
在下文中一共展示了af::regions方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: in
TEST(Regions, Docs_4)
{
// input data
uchar input[64] = {
0, 0, 0, 0, 1, 0, 0, 0,
0, 0, 1, 0, 1, 0, 0, 1,
0, 0, 0, 1, 0, 0, 0, 0,
0, 0, 1, 0, 0, 1, 0, 0,
1, 0, 0, 1, 0, 0, 1, 0,
0, 0, 0, 1, 1, 0, 0, 1,
1, 1, 0, 0, 0, 0, 0, 0,
0, 1, 0, 1, 1, 1, 1, 0
};
// gold output
float gold[64] = {
0.0000, 0.0000, 0.0000, 0.0000, 1.0000, 0.0000, 0.0000, 0.0000,
0.0000, 0.0000, 2.0000, 0.0000, 1.0000, 0.0000, 0.0000, 3.0000,
0.0000, 0.0000, 0.0000, 4.0000, 0.0000, 0.0000, 0.0000, 0.0000,
0.0000, 0.0000, 5.0000, 0.0000, 0.0000, 6.0000, 0.0000, 0.0000,
7.0000, 0.0000, 0.0000, 8.0000, 0.0000, 0.0000, 9.0000, 0.0000,
0.0000, 0.0000, 0.0000, 8.0000, 8.0000, 0.0000, 0.0000, 10.0000,
11.000, 11.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000, 0.0000,
0.0000, 11.0000, 0.0000, 12.0000, 12.0000, 12.0000, 12.0000, 0.0000
};
//![ex_image_regions_4conn]
array in(8, 8, input);
//af_print(in.T());
//in
//0 0 0 0 1 0 1 0
//0 0 0 0 0 0 1 1
//0 1 0 1 0 0 0 0
//0 0 1 0 1 1 0 1
//1 1 0 0 0 1 0 1
//0 0 0 1 0 0 0 1
//0 0 0 0 1 0 0 1
//0 1 0 0 0 1 0 0
// Compute the label matrix using 4-way connectivity
array out = regions(in.as(b8), AF_CONNECTIVITY_4);
//af_print(out.T());
//out
//0 0 0 0 7 0 11 0
//0 0 0 0 0 0 11 11
//0 2 0 5 0 0 0 0
//0 0 4 0 8 8 0 12
//1 1 0 0 0 8 0 12
//0 0 0 6 0 0 0 12
//0 0 0 0 9 0 0 12
//0 3 0 0 0 10 0 0
//![ex_image_regions_4conn]
float output[64];
out.host((void*)output);
for (int i=0; i<64; ++i) {
ASSERT_EQ(gold[i], output[i])<<" mismatch at i="<<i<<endl;
}
}
示例2: input
///////////////////////////////////// CPP ////////////////////////////////
//
TEST(Regions, CPP)
{
if (noDoubleTests<float>()) return;
vector<dim4> numDims;
vector<vector<float> > in;
vector<vector<float> > tests;
readTests<float, float, unsigned>(string(TEST_DIR"/regions/regions_8x8_4.test"),numDims,in,tests);
dim4 idims = numDims[0];
array input(idims, (float*)&(in[0].front()));
array output = regions(input.as(b8));
// Get result
float* outData = new float[idims.elements()];
output.host((void*)outData);
// Compare result
for (size_t testIter = 0; testIter < tests.size(); ++testIter) {
vector<float> currGoldBar = tests[testIter];
size_t nElems = currGoldBar.size();
for (size_t elIter = 0; elIter < nElems; ++elIter) {
ASSERT_EQ(currGoldBar[elIter], outData[elIter]) << "at: " << elIter << endl;
}
}
// Delete
delete[] outData;
}