bool AveragingBinarizationAutoTest(int width, int height, SimdCompareType type, const Func2 & f1, const Func2 & 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); uint8_t value = 127; size_t neighborhood = 17; uint8_t threshold = 128; uint8_t positive = 7; uint8_t negative = 3; View d1(width, height, View::Gray8, NULL, TEST_ALIGN(width)); View d2(width, height, View::Gray8, NULL, TEST_ALIGN(width)); TEST_EXECUTE_AT_LEAST_MIN_TIME(f1.Call(src, value, neighborhood, threshold, positive, negative, d1, type)); TEST_EXECUTE_AT_LEAST_MIN_TIME(f2.Call(src, value, neighborhood, threshold, positive, negative, d2, type)); result = result && Compare(d1, d2, 0, true, 64); return result; }
bool AveragingBinarizationDataTest(bool create, int width, int height, SimdCompareType type, const Func2 & 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 dst1(width, height, View::Gray8, NULL, TEST_ALIGN(width)); View dst2(width, height, View::Gray8, NULL, TEST_ALIGN(width)); const uint8_t value = 127; const size_t neighborhood = 17; const uint8_t threshold = 128; const uint8_t positive = 7; const uint8_t negative = 3; if(create) { FillRandom(src); TEST_SAVE(src); f.Call(src, value, neighborhood, threshold, positive, negative, dst1, type); TEST_SAVE(dst1); } else { TEST_LOAD(src); TEST_LOAD(dst1); f.Call(src, value, neighborhood, threshold, positive, negative, dst2, type); TEST_SAVE(dst2); result = result && Compare(dst1, dst2, 0, true, 64); } return result; }
bool TextureBoostedUvAutoTest(int width, int height, int boost, const Func2 & f1, const Func2 & f2) { bool result = true; TEST_LOG_SS(Info, "Test " << f1.description << " & " << f2.description << " [" << width << ", " << height << "] <" << boost << ">."); View src(width, height, View::Gray8, NULL, TEST_ALIGN(width)); FillRandom(src); View dst1(width, height, View::Gray8, NULL, TEST_ALIGN(width)); View dst2(width, height, View::Gray8, NULL, TEST_ALIGN(width)); TEST_EXECUTE_AT_LEAST_MIN_TIME(f1.Call(src, boost, dst1)); TEST_EXECUTE_AT_LEAST_MIN_TIME(f2.Call(src, boost, dst2)); result = result && Compare(dst1, dst2, 0, true, 32, 0); return result; }
bool TextureBoostedUvDataTest(bool create, int width, int height, const Func2 & 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 dst1(width, height, View::Gray8, NULL, TEST_ALIGN(width)); View dst2(width, height, View::Gray8, NULL, TEST_ALIGN(width)); const int boost = 4; if(create) { FillRandom(src); TEST_SAVE(src); f.Call(src, boost, dst1); TEST_SAVE(dst1); } else { TEST_LOAD(src); TEST_LOAD(dst1); f.Call(src, boost, dst2); TEST_SAVE(dst2); result = result && Compare(dst1, dst2, 0, true, 32, 0); } return result; }