|
|
|
@ -161,4 +161,95 @@ TEST(fuzzy_f0, inversion) |
|
|
|
|
double n1 = cvtest::norm(demandedO, O, NORM_INF); |
|
|
|
|
|
|
|
|
|
EXPECT_DOUBLE_EQ(n1, 0); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
TEST(fuzzy_f0, process) |
|
|
|
|
{ |
|
|
|
|
float arI[16][16] = |
|
|
|
|
{ |
|
|
|
|
{ 0, 0, 0, 10, 34, 57, 80, 104, 127, 150, 174, 197, 221, 244, 255, 255 }, |
|
|
|
|
{ 0, 0, 0, 10, 34, 57, 80, 104, 127, 150, 174, 197, 221, 244, 255, 255 }, |
|
|
|
|
{ 0, 0, 0, 10, 34, 57, 80, 104, 127, 150, 174, 197, 221, 244, 255, 255 }, |
|
|
|
|
{ 0, 0, 0, 10, 34, 57, 80, 104, 127, 150, 174, 197, 221, 244, 255, 255 }, |
|
|
|
|
{ 0, 0, 0, 10, 34, 57, 80, 104, 127, 150, 174, 197, 221, 244, 255, 255 }, |
|
|
|
|
{ 0, 0, 0, 10, 34, 57, 80, 104, 127, 150, 174, 197, 221, 244, 255, 255 }, |
|
|
|
|
{ 0, 0, 0, 10, 34, 57, 80, 104, 127, 150, 174, 197, 221, 244, 255, 255 }, |
|
|
|
|
{ 0, 0, 0, 10, 34, 57, 80, 104, 127, 150, 174, 197, 221, 244, 255, 255 }, |
|
|
|
|
{ 0, 0, 0, 10, 34, 57, 80, 104, 127, 150, 174, 197, 221, 244, 255, 255 }, |
|
|
|
|
{ 0, 0, 0, 10, 34, 57, 80, 104, 127, 150, 174, 197, 221, 244, 255, 255 }, |
|
|
|
|
{ 0, 0, 0, 10, 34, 57, 80, 104, 127, 150, 174, 197, 221, 244, 255, 255 }, |
|
|
|
|
{ 0, 0, 0, 10, 34, 57, 80, 104, 127, 150, 174, 197, 221, 244, 255, 255 }, |
|
|
|
|
{ 0, 0, 0, 10, 34, 57, 80, 104, 127, 150, 174, 197, 221, 244, 255, 255 }, |
|
|
|
|
{ 0, 0, 0, 10, 34, 57, 80, 104, 127, 150, 174, 197, 221, 244, 255, 255 }, |
|
|
|
|
{ 0, 0, 0, 10, 34, 57, 80, 104, 127, 150, 174, 197, 221, 244, 255, 255 }, |
|
|
|
|
{ 0, 0, 0, 10, 34, 57, 80, 104, 127, 150, 174, 197, 221, 244, 255, 255 } |
|
|
|
|
}; |
|
|
|
|
Mat I = Mat(16, 16, CV_32F, arI); |
|
|
|
|
|
|
|
|
|
float arDemandedO[16][16] = |
|
|
|
|
{ |
|
|
|
|
{ 0, 1.25, 2.5, 18.125, 33.75, 57, 80.25, 103.625, 127, 150.375, 173.75, 197.25, 220.75, 236.5, 252.25, 253.625 }, |
|
|
|
|
{ 0, 1.25, 2.5, 18.125, 33.75, 57, 80.25, 103.625, 127, 150.375, 173.75, 197.25, 220.75, 236.5, 252.25, 253.625 }, |
|
|
|
|
{ 0, 1.25, 2.5, 18.125, 33.75, 57, 80.25, 103.625, 127, 150.375, 173.75, 197.25, 220.75, 236.5, 252.25, 253.625 }, |
|
|
|
|
{ 0, 1.25, 2.5, 18.125, 33.75, 57, 80.25, 103.625, 127, 150.375, 173.75, 197.25, 220.75, 236.5, 252.25, 253.625 }, |
|
|
|
|
{ 0, 1.25, 2.5, 18.125, 33.75, 57, 80.25, 103.625, 127, 150.375, 173.75, 197.25, 220.75, 236.5, 252.25, 253.625 }, |
|
|
|
|
{ 0, 1.25, 2.5, 18.125, 33.75, 57, 80.25, 103.625, 127, 150.375, 173.75, 197.25, 220.75, 236.5, 252.25, 253.625 }, |
|
|
|
|
{ 0, 1.25, 2.5, 18.125, 33.75, 57, 80.25, 103.625, 127, 150.375, 173.75, 197.25, 220.75, 236.5, 252.25, 253.625 }, |
|
|
|
|
{ 0, 1.25, 2.5, 18.125, 33.75, 57, 80.25, 103.625, 127, 150.375, 173.75, 197.25, 220.75, 236.5, 252.25, 253.625 }, |
|
|
|
|
{ 0, 1.25, 2.5, 18.125, 33.75, 57, 80.25, 103.625, 127, 150.375, 173.75, 197.25, 220.75, 236.5, 252.25, 253.625 }, |
|
|
|
|
{ 0, 1.25, 2.5, 18.125, 33.75, 57, 80.25, 103.625, 127, 150.375, 173.75, 197.25, 220.75, 236.5, 252.25, 253.625 }, |
|
|
|
|
{ 0, 1.25, 2.5, 18.125, 33.75, 57, 80.25, 103.625, 127, 150.375, 173.75, 197.25, 220.75, 236.5, 252.25, 253.625 }, |
|
|
|
|
{ 0, 1.25, 2.5, 18.125, 33.75, 57, 80.25, 103.625, 127, 150.375, 173.75, 197.25, 220.75, 236.5, 252.25, 253.625 }, |
|
|
|
|
{ 0, 1.25, 2.5, 18.125, 33.75, 57, 80.25, 103.625, 127, 150.375, 173.75, 197.25, 220.75, 236.5, 252.25, 253.625 }, |
|
|
|
|
{ 0, 1.25, 2.5, 18.125, 33.75, 57, 80.25, 103.625, 127, 150.375, 173.75, 197.25, 220.75, 236.5, 252.25, 253.625 }, |
|
|
|
|
{ 0, 1.25, 2.5, 18.125, 33.75, 57, 80.25, 103.625, 127, 150.375, 173.75, 197.25, 220.75, 236.5, 252.25, 253.625 }, |
|
|
|
|
{ 0, 1.25, 2.5, 18.125, 33.75, 57, 80.25, 103.625, 127, 150.375, 173.75, 197.25, 220.75, 236.5, 252.25, 253.625 } |
|
|
|
|
}; |
|
|
|
|
Mat demandedO = Mat(16, 16, CV_32F, arDemandedO); |
|
|
|
|
|
|
|
|
|
Mat kernel; |
|
|
|
|
ft::createKernel(ft::LINEAR, 2, kernel, 1); |
|
|
|
|
|
|
|
|
|
Mat O; |
|
|
|
|
ft::FT02D_process(I, kernel, O); |
|
|
|
|
|
|
|
|
|
double n1 = cvtest::norm(demandedO, O, NORM_INF); |
|
|
|
|
|
|
|
|
|
EXPECT_DOUBLE_EQ(n1, 0); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
TEST(fuzzy_f0, FL_process) |
|
|
|
|
{ |
|
|
|
|
string folder = string(cvtest::TS::ptr()->get_data_path()) + "fuzzy/"; |
|
|
|
|
Mat orig = imread(folder + "orig.png"); |
|
|
|
|
Mat exp5 = imread(folder + "exp5.png"); |
|
|
|
|
|
|
|
|
|
EXPECT_TRUE(!orig.empty() && !exp5.empty()); |
|
|
|
|
|
|
|
|
|
Mat res5; |
|
|
|
|
ft::FT02D_FL_process(orig, 5, res5); |
|
|
|
|
|
|
|
|
|
res5.convertTo(res5, CV_8UC3); |
|
|
|
|
|
|
|
|
|
double n1 = cvtest::norm(exp5, res5, NORM_INF); |
|
|
|
|
|
|
|
|
|
EXPECT_LE(n1, 1); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
TEST(fuzzy_f0, FL_process_float) |
|
|
|
|
{ |
|
|
|
|
string folder = string(cvtest::TS::ptr()->get_data_path()) + "fuzzy/"; |
|
|
|
|
Mat orig = imread(folder + "orig.png"); |
|
|
|
|
Mat exp6 = imread(folder + "exp6.png"); |
|
|
|
|
|
|
|
|
|
EXPECT_TRUE(!orig.empty() && !exp6.empty()); |
|
|
|
|
|
|
|
|
|
Mat res6; |
|
|
|
|
ft::FT02D_FL_process_float(orig, 5, res6); |
|
|
|
|
|
|
|
|
|
res6.convertTo(res6, CV_8UC3); |
|
|
|
|
|
|
|
|
|
double n1 = cvtest::norm(exp6, res6, NORM_INF); |
|
|
|
|
|
|
|
|
|
EXPECT_LE(n1, 1); |
|
|
|
|
} |