さらっと類似画像検索を試したく、phpのlibpuzzleを使おうとした時のdockerfileメモ。
FROM centos:7
RUN yum -y install gd gd-devel gcc gcc-c++ make php-devel which wget
RUN cd /usr/local/src && \
wget https://download.pureftpd.org/pub/pure-ftpd/misc/libpuzzle/releases/libpuzzle-0.11.tar.gz && \
tar -xvzf libpuzzle-0.11.tar.gz
RUN cd /usr/local/src/libpuzzle-0.11 && \
./configure --with-libpuzzle && \
make clean && \
make && \
make install
RUN cd /usr/local/src/libpuzzle-0.11/php/libpuzzle && \
phpize && \
./configure --with-libpuzzle && \
make && \
make install
RUN sed -ie '$ a extension=libpuzzle.so' /etc/php.ini
サンプル
smp.php
$a = puzzle_fill_cvec_from_file('./a.jpg');
$b = puzzle_fill_cvec_from_file('./b.jpg');
$diff1 = puzzle_vector_normalized_distance($a, $b);
echo "a-b:" . $diff1 . "\n";
# out: a-b: 0.723XXXXX
本題とは全然関係ないけど
smp.php
$img = file_get_contents("http://hoge/a.jpg");
$a = puzzle_fill_cvec_from_file($img);
```
だと上手くシグネチャを作ってくれなかった。