MCPcopy Create free account
hub / github.com/CVCUDA/CV-CUDA / CPUBilateralFilterVarShape

Function CPUBilateralFilterVarShape

tests/cvcuda/system/TestOpBilateralFilter.cpp:182–222  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

180}
181
182static void CPUBilateralFilterVarShape(std::vector<std::vector<uint8_t>> &vIn, std::vector<std::vector<uint8_t>> &vOut,
183 std::vector<int> &vColumns, std::vector<int> &vRows,
184 std::vector<int> &vRowStride, std::vector<int> &vChannels,
185 std::vector<int> &vDiameter, std::vector<float> &vSigmaColor,
186 std::vector<float> &vSigmaSpace)
187{
188 for (size_t i = 0; i < vIn.size(); i++)
189 {
190 float sigmaColor = vSigmaColor[i];
191 float sigmaSpace = vSigmaSpace[i];
192 int diameter = vDiameter[i];
193
194 if (sigmaColor <= 0)
195 {
196 sigmaColor = 1;
197 }
198 if (sigmaSpace <= 0)
199 {
200 sigmaSpace = 1;
201 }
202
203 int radius;
204 if (diameter <= 0)
205 {
206 radius = std::roundf(sigmaSpace * 1.5f);
207 }
208 else
209 {
210 radius = diameter / 2;
211 }
212 if (radius < 1)
213 {
214 radius = 1;
215 }
216
217 float spaceCoefficient = -1 / (2 * sigmaSpace * sigmaSpace);
218 float colorCoefficient = -1 / (2 * sigmaColor * sigmaColor);
219 CPUBilateralFilter(vIn[i].data(), vOut[i].data(), vColumns[i], vRows[i], vRowStride[i], vChannels[i], radius,
220 colorCoefficient, spaceCoefficient);
221 }
222}
223
224// clang-format off
225NVCV_TEST_SUITE_P(OpBilateralFilter, test::ValueList<int, int, int, float, float, int>

Callers 1

TEST_PFunction · 0.85

Calls 3

CPUBilateralFilterFunction · 0.85
sizeMethod · 0.45
dataMethod · 0.45

Tested by

no test coverage detected