1.介绍
JPEG2000是图像压缩界最常用的压缩算法,而kakadu是jpeg2000最高效的实现,也是最常用的。
2.下载安装
kakadu在windows、Mac、linux(centos和ubuntu)上都有安装包,但是经过验证,Windows上安装包只能在win7及更低的系统上用,win10无法安装,所以本文在ubuntu16.04上安装使用。
更新:新的版本的kakadu已经可以在win10上用了
下载网址
ubuntu系统上的文件无需安装,直接解压即可。
3.使用
主要参考Usage_Examples.txt,
将所要压缩的图像放入软件目录下,以bmp格式为例,假设图像名称为orig.bmp。
压缩阶段:
在终端中输入:
chmod +x kdu_compress
./kdu_compress -i orig.bmp -o out.j2c -rate 0.4
目录下产生一个out.j2c的文件,这就是压缩后的文件。
上述命令中,rate代表压缩比率,即每个像素压缩到rate个bit。一般情况下灰度图是8bit,而RGB图是24bit,所以压缩倍数=bit数/rate,对于灰度图,上述命令中,压缩倍数为8/0.4=20倍。
解压缩阶段
在终端中输入:
./kdu_expand -i out.j2c -o recon.bmp
得到重建图recon.bmp。
4.注意事项
在压缩的这一步中:
./kdu_compress -i orig.bmp -o out.j2c -rate 0.4
很可能会产生报错:
error while loading shared libraries:libkdu_v7AR.so:cannot open shared object file: No such file or directory
这表示系统不知道libkdu_v7AR.so在哪里。一般而言,大多数的so文件会存放在/usr/local/lib这个目录底下,而kakadu里的这个so文件显然就是在你解压的地方。在我这里它的位置是home/kakadu.
解决方法如下:
终端输入:
sudo gedit etc/ld.so.conf.d/libc.conf
打开了libc.conf文件,添加kakadu的目录,如下:
# libc default configuration
/usr/local/lib
/home/kakadu
保存该文件之后,运行下面的命令来更新配置:
/sbin/ldconfig –
接着便可以正常使用kakadu。