MCPcopy Create free account
hub / github.com/StevenWang30/R-PCC / recover_map

Function recover_map

ops/cpp_modules/src/cpp_modules.cpp:561–593  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

559
560
561py::array_t<int> recover_map(py::array_t<int> contour_map, py::array_t<int> idx_sequence) {
562 // input array
563 py::buffer_info cm_buf = contour_map.request();
564 int *cm_ptr = (int *) cm_buf.ptr;
565 py::buffer_info is_buf = idx_sequence.request();
566 int *is_ptr = (int *) is_buf.ptr;
567 int h = cm_buf.shape[0];
568 int w = cm_buf.shape[1];
569 int l = is_buf.shape[0];
570
571 // return array
572 auto idx_map = py::array_t<int>(h * w);
573 py::buffer_info im_buf = idx_map.request();
574 int *im_ptr = (int *) im_buf.ptr;
575
576 int pointer = 0;
577 for (int i = 0; i < l; i++){
578 int index = is_ptr[i];
579 im_ptr[pointer] = index;
580 pointer++;
581 if (pointer >= h * w)
582 break;
583 while (cm_ptr[pointer] == 0){
584 im_ptr[pointer] = index;
585 pointer++;
586 if (pointer >= h * w)
587 break;
588 }
589 }
590
591 idx_map.resize({h, w});
592 return idx_map;
593}
594
595
596// feature extractor

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected