MCPcopy Create free account
hub / github.com/creatale/node-dv / complementComplexOutput

Function complementComplexOutput

deps/opencv/modules/core/src/dxt.cpp:1479–1515  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1477namespace cv
1478{
1479static void complementComplexOutput(Mat& dst, int len, int dft_dims)
1480{
1481 int i, n = dst.cols;
1482 size_t elem_size = dst.elemSize1();
1483 if (elem_size == sizeof(float))
1484 {
1485 float* p0 = dst.ptr<float>();
1486 size_t dstep = dst.step / sizeof(p0[0]);
1487 for (i = 0; i < len; i++)
1488 {
1489 float* p = p0 + dstep*i;
1490 float* q = dft_dims == 1 || i == 0 || i * 2 == len ? p : p0 + dstep*(len - i);
1491
1492 for (int j = 1; j < (n + 1) / 2; j++)
1493 {
1494 p[(n - j) * 2] = q[j * 2];
1495 p[(n - j) * 2 + 1] = -q[j * 2 + 1];
1496 }
1497 }
1498 }
1499 else
1500 {
1501 double* p0 = dst.ptr<double>();
1502 size_t dstep = dst.step / sizeof(p0[0]);
1503 for (i = 0; i < len; i++)
1504 {
1505 double* p = p0 + dstep*i;
1506 double* q = dft_dims == 1 || i == 0 || i * 2 == len ? p : p0 + dstep*(len - i);
1507
1508 for (int j = 1; j < (n + 1) / 2; j++)
1509 {
1510 p[(n - j) * 2] = q[j * 2];
1511 p[(n - j) * 2 + 1] = -q[j * 2 + 1];
1512 }
1513 }
1514 }
1515}
1516}
1517
1518void cv::dft( InputArray _src0, OutputArray _dst, int flags, int nonzero_rows )

Callers 1

dftMethod · 0.85

Calls 1

elemSize1Method · 0.45

Tested by

no test coverage detected