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

Function SIFT

python/mod_cvcuda/operators/OpSIFT.cpp:182–203  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

180}
181
182TupleTensor4 SIFT(Tensor &in, int maxFeatures, int numOctaveLayers, float contrastThreshold, float edgeThreshold,
183 float initSigma, NVCVSIFTFlagType flags, std::optional<Stream> pstream)
184{
185 auto inAccess = tensorAccess(in);
186 int numSamples = inAccess->numSamples();
187
188 maxFeatures = maxFeatures == 0 ? GetDefaultMaxFeatures(inAccess->numCols(), inAccess->numRows()) : maxFeatures;
189
190 // Row align must be 1 in below tensors so last 2 dimensions are packed
191
192 // clang-format off
193
194 Tensor featCoords = Tensor::Create({{numSamples, maxFeatures, 4}, "NMC"}, nvcv::TYPE_F32, 1);
195 Tensor featMetadata = Tensor::Create({{numSamples, maxFeatures, 3}, "NMC"}, nvcv::TYPE_F32, 1);
196 Tensor featDescriptors = Tensor::Create({{numSamples, maxFeatures, 128}, "NMD"}, nvcv::TYPE_U8, 1);
197 Tensor numFeatures = Tensor::Create({{numSamples, 1}, "NC"}, nvcv::TYPE_S32, 1);
198
199 // clang-format on
200
201 return SIFTInto(featCoords, featMetadata, featDescriptors, numFeatures, in, numOctaveLayers, contrastThreshold,
202 edgeThreshold, initSigma, flags, pstream);
203}
204
205} // namespace
206

Callers

nothing calls this directly

Calls 6

tensorAccessFunction · 0.85
GetDefaultMaxFeaturesFunction · 0.85
SIFTIntoFunction · 0.85
numSamplesMethod · 0.45
numColsMethod · 0.45
numRowsMethod · 0.45

Tested by

no test coverage detected