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

Function TEST

tests/cvcuda/system/TestOpFindHomography.cpp:396–457  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

394}
395
396TEST(OpFindHomography, degenerate_identical_source_points)
397{
398 int numSamples = 2;
399 int numPoints = 16;
400
401 nvcv::Tensor srcPoints(
402 {
403 {numSamples, numPoints},
404 "NW"
405 },
406 nvcv::TYPE_2F32);
407 nvcv::Tensor dstPoints(
408 {
409 {numSamples, numPoints},
410 "NW"
411 },
412 nvcv::TYPE_2F32);
413 nvcv::Tensor models(
414 {
415 {numSamples, 3, 3},
416 "NHW"
417 },
418 nvcv::TYPE_F32);
419
420 auto srcData = srcPoints.exportData<nvcv::TensorDataStridedCuda>();
421 auto dstData = dstPoints.exportData<nvcv::TensorDataStridedCuda>();
422 auto modelsData = models.exportData<nvcv::TensorDataStridedCuda>();
423
424 std::vector<float> srcVec(2 * numSamples * numPoints);
425 std::vector<float> dstVec(2 * numSamples * numPoints);
426 std::vector<float> estimatedModelsVec(numSamples * 9);
427
428 for (int i = 0; i < numSamples; i++)
429 {
430 float fixed_src_x = 100.0f;
431 float fixed_src_y = 200.0f;
432
433 for (int j = 0; j < numPoints; j++)
434 {
435 // All source points are identical
436 srcVec[i * numPoints * 2 + 2 * j] = fixed_src_x;
437 srcVec[i * numPoints * 2 + 2 * j + 1] = fixed_src_y;
438
439 // Different destination points
440 dstVec[i * numPoints * 2 + 2 * j] = j * 10.0f;
441 dstVec[i * numPoints * 2 + 2 * j + 1] = j * 15.0f;
442 }
443 }
444
445 ASSERT_EQ(cudaSuccess, cudaMemcpy(srcData->basePtr(), srcVec.data(), sizeof(float) * 2 * numPoints * numSamples,
446 cudaMemcpyHostToDevice));
447 ASSERT_EQ(cudaSuccess, cudaMemcpy(dstData->basePtr(), dstVec.data(), sizeof(float) * 2 * numPoints * numSamples,
448 cudaMemcpyHostToDevice));
449
450 cudaStream_t stream;
451 ASSERT_EQ(cudaSuccess, cudaStreamCreateWithFlags(&stream, cudaStreamNonBlocking));
452
453 cvcuda::FindHomography fh(numSamples, numPoints);

Callers

nothing calls this directly

Calls 5

minFunction · 0.85
ProtectCallFunction · 0.50
basePtrMethod · 0.45
dataMethod · 0.45
pushBackMethod · 0.45

Tested by

no test coverage detected