本文整理汇总了C++中Func::Call方法的典型用法代码示例。如果您正苦于以下问题:C++ Func::Call方法的具体用法?C++ Func::Call怎么用?C++ Func::Call使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Func
的用法示例。
在下文中一共展示了Func::Call方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: IntegralAutoTest
bool IntegralAutoTest(int width, int height, bool sqsumEnable, bool tiltedEnable, View::Format sumFormat, View::Format sqsumFormat, const Func & f1, const Func & f2)
{
bool result = true;
TEST_LOG_SS(Info, "Test " << f1.description << " & " << f2.description << " [" << width << ", " << height << "].");
View src(width, height, View::Gray8, NULL, TEST_ALIGN(width));
FillRandom(src);
View sum1(width + 1, height + 1, sumFormat, NULL, TEST_ALIGN(width));
View sum2(width + 1, height + 1, sumFormat, NULL, TEST_ALIGN(width));
View sqsum1, sqsum2, tilted1, tilted2;
if(sqsumEnable)
{
sqsum1.Recreate(width + 1, height + 1, sqsumFormat, NULL, TEST_ALIGN(width));
sqsum2.Recreate(width + 1, height + 1, sqsumFormat, NULL, TEST_ALIGN(width));
}
if(tiltedEnable)
{
tilted1.Recreate(width + 1, height + 1, sumFormat, NULL, TEST_ALIGN(width));
tilted2.Recreate(width + 1, height + 1, sumFormat, NULL, TEST_ALIGN(width));
}
TEST_EXECUTE_AT_LEAST_MIN_TIME(f1.Call(src, sum1, sqsum1, tilted1));
TEST_EXECUTE_AT_LEAST_MIN_TIME(f2.Call(src, sum2, sqsum2, tilted2));
result = result && Compare(sum1, sum2, 0, true, 32, 0, "sum");
if(sqsumEnable)
result = result && Compare(sqsum1, sqsum2, 0, true, 32, 0, "sqsum");
if(tiltedEnable)
result = result && Compare(tilted1, tilted2, 0, true, 32, 0, "tilted");
return result;
}
示例2: YuvToAnyAutoTest
bool YuvToAnyAutoTest(int width, int height, bool is420, View::Format dstType, const Func & f1, const Func & f2)
{
bool result = true;
std::cout << "Test " << f1.description << " & " << f2.description << " [" << width << ", " << height << "]." << std::endl;
const int uvWidth = is420 ? width/2 : width;
const int uvHeight = is420 ? height/2 : height;
View y(width, height, View::Gray8, NULL, TEST_ALIGN(width));
FillRandom(y);
View u(uvWidth, uvHeight, View::Gray8, NULL, TEST_ALIGN(uvWidth));
FillRandom(u);
View v(uvWidth, uvHeight, View::Gray8, NULL, TEST_ALIGN(uvWidth));
FillRandom(v);
View dst1(width, height, dstType, NULL, TEST_ALIGN(width));
View dst2(width, height, dstType, NULL, TEST_ALIGN(width));
TEST_EXECUTE_AT_LEAST_MIN_TIME(f1.Call(y, u, v, dst1));
TEST_EXECUTE_AT_LEAST_MIN_TIME(f2.Call(y, u, v, dst2));
result = result && Compare(dst1, dst2, 0, true, 64);
return result;
}
示例3: YuvToBgraAutoTest
bool YuvToBgraAutoTest(int width, int height, const Func & f1, const Func & f2, int dx, int dy)
{
bool result = true;
TEST_LOG_SS(Info, "Test " << f1.description << " & " << f2.description << " [" << width << ", " << height << "].");
const int uvWidth = width/dx;
const int uvHeight = height/dy;
View y(width, height, View::Gray8, NULL, TEST_ALIGN(width));
FillRandom(y);
View u(uvWidth, uvHeight, View::Gray8, NULL, TEST_ALIGN(uvWidth));
FillRandom(u);
View v(uvWidth, uvHeight, View::Gray8, NULL, TEST_ALIGN(uvWidth));
FillRandom(v);
View bgra1(width, height, View::Bgra32, NULL, TEST_ALIGN(width));
View bgra2(width, height, View::Bgra32, NULL, TEST_ALIGN(width));
TEST_EXECUTE_AT_LEAST_MIN_TIME(f1.Call(y, u, v, bgra1));
TEST_EXECUTE_AT_LEAST_MIN_TIME(f2.Call(y, u, v, bgra2));
result = result && Compare(bgra1, bgra2, 0, true, 64);
return result;
}
示例4: blue
bool Bgr48pToBgra32AutoTest(int width, int height, const Func & f1, const Func & f2)
{
bool result = true;
TEST_LOG_SS(Info, "Test " << f1.description << " & " << f2.description << " for size [" << width << "," << height << "].");
View blue(width, height, View::Int16, NULL, TEST_ALIGN(width));
FillRandom(blue);
View green(width, height, View::Int16, NULL, TEST_ALIGN(width));
FillRandom(green);
View red(width, height, View::Int16, NULL, TEST_ALIGN(width));
FillRandom(red);
uint8_t alpha = 0xFF;
View bgra1(width, height, View::Bgra32, NULL, TEST_ALIGN(width));
View bgra2(width, height, View::Bgra32, NULL, TEST_ALIGN(width));
TEST_EXECUTE_AT_LEAST_MIN_TIME(f1.Call(blue, green, red, bgra1, alpha));
TEST_EXECUTE_AT_LEAST_MIN_TIME(f2.Call(blue, green, red, bgra2, alpha));
result = result && Compare(bgra1, bgra2, 0, true, 32);
return result;
}
示例5: AddFeatureDifferenceAutoTest
bool AddFeatureDifferenceAutoTest(int width, int height, uint16_t weight, const Func & f1, const Func & f2)
{
bool result = true;
TEST_LOG_SS(Info, "Test " << f1.description << " & " << f2.description << " [" << width << ", " << height << "] (" << weight/256 << "*256).");
View value(width, height, View::Gray8, NULL, TEST_ALIGN(width));
FillRandom(value);
View lo(width, height, View::Gray8, NULL, TEST_ALIGN(width));
FillRandom(lo);
View hi(width, height, View::Gray8, NULL, TEST_ALIGN(width));
FillRandom(hi);
View differenceSrc(width, height, View::Gray8, NULL, TEST_ALIGN(width));
FillRandom(differenceSrc);
View differenceDst1(width, height, View::Gray8, NULL, TEST_ALIGN(width));
View differenceDst2(width, height, View::Gray8, NULL, TEST_ALIGN(width));
TEST_EXECUTE_AT_LEAST_MIN_TIME(f1.Call(value, lo, hi, weight, differenceSrc, differenceDst1));
TEST_EXECUTE_AT_LEAST_MIN_TIME(f2.Call(value, lo, hi, weight, differenceSrc, differenceDst2));
result = result && Compare(differenceDst1, differenceDst2, 0, true, 32, 0);
return result;
}
示例6: AddFeatureDifferenceDataTest
bool AddFeatureDifferenceDataTest(bool create, int width, int height, const Func & f)
{
bool result = true;
Data data(f.description);
TEST_LOG_SS(Info, (create ? "Create" : "Verify") << " test " << f.description << " [" << width << ", " << height << "].");
View value(width, height, View::Gray8, NULL, TEST_ALIGN(width));
View lo(width, height, View::Gray8, NULL, TEST_ALIGN(width));
View hi(width, height, View::Gray8, NULL, TEST_ALIGN(width));
View differenceSrc(width, height, View::Gray8, NULL, TEST_ALIGN(width));
View differenceDst1(width, height, View::Gray8, NULL, TEST_ALIGN(width));
View differenceDst2(width, height, View::Gray8, NULL, TEST_ALIGN(width));
const uint16_t weight = 256*7;
if(create)
{
FillRandom(value);
FillRandom(lo);
FillRandom(hi);
FillRandom(differenceSrc);
TEST_SAVE(value);
TEST_SAVE(lo);
TEST_SAVE(hi);
TEST_SAVE(differenceSrc);
f.Call(value, lo, hi, weight, differenceSrc, differenceDst1);
TEST_SAVE(differenceDst1);
}
else
{
TEST_LOAD(value);
TEST_LOAD(lo);
TEST_LOAD(hi);
TEST_LOAD(differenceSrc);
TEST_LOAD(differenceDst1);
f.Call(value, lo, hi, weight, differenceSrc, differenceDst2);
TEST_SAVE(differenceDst2);
result = result && Compare(differenceDst1, differenceDst2, 0, true, 32, 0);
}
return result;
}
示例7: IntegralDataTest
bool IntegralDataTest(bool create, int width, int height, const Func & f)
{
bool result = true;
Data data(f.description);
TEST_LOG_SS(Info, (create ? "Create" : "Verify") << " test " << f.description << " [" << width << ", " << height << "].");
View src(width, height, View::Gray8, NULL, TEST_ALIGN(width));
View sum1(width + 1, height + 1, View::Int32, NULL, TEST_ALIGN(width));
View sum2(width + 1, height + 1, View::Int32, NULL, TEST_ALIGN(width));
View sqsum1(width + 1, height + 1, View::Int32, NULL, TEST_ALIGN(width));
View sqsum2(width + 1, height + 1, View::Int32, NULL, TEST_ALIGN(width));
View tilted1(width + 1, height + 1, View::Int32, NULL, TEST_ALIGN(width));
View tilted2(width + 1, height + 1, View::Int32, NULL, TEST_ALIGN(width));
if(create)
{
FillRandom(src);
TEST_SAVE(src);
f.Call(src, sum1, sqsum1, tilted1);
TEST_SAVE(sum1);
TEST_SAVE(sqsum1);
TEST_SAVE(tilted1);
}
else
{
TEST_LOAD(src);
TEST_LOAD(sum1);
TEST_LOAD(sqsum1);
TEST_LOAD(tilted1);
f.Call(src, sum2, sqsum2, tilted2);
TEST_SAVE(sum2);
TEST_SAVE(sqsum2);
TEST_SAVE(tilted2);
result = result && Compare(sum1, sum2, 0, true, 32, 0, "sum");
result = result && Compare(sqsum1, sqsum2, 0, true, 32, 0, "sqsum");
result = result && Compare(tilted1, tilted2, 0, true, 32, 0, "tilted");
}
return result;
}
示例8: YuvToAnyDataTest
bool YuvToAnyDataTest(bool create, int width, int height, bool is420, View::Format dstType, const Func & f)
{
bool result = true;
Data data(f.description);
std::cout << (create ? "Create" : "Verify") << " test " << f.description << " [" << width << ", " << height << "]." << std::endl;
const int uvWidth = is420 ? width/2 : width;
const int uvHeight = is420 ? height/2 : height;
View y(width, height, View::Gray8, NULL, TEST_ALIGN(width));
View u(uvWidth, uvHeight, View::Gray8, NULL, TEST_ALIGN(uvWidth));
View v(uvWidth, uvHeight, View::Gray8, NULL, TEST_ALIGN(uvWidth));
View dst1(width, height, dstType, NULL, TEST_ALIGN(width));
View dst2(width, height, dstType, NULL, TEST_ALIGN(width));
if(create)
{
FillRandom(y);
FillRandom(u);
FillRandom(v);
TEST_SAVE(y);
TEST_SAVE(u);
TEST_SAVE(v);
f.Call(y, u, v, dst1);
TEST_SAVE(dst1);
}
else
{
TEST_LOAD(y);
TEST_LOAD(u);
TEST_LOAD(v);
TEST_LOAD(dst1);
f.Call(y, u, v, dst2);
TEST_SAVE(dst2);
result = result && Compare(dst1, dst2, 0, true, 64);
}
return result;
}
示例9: YuvToBgraDataTest
bool YuvToBgraDataTest(bool create, int width, int height, const Func & f, int dx, int dy)
{
bool result = true;
Data data(f.description);
TEST_LOG_SS(Info, (create ? "Create" : "Verify") << " test " << f.description << " [" << width << ", " << height << "].");
const int uvWidth = width/dx;
const int uvHeight = height/dy;
View y(width, height, View::Gray8, NULL, TEST_ALIGN(width));
View u(uvWidth, uvHeight, View::Gray8, NULL, TEST_ALIGN(uvWidth));
View v(uvWidth, uvHeight, View::Gray8, NULL, TEST_ALIGN(uvWidth));
View bgra1(width, height, View::Bgra32, NULL, TEST_ALIGN(width));
View bgra2(width, height, View::Bgra32, NULL, TEST_ALIGN(width));
if(create)
{
FillRandom(y);
FillRandom(u);
FillRandom(v);
TEST_SAVE(y);
TEST_SAVE(u);
TEST_SAVE(v);
f.Call(y, u, v, bgra1);
TEST_SAVE(bgra1);
}
else
{
TEST_LOAD(y);
TEST_LOAD(u);
TEST_LOAD(v);
TEST_LOAD(bgra1);
f.Call(y, u, v, bgra2);
TEST_SAVE(bgra2);
result = result && Compare(bgra1, bgra2, 0, true, 64);
}
return result;
}
示例10: data
bool Bgr48pToBgra32DataTest(bool create, int width, int height, const Func & f)
{
bool result = true;
Data data(f.description);
TEST_LOG_SS(Info, (create ? "Create" : "Verify") << " test " << f.description << " [" << width << ", " << height << "].");
View blue(width, height, View::Int16, NULL, TEST_ALIGN(width));
View green(width, height, View::Int16, NULL, TEST_ALIGN(width));
View red(width, height, View::Int16, NULL, TEST_ALIGN(width));
uint8_t alpha = 0xFF;
View bgra1(width, height, View::Bgra32, NULL, TEST_ALIGN(width));
View bgra2(width, height, View::Bgra32, NULL, TEST_ALIGN(width));
if(create)
{
FillRandom(blue);
FillRandom(green);
FillRandom(red);
TEST_SAVE(blue);
TEST_SAVE(green);
TEST_SAVE(red);
f.Call(blue, green, red, bgra1, alpha);
TEST_SAVE(bgra1);
}
else
{
TEST_LOAD(blue);
TEST_LOAD(green);
TEST_LOAD(red);
TEST_LOAD(bgra1);
f.Call(blue, green, red, bgra2, alpha);
TEST_SAVE(bgra2);
result = result && Compare(bgra1, bgra2, 0, true, 32);
}
return result;
}
示例11: DeinterleaveUvDataTest
bool DeinterleaveUvDataTest(bool create, int width, int height, const Func & f)
{
bool result = true;
Data data(f.description);
TEST_LOG_SS(Info, (create ? "Create" : "Verify") << " test " << f.description << " [" << width << ", " << height << "].");
View uv(width, height, View::Uv16, NULL, TEST_ALIGN(width));
View u1(width, height, View::Gray8, NULL, TEST_ALIGN(width));
View v1(width, height, View::Gray8, NULL, TEST_ALIGN(width));
View u2(width, height, View::Gray8, NULL, TEST_ALIGN(width));
View v2(width, height, View::Gray8, NULL, TEST_ALIGN(width));
if(create)
{
FillRandom(uv);
TEST_SAVE(uv);
f.Call(uv, u1, v1);
TEST_SAVE(u1);
TEST_SAVE(v1);
}
else
{
TEST_LOAD(uv);
TEST_LOAD(u1);
TEST_LOAD(v1);
f.Call(uv, u2, v2);
TEST_SAVE(u2);
TEST_SAVE(v2);
result = result && Compare(u1, u2, 0, true, 32, 0, "u");
result = result && Compare(v1, v2, 0, true, 32, 0, "v");
}
return result;
}
示例12: ShiftBilinearDataTest
bool ShiftBilinearDataTest(bool create, int width, int height, View::Format format, const Func & f)
{
bool result = true;
Data data(f.description);
std::cout << (create ? "Create" : "Verify") << " test " << f.description << " [" << width << ", " << height << "]." << std::endl;
View s(width, height, format, NULL, TEST_ALIGN(width));
View b(width, height, format, NULL, TEST_ALIGN(width));
View d1(width, height, format, NULL, TEST_ALIGN(width));
View d2(width, height, format, NULL, TEST_ALIGN(width));
const double dx = -5.3, dy = 3.7;
const int crop = 3;
if(create)
{
FillRandom(s);
FillRandom(b);
TEST_SAVE(s);
TEST_SAVE(b);
f.Call(s, b, dx, dy, crop, crop, width - crop, height - crop, d1);
TEST_SAVE(d1);
}
else
{
TEST_LOAD(s);
TEST_LOAD(b);
TEST_LOAD(d1);
f.Call(s, b, dx, dy, crop, crop, width - crop, height - crop, d2);
TEST_SAVE(d2);
result = result && Compare(d1, d2, 0, true, 64);
}
return result;
}
示例13: AnyToAnyAutoTest
bool AnyToAnyAutoTest(int width, int height, View::Format srcType, View::Format dstType, const Func & f1, const Func & f2)
{
bool result = true;
TEST_LOG_SS(Info, "Test " << f1.description << " & " << f2.description << " for size [" << width << "," << height << "].");
View src(width, height, srcType, NULL, TEST_ALIGN(width));
FillRandom(src);
View dst1(width, height, dstType, NULL, TEST_ALIGN(width));
View dst2(width, height, dstType, NULL, TEST_ALIGN(width));
TEST_EXECUTE_AT_LEAST_MIN_TIME(f1.Call(src, dst1));
TEST_EXECUTE_AT_LEAST_MIN_TIME(f2.Call(src, dst2));
result = result && Compare(dst1, dst2, 0, true, 64);
return result;
}
示例14: StretchGrayDataTest
bool StretchGrayDataTest(bool create, int width, int height, const Func & f, int stretch)
{
bool result = true;
Data data(f.description);
std::cout << (create ? "Create" : "Verify") << " test " << f.description << " [" << width << ", " << height << "]." << std::endl;
const int stretchedWidth = width*stretch;
const int stretchedHeight = height*stretch;
View s(width, height, View::Gray8, NULL, TEST_ALIGN(width));
View d1(stretchedWidth, stretchedHeight, View::Gray8, NULL, TEST_ALIGN(stretchedWidth));
View d2(stretchedWidth, stretchedHeight, View::Gray8, NULL, TEST_ALIGN(stretchedWidth));
if(create)
{
FillRandom(s);
TEST_SAVE(s);
f.Call(s, d1);
TEST_SAVE(d1);
}
else
{
TEST_LOAD(s);
TEST_LOAD(d1);
f.Call(s, d2);
TEST_SAVE(d2);
result = result && Compare(d1, d2, 0, true, 64);
}
return result;
}
示例15: AnyToAnyDataTest
bool AnyToAnyDataTest(bool create, int width, int height, View::Format srcType, View::Format dstType, const Func & f)
{
bool result = true;
Data data(f.description);
TEST_LOG_SS(Info, (create ? "Create" : "Verify") << " test " << f.description << " [" << width << ", " << height << "].");
View src(width, height, srcType, NULL, TEST_ALIGN(width));
View dst1(width, height, dstType, NULL, TEST_ALIGN(width));
View dst2(width, height, dstType, NULL, TEST_ALIGN(width));
if(create)
{
FillRandom(src);
TEST_SAVE(src);
f.Call(src, dst1);
TEST_SAVE(dst1);
}
else
{
TEST_LOAD(src);
TEST_LOAD(dst1);
f.Call(src, dst2);
TEST_SAVE(dst2);
result = result && Compare(dst1, dst2, 0, true, 64, 0);
}
return result;
}