Skip to content

Commit 86bbd81

Browse files
committed
add float type to accu test
1 parent 107bb1c commit 86bbd81

File tree

1 file changed

+34
-30
lines changed

1 file changed

+34
-30
lines changed

modules/ximgproc/test/test_radon_transform.cpp

Lines changed: 34 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -13,20 +13,35 @@ TEST(RadonTransformTest, output_size)
1313
Mat radon;
1414
cv::ximgproc::RadonTransform(src, radon);
1515

16-
ASSERT_EQ(radon.rows, 180);
17-
ASSERT_EQ(radon.cols, 256);
16+
ASSERT_EQ(radon.rows, 363);
17+
ASSERT_EQ(radon.cols, 180);
18+
19+
cv::ximgproc::RadonTransform(src, radon, 1, 0, 180, true);
20+
21+
ASSERT_EQ(radon.rows, 256);
22+
ASSERT_EQ(radon.cols, 180);
1823
}
1924

2025
TEST(RadonTransformTest, output_type)
2126
{
22-
Mat src(Size(256, 256), CV_8U, Scalar(0));
23-
circle(src, Point(128, 128), 64, Scalar(255), FILLED);
27+
Mat src_int(Size(256, 256), CV_8U, Scalar(0));
28+
circle(src_int, Point(128, 128), 64, Scalar(255), FILLED);
2429
Mat radon, radon_norm;
25-
cv::ximgproc::RadonTransform(src, radon);
26-
cv::ximgproc::RadonTransform(src, radon_norm, 1, 0, 180, false, true);
30+
cv::ximgproc::RadonTransform(src_int, radon);
31+
cv::ximgproc::RadonTransform(src_int, radon_norm, 1, 0, 180, false, true);
2732

2833
ASSERT_EQ(radon.type(), CV_32SC1);
2934
ASSERT_EQ(radon_norm.type(), CV_8U);
35+
36+
Mat src_float(Size(256, 256), CV_32FC1, Scalar(0));
37+
Mat src_double(Size(256, 256), CV_32FC1, Scalar(0));
38+
cv::ximgproc::RadonTransform(src_float, radon);
39+
cv::ximgproc::RadonTransform(src_float, radon_norm, 1, 0, 180, false, true);
40+
ASSERT_EQ(radon.type(), CV_64FC1);
41+
ASSERT_EQ(radon_norm.type(), CV_8U);
42+
cv::ximgproc::RadonTransform(src_double, radon);
43+
ASSERT_EQ(radon.type(), CV_64FC1);
44+
ASSERT_EQ(radon_norm.type(), CV_8U);
3045
}
3146

3247
TEST(RadonTransformTest, accuracy_by_pixel)
@@ -38,38 +53,27 @@ TEST(RadonTransformTest, accuracy_by_pixel)
3853

3954
ASSERT_EQ(radon.at<int>(0, 0), 0);
4055

41-
ASSERT_GT(radon.at<int>(128, 128), 32000);
42-
ASSERT_LT(radon.at<int>(128, 128), 33000);
56+
ASSERT_GT(radon.at<int>(128, 128), 18000);
57+
ASSERT_LT(radon.at<int>(128, 128), 19000);
4358
}
4459

45-
TEST(RadonTransformTest, accuracy_by_col_sum)
60+
TEST(RadonTransformTest, accuracy_uchar)
4661
{
47-
Mat src(Size(256, 256), CV_8U, Scalar(0));
48-
circle(src, Point(128, 128), 64, Scalar(255), FILLED);
49-
Mat radon;
50-
cv::ximgproc::RadonTransform(src, radon, 1, 0, 180, false, true);
51-
Mat sum_col;
52-
cv::reduce(radon, sum_col, 0, REDUCE_SUM, CV_32SC1);
53-
54-
ASSERT_EQ(sum_col.at<int>(0), 0);
62+
Mat src(Size(10, 10), CV_8UC1, Scalar(1));
63+
cv::Mat radon;
64+
ximgproc::RadonTransform(src, radon, 45, 0, 180, false, false);
5565

56-
ASSERT_GT(sum_col.at<int>(128), 45000);
57-
ASSERT_LT(sum_col.at<int>(128), 46000);
66+
ASSERT_EQ(sum(radon.col(0))[0], 100);
5867
}
5968

60-
TEST(RadonTransformTest, accuracy_by_row_sum)
69+
TEST(RadonTransformTest, accuracy_float)
6170
{
62-
Mat src(Size(256, 256), CV_8U, Scalar(0));
63-
circle(src, Point(128, 128), 64, Scalar(255), FILLED);
64-
Mat radon;
65-
cv::ximgproc::RadonTransform(src, radon, 1, 0, 180, false, true);
66-
Mat sum_row;
67-
cv::reduce(radon, sum_row, 1, REDUCE_SUM, CV_32SC1);
68-
69-
ASSERT_LT(abs(sum_row.at<int>(0) - sum_row.at<int>(128)), 1000);
71+
Mat src(Size(10, 10), CV_32FC1, Scalar(1.1));
72+
cv::Mat radon;
73+
ximgproc::RadonTransform(src, radon, 45, 0, 180, false, false);
7074

71-
ASSERT_GT(sum_row.at<int>(0), 25000);
72-
ASSERT_LT(sum_row.at<int>(0), 26000);
75+
ASSERT_GT(sum(radon.col(0))[0], 109);
76+
ASSERT_LT(sum(radon.col(0))[0], 111);
7377
}
7478

7579
} }

0 commit comments

Comments
 (0)