環境
Source : http://pfstools.sourceforge.net/
VMware Workstation 9.0.1 build-894247
Ubuntu 12.04.3 64bits
pfstools-1.8.5
pfstmo-1.5
fftw3.3.3
ImageMagick-6.8.8-4
VMware Workstation 9.0.1 build-894247
Ubuntu 12.04.3 64bits
pfstools-1.8.5
pfstmo-1.5
fftw3.3.3
ImageMagick-6.8.8-4
安裝
1. ImageMagick
$ tar xvzf ImageMagick.tar.gz$ cd ImageMagick-6.8.8
$ ./configure
$ make
$ sudo make install
$ sudo ldconfig /usr/local/lib
verify the ImageMagick install worked properly
$ /usr/local/bin/convert logo: logo.gif
2. fftw3.3.3
$ tar zxvf fftw-3.3.3.tar.gz
$ cd fftw-3.3.3/
$ ./configure
$ make
$ sudo make install
3. pfstmo-1.5
$ ./configure --prefix=$HOME/local PFS_LIBS=$HOME/local/lib PFS_CFLAGS=$HOME/local/include/pfs-1.2
PFStmo is now configured
Source directory: .
Installation prefix: /home/bevis/local
C++ compiler: g++ -O3 -fopenmp -ffast-math -ftree-vectorize -mfpmath=sse,387 -DBRANCH_PREDICTION
LIBS:
fftw3f: no
LIBS:
fftw3: yes
LIBS: -L/usr/local/lib -lfftw3 -lm
GSL: no
The following command(s) WILL NOT be compiled: pfstmo_mantiuk08
Debug mode: no
注意上面fftw3f沒有找到,不知道是否有影響
另外少了gsl因此安裝
$ sudo apt-get install gsl-bin gsl-ref-html
$ sudo apt-get install libgsl0ldbl libgsl0-dev
Source directory: .
Installation prefix: /home/bevis/local
C++ compiler: g++ -O3 -fopenmp -ffast-math -ftree-vectorize -mfpmath=sse,387 -DBRANCH_PREDICTION
LIBS:
fftw3f: no
LIBS:
fftw3: yes
LIBS: -L/usr/local/lib -lfftw3 -lm
GSL: yes
LIBS: -lgsl -lgslcblas -lm
CFLAGS:
Debug mode: no
如此就可以找到,但是make會錯誤,因為pfs使用pkgconfig工作,因此回頭看pfstools產生的.pc,放到系統pkgconfig資料夾下
bevis@ubuntu:~/Desktop/pfstmo/pfstmo-1.5$ ls /usr/local/lib/pkgconfig
fftw3.pc ImageMagick.pc MagickCore.pc MagickWand.pc Wand.pc
ImageMagick-6.Q16.pc MagickCore-6.Q16.pc MagickWand-6.Q16.pc Wand-6.Q16.pc
bevis@ubuntu:~/local/lib/pkgconfig$ sudo cp pfs.pc /usr/local/lib/pkgconfig
[sudo] password for bevis:
bevis@ubuntu:~/local/lib/pkgconfig$ ls /usr/local/lib/pkgconfig
fftw3.pc ImageMagick.pc MagickCore.pc MagickWand.pc Wand-6.Q16.pc
ImageMagick-6.Q16.pc MagickCore-6.Q16.pc MagickWand-6.Q16.pc pfs.pc Wand.pc
bevis@ubuntu:~/local/lib/pkgconfig$
關於pkgconfig可以參考這兩篇
簡介 pkg-config 的功能與用法
理解 pkg-config 工具
重新config
$ ./configure --prefix=$HOME/local
$ make
這次編譯完還是有錯誤
/usr/bin/ld: cannot find -lfftw3_threads
collect2: ld returned 1 exit status
make[3]: *** [pfstmo_fattal02] Error 1
make[3]: Leaving directory `/home/bevis/Desktop/pfstmo/pfstmo-1.5/src/fattal02'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/bevis/Desktop/pfstmo/pfstmo-1.5/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/bevis/Desktop/pfstmo/pfstmo-1.5'
make: *** [all] Error 2
回頭查
http://www.fftw.org/fftw3_doc/Installation-on-Unix.html#Installation-on-Unix
有個thread選項 --enable-threads,先前我們沒選
因此又重編fftw3 with thread
bevis@ubuntu:~/Desktop/fftw-3.3.3$ ./configure --enable-threads
make && sudo make install
然後回來編譯pfstmo就會成功了..
bevis@ubuntu:~/Desktop/pfstmo/pfstmo-1.5$ make clean
bevis@ubuntu:~/Desktop/pfstmo/pfstmo-1.5$ make && make install
4. check
bevis@ubuntu:~/local/bin$ pwd
/home/bevis/local/bin
bevis@ubuntu:~/local/bin$ ls
pfsabsolute pfsflip pfsinrgbe pfspanoramic pfstmo_fattal02
pfscat pfsgamma pfsout pfsrotate pfstmo_mantiuk06
pfsclamp pfsin pfsoutffmpeg pfssize pfstmo_mantiuk08
pfscut pfsindcraw pfsoutpfm pfstag pfstmo_pattanaik00
pfsdisplayfunction pfsinmulti pfsoutrgbe pfstmo_drago03 pfstmo_reinhard02
編好了,首先測試fattal 2002的作法
使用方法可以這樣看
bevis@ubuntu:~/local$ man share/man/man1/pfstmo_fattal02.1
網頁可以來這裡看 http://pfstools.sourceforge.net/man1/pfstmo_fattal02.1.html
嘗試bevis@ubuntu:~/local/bin$ pfsin mpi_office.hdr | pfstmo_fattal02 -v -t | pfsout memorial.png
The program 'pfstmo_fattal02' is currently not installed. You can install it by typing:
sudo apt-get install pfstmo
The program 'pfsin' is currently not installed. You can install it by typing:
sudo apt-get install pfstools
The program 'pfsout' is currently not installed. You can install it by typing:
sudo apt-get install pfstools
無法執行,忘了把環境變數的路徑export出去 (參考 撰寫環境變數設定檔、如何設定環境路徑)
bevis@ubuntu:~/local/bin$ export PATH="/home/bevis/local/bin:$PATH"
bevis@ubuntu:~/local/bin$ pfsin mpi_office.hdr | pfstmo_fattal02 -v -t | pfsout memorial.png
還是有錯
/home/bevis/local/bin/pfsout: line 111: pfsoutppm: command not found
/home/bevis/local/bin/pfsout: line 111: pnmtopng: command not found
安裝需要的東西
bevis@ubuntu:~/local/bin$ sudo apt-get install pnmtopng
還少pfsoutppm 不知道怎麼缺的
待續
ppm 可能來自PBM formats (PPM, PNM or PGM) ,因此我們嘗試安裝
安裝sudo apt-get install libNetPBM9
回頭pfstool重編
qt也順便用apt-get 裝上去: libqt4-gui
$ tar xvzf ImageMagick.tar.gz$ cd ImageMagick-6.8.8
$ ./configure
$ make
$ sudo make install
$ sudo ldconfig /usr/local/lib
verify the ImageMagick install worked properly
$ /usr/local/bin/convert logo: logo.gif
2. fftw3.3.3
$ tar zxvf fftw-3.3.3.tar.gz
$ cd fftw-3.3.3/
$ ./configure
$ make
$ sudo make install
3. pfstmo-1.5
$ ./configure --prefix=$HOME/local PFS_LIBS=$HOME/local/lib PFS_CFLAGS=$HOME/local/include/pfs-1.2
PFStmo is now configured
Source directory: .
Installation prefix: /home/bevis/local
C++ compiler: g++ -O3 -fopenmp -ffast-math -ftree-vectorize -mfpmath=sse,387 -DBRANCH_PREDICTION
LIBS:
fftw3f: no
LIBS:
fftw3: yes
LIBS: -L/usr/local/lib -lfftw3 -lm
GSL: no
The following command(s) WILL NOT be compiled: pfstmo_mantiuk08
Debug mode: no
注意上面fftw3f沒有找到,不知道是否有影響
另外少了gsl因此安裝
$ sudo apt-get install gsl-bin gsl-ref-html
$ sudo apt-get install libgsl0ldbl libgsl0-dev
Source directory: .
Installation prefix: /home/bevis/local
C++ compiler: g++ -O3 -fopenmp -ffast-math -ftree-vectorize -mfpmath=sse,387 -DBRANCH_PREDICTION
LIBS:
fftw3f: no
LIBS:
fftw3: yes
LIBS: -L/usr/local/lib -lfftw3 -lm
GSL: yes
LIBS: -lgsl -lgslcblas -lm
CFLAGS:
Debug mode: no
如此就可以找到,但是make會錯誤,因為pfs使用pkgconfig工作,因此回頭看pfstools產生的.pc,放到系統pkgconfig資料夾下
bevis@ubuntu:~/Desktop/pfstmo/pfstmo-1.5$ ls /usr/local/lib/pkgconfig
fftw3.pc ImageMagick.pc MagickCore.pc MagickWand.pc Wand.pc
ImageMagick-6.Q16.pc MagickCore-6.Q16.pc MagickWand-6.Q16.pc Wand-6.Q16.pc
bevis@ubuntu:~/local/lib/pkgconfig$ sudo cp pfs.pc /usr/local/lib/pkgconfig
[sudo] password for bevis:
bevis@ubuntu:~/local/lib/pkgconfig$ ls /usr/local/lib/pkgconfig
fftw3.pc ImageMagick.pc MagickCore.pc MagickWand.pc Wand-6.Q16.pc
ImageMagick-6.Q16.pc MagickCore-6.Q16.pc MagickWand-6.Q16.pc pfs.pc Wand.pc
bevis@ubuntu:~/local/lib/pkgconfig$
關於pkgconfig可以參考這兩篇
簡介 pkg-config 的功能與用法
理解 pkg-config 工具
重新config
$ ./configure --prefix=$HOME/local
$ make
這次編譯完還是有錯誤
/usr/bin/ld: cannot find -lfftw3_threads
collect2: ld returned 1 exit status
make[3]: *** [pfstmo_fattal02] Error 1
make[3]: Leaving directory `/home/bevis/Desktop/pfstmo/pfstmo-1.5/src/fattal02'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/bevis/Desktop/pfstmo/pfstmo-1.5/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/bevis/Desktop/pfstmo/pfstmo-1.5'
make: *** [all] Error 2
回頭查
http://www.fftw.org/fftw3_doc/Installation-on-Unix.html#Installation-on-Unix
有個thread選項 --enable-threads,先前我們沒選
因此又重編fftw3 with thread
bevis@ubuntu:~/Desktop/fftw-3.3.3$ ./configure --enable-threads
make && sudo make install
然後回來編譯pfstmo就會成功了..
bevis@ubuntu:~/Desktop/pfstmo/pfstmo-1.5$ make clean
bevis@ubuntu:~/Desktop/pfstmo/pfstmo-1.5$ make && make install
4. check
bevis@ubuntu:~/local/bin$ pwd
/home/bevis/local/bin
bevis@ubuntu:~/local/bin$ ls
pfsabsolute pfsflip pfsinrgbe pfspanoramic pfstmo_fattal02
pfscat pfsgamma pfsout pfsrotate pfstmo_mantiuk06
pfsclamp pfsin pfsoutffmpeg pfssize pfstmo_mantiuk08
pfscut pfsindcraw pfsoutpfm pfstag pfstmo_pattanaik00
pfsdisplayfunction pfsinmulti pfsoutrgbe pfstmo_drago03 pfstmo_reinhard02
編好了,首先測試fattal 2002的作法
使用方法可以這樣看
bevis@ubuntu:~/local$ man share/man/man1/pfstmo_fattal02.1
網頁可以來這裡看 http://pfstools.sourceforge.net/man1/pfstmo_fattal02.1.html
嘗試bevis@ubuntu:~/local/bin$ pfsin mpi_office.hdr | pfstmo_fattal02 -v -t | pfsout memorial.png
The program 'pfstmo_fattal02' is currently not installed. You can install it by typing:
sudo apt-get install pfstmo
The program 'pfsin' is currently not installed. You can install it by typing:
sudo apt-get install pfstools
The program 'pfsout' is currently not installed. You can install it by typing:
sudo apt-get install pfstools
無法執行,忘了把環境變數的路徑export出去 (參考 撰寫環境變數設定檔、如何設定環境路徑)
bevis@ubuntu:~/local/bin$ export PATH="/home/bevis/local/bin:$PATH"
bevis@ubuntu:~/local/bin$ pfsin mpi_office.hdr | pfstmo_fattal02 -v -t | pfsout memorial.png
還是有錯
/home/bevis/local/bin/pfsout: line 111: pfsoutppm: command not found
/home/bevis/local/bin/pfsout: line 111: pnmtopng: command not found
安裝需要的東西
bevis@ubuntu:~/local/bin$ sudo apt-get install pnmtopng
還少pfsoutppm 不知道怎麼缺的
待續
ppm 可能來自PBM formats (PPM, PNM or PGM) ,因此我們嘗試安裝
安裝sudo apt-get install libNetPBM9
回頭pfstool重編
qt也順便用apt-get 裝上去: libqt4-gui