Mercurial > hg > orthanc-stone
comparison UnitTestsSources/UnitTestsMain.cpp @ 177:83200c4d07ca wasm
fix interpolation
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Fri, 09 Mar 2018 12:32:01 +0100 |
parents | ab9c799f5de1 |
children | 45b03b04a777 |
comparison
equal
deleted
inserted
replaced
176:ab9c799f5de1 | 177:83200c4d07ca |
---|---|
134 #endif | 134 #endif |
135 | 135 |
136 | 136 |
137 TEST(GeometryToolbox, Interpolation) | 137 TEST(GeometryToolbox, Interpolation) |
138 { | 138 { |
139 using namespace OrthancStone::GeometryToolbox; | |
140 | |
139 // https://en.wikipedia.org/wiki/Bilinear_interpolation#Application_in_image_processing | 141 // https://en.wikipedia.org/wiki/Bilinear_interpolation#Application_in_image_processing |
140 ASSERT_FLOAT_EQ(146.1f, OrthancStone::GeometryToolbox::ComputeBilinearInterpolation | 142 ASSERT_FLOAT_EQ(146.1f, ComputeBilinearInterpolationUnitSquare(0.5f, 0.2f, 91, 210, 162, 95)); |
141 (20.5f, 14.2f, 91, 210, 162, 95)); | 143 |
142 | 144 ASSERT_FLOAT_EQ(91, ComputeBilinearInterpolationUnitSquare(0, 0, 91, 210, 162, 95)); |
143 ASSERT_NEAR(146.1f, OrthancStone::GeometryToolbox::ComputeBilinearInterpolation | 145 ASSERT_FLOAT_EQ(210, ComputeBilinearInterpolationUnitSquare(1, 0, 91, 210, 162, 95)); |
144 (-20.5f, 14.2f, 91, 210, 162, 95), 0.0001f); | 146 ASSERT_FLOAT_EQ(162, ComputeBilinearInterpolationUnitSquare(0, 1, 91, 210, 162, 95)); |
145 | 147 ASSERT_FLOAT_EQ(95, ComputeBilinearInterpolationUnitSquare(1, 1, 91, 210, 162, 95)); |
146 ASSERT_NEAR(146.1f, OrthancStone::GeometryToolbox::ComputeBilinearInterpolation | 148 |
147 (-20.5f, -8.8f, 91, 210, 162, 95), 0.0001f); | 149 ASSERT_FLOAT_EQ(123.35f, ComputeTrilinearInterpolationUnitSquare |
148 | 150 (0.5f, 0.2f, 0.7f, |
149 ASSERT_NEAR(146.1f, OrthancStone::GeometryToolbox::ComputeBilinearInterpolation | |
150 (20.5f, -8.8f, 91, 210, 162, 95), 0.0001f); | |
151 | |
152 ASSERT_FLOAT_EQ(123.35f, OrthancStone::GeometryToolbox::ComputeTrilinearInterpolation | |
153 (20.5f, 15.2f, 5.7f, | |
154 91, 210, 162, 95, | 151 91, 210, 162, 95, |
155 51, 190, 80, 92)); | 152 51, 190, 80, 92)); |
156 | 153 |
157 ASSERT_FLOAT_EQ(123.35f, OrthancStone::GeometryToolbox::ComputeTrilinearInterpolation | 154 ASSERT_FLOAT_EQ(ComputeBilinearInterpolationUnitSquare(0.5f, 0.2f, 91, 210, 162, 95), |
158 (20.5f, 15.2f, -6.3f, | 155 ComputeTrilinearInterpolationUnitSquare(0.5f, 0.2f, 0, |
159 91, 210, 162, 95, | 156 91, 210, 162, 95, |
160 51, 190, 80, 92)); | 157 51, 190, 80, 92)); |
158 | |
159 ASSERT_FLOAT_EQ(ComputeBilinearInterpolationUnitSquare(0.5f, 0.2f, 51, 190, 80, 92), | |
160 ComputeTrilinearInterpolationUnitSquare(0.5f, 0.2f, 1, | |
161 91, 210, 162, 95, | |
162 51, 190, 80, 92)); | |
161 } | 163 } |
162 | 164 |
163 | 165 |
164 static bool CompareMatrix(const OrthancStone::Matrix& a, | 166 static bool CompareMatrix(const OrthancStone::Matrix& a, |
165 const OrthancStone::Matrix& b, | 167 const OrthancStone::Matrix& b, |