본문 바로가기
On Going/Computer Vision

[ECW] ECW 파일포맷을 다루고싶어!!

by 에아오요이가야 2024. 8. 6.

ECW을 앞선 포스팅으로 해결하실수 있으시다면 그거슨 축복입니다..

 

아래의 코드를 실행했을때 None이 나오지 않아야 ECW를 다룰수있는데요

from osgeo import gdal
print(gdal.__version__)
print(gdal.GetDriverByName('ECW'))

 

저는 약 10일간의 고군분투를 하고있으나 여전히 None을 return 하고있는 상황입니다..

 

# Install ECW SDK
sudo unzip erdas-ecw-sdk-5.4.0-linux.zip
sudo chmod +x ERDAS_ECWJP2_SDK-5.4.0.bin
./ERDAS_ECWJP2_SDK-5.4.0.bin
sudo cp -r ~/hexagon/ERDAS-ECW_JPEG_2000_SDK-5.4.0/Desktop_Read-Only /usr/local/hexagon

# Install PROJ
wget https://github.com/OSGeo/PROJ/releases/download/8.2.1/proj-8.2.1.tar.gz
tar xzf proj-8.2.1.tar.gz
cd proj-8.2.1
mkdir build && cd build
cmake ..
make
sudo make install

# Build GDAL with ECW support
wget https://github.com/OSGeo/gdal/releases/download/v3.4.1/gdal-3.4.1.tar.gz
tar xzf gdal-3.4.1.tar.gz
cd gdal-3.4.1
./configure --with-ecw=/usr/local/hexagon
make
sudo make install

 

이렇게 해서 해결 되신것 또한 축복입니다.

 

 

저는 gdal-x부분의 

 

./configure ~~~

 

부분에서 뭔가 문제가 있는것 같은데

 

make를 하면서 나오는 각종 오류를 해결하는 중입니다.

 

가장 주요하게 느낀부분은. gdal-x/port/cpl_config.h 파일을 수정한 것입니다.

 

수정전
/* Define to name of 64bit fseek func */
#define VSI_FSEEK64 fseek64

/* Define to name of 64bit ftell func */
#define VSI_FTELL64 ftell64


수정후
/* Define to name of 64bit fseek func */
#define VSI_FSEEK64 fseeko64

/* Define to name of 64bit ftell func */
#define VSI_FTELL64 ftello64

 

이 부분입니다. 이유는 잘 모르겠습니다.

 

어떤 파일에 는 #include~~~를 추가했던것 같고 어떤 부분은 std::를 날렸던것 같은데 기록을 안해둬서 모르겠네요..

 

일단 계속 해보겠습니다 ecw가 될때까지..

 

 

추가. 안할겁니다. 농담이고 윈도우 pc를 가진 동료에게 부탁했더니 한방에 됐습니다.

댓글