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,