2014-09-18 2 views
3

나는 이미지에 대해 몇 가지 시뮬레이션을 수행하기 위해 C++ 코드를 사용하고 있습니다. 어느 시점에서 필자는 파이썬 ndimage.label을 사용하고자하는 이미지 클러스터에 레이블을 지정해야합니다 (레이블링 코드보다 거의 10 배 빠름). 그러나, 나는 Python에 매우 익숙하며 인수 (이미지)를 C++에서 python으로 전달하는 방법을 모릅니다. 파이썬 코드는 I 출력 라벨 배열을 변환하고 싶은 ndarray C++ 벡터를 파이썬에 전달하고 뒤로

  • 과 이미지 (ndarray 필요
  • vector<vector<int>>로 검색은 아직까지 결과는 C++ 코드에서
    1. 를 부여하지 않았다 이미지가 저장됩니다) 파이썬에서 vector<vector<int>>으로 다시

    누구든지이 방법을 얻을 수 있는지 제안하십시오. 처음에는 계산 시간이 큰 문제입니다.

  • +0

    속도면에서 볼 때마다 레이블을 지정할 때마다 C++과 Python간에 변수를 앞뒤로 변환하는 데 얼마나 많은 오버 헤드가 발생합니까? 귀하의 회신에서 변수가 C++과 파이썬 사이의 참조로 전달 된 것처럼 보입니다. – Lalit

    답변

    3

    내 라이브러리 https://github.com/jzwinck/pccl/blob/master/NumPyArray.hpp을 사용하여 C++에서 기존 데이터를 사용하여 NumPy 배열을 만들 수 있습니다. 벡터에서. 그리고 파이썬에서 변경된 사항은 C++에 반영 될 것입니다. Boost.Python에 따라 다르지만 핵심 코드는 간단하며 NumPy C API를 직접 사용하므로 해당 부분 만 추출 할 수도 있습니다 (키는 PyArray_NewFromDescr).

    관련 문제