linux下dcmtk-3.6.1_20161102+openjpeg的编译
来源:互联网 发布:java为什么使用接口 编辑:程序博客网 时间:2024/06/10 20:36
1.解压
unzip dcmtk-3.6.1_20161102+openjpeg.zip
2.进入目录
cd dcmtk-3.6.1_20161102+openjpeg
3.创建build目录
mkdir build
4.进入build目录
cd build/
5.ccmake
ccmake ..
6.修改配置
BUILD_APPS OFF
BUILD_SHARED_LIBS ON
7.make编译,到45%遇到如下错误
/opt/dcmtk-3.6.1_20161102+openjpeg/dcmjpeg/libsrc/j2k_lib.cxx:27:21: 致命错误:windows.h:没有那个文件或目录
#include <windows.h>
8.修改
编辑文件/opt/dcmtk-3.6.1_20161102+openjpeg/dcmjpeg/libsrc/j2k_lib.cxx
修改成如下形式
//#include <windows.h>
#include <sys/types.h>
#include <sys/time.h>
#include <sys/resource.h>
9.安装
make install
10.cp -r /usr/local/lib/* /opt/compress/lib/复制库文件到指定目录
11.进入预加载配置目录
cd /etc/ld.so.conf.d/
12.编辑dcmtk.conf
vim dcmtk.conf
内容/opt/compress/lib
13.ldconfig加载配置
14..接下来编写解压缩程序#include "dcmtk/ofstd/ofstream.h"
#include "dcmtk/dcmpstat/dvpsdef.h" /* for constants */
#include "dcmtk/dcmpstat/dviface.h" /* for DVInterface */
#include "dcmtk/ofstd/ofstring.h" /* for OFString */
#include "dcmtk/ofstd/ofbmanip.h" /* for OFBitmanipTemplate */
#include "dcmtk/ofstd/ofdatime.h" /* for OFDateTime */
#include "dcmtk/dcmdata/dcuid.h" /* for dcmtk version name */
#include "dcmtk/dcmdata/cmdlnarg.h" /* for prepareCmdLineArgs */
#include "dcmtk/ofstd/ofconapp.h" /* for OFConsoleApplication */
#include "dcmtk/dcmimgle/dcmimage.h"
#include "dcmtk/dcmpstat/dvpspr.h"
#include "dcmtk/dcmpstat/dvpssp.h"
#include "dcmtk/dcmpstat/dvpshlp.h" /* for class DVPSHelper */
#include "dcmtk/ofstd/ofstd.h"
#include "dcmtk/config/osconfig.h"
#include "dcmtk/dcmdata/dctk.h"
#include "dcmtk/dcmdata/dcistrmf.h"
#include "dcmtk/dcmdata/libi2d/i2dbmps.h"
#include "dcmtk/dcmdata/dcpxitem.h"
#include "dcmtk/dcmjpeg/djdecode.h"
#include "dcmtk/dcmdata/dcvrfd.h"
#include "dcmtk/dcmjpeg/djencode.h"
#include "dcmtk/dcmjpeg/djrplol.h"
#include <iostream>
#include <string>
int main(int argc,char *argv[])
{
if(argc!=3){
std::cout << "illegal parameters" << std::endl;
return -1;
}
char* dcmPath= argv[1];
char* compressPath = argv[2];
DJDecoderRegistration::registerCodecs(); // register JPEG codecs
DcmFileFormat fileformat;
if (fileformat.loadFile(dcmPath).good())
{
DcmDataset *dataset = fileformat.getDataset();
// decompress data set if compressed
dataset->chooseRepresentation(EXS_LittleEndianExplicit, NULL);
// check if everything went well
if (dataset->canWriteXfer(EXS_LittleEndianExplicit))
{
fileformat.saveFile(compressPath, EXS_LittleEndianExplicit);
}
}
DJDecoderRegistration::cleanup();
return 0 ;
}
15.编译文件
g++ uncompress.cpp -DHAVE_CONFIG_H -I/usr/local/include -L/usr/local/lib/ -pthread -lz -lcharls -lcmr -ldcmdata -ldcmdsig -ldcmfg -ldcmimage -ldcmimgle -ldcmiod -ldcmjpeg -ldcmjpls -ldcmnet -ldcmpmap -ldcmpstat -ldcmqrdb -ldcmrt -ldcmseg -ldcmsr -ldcmtls -ldcmtract -ldcmwlm -li2d -lijg12 -lijg16 -lijg8 -loflog -lofstd -o uncompress
16..运行并测试程序./uncompress /opt/a.dcm /opt/b.dcm 其中a.dcm是待处理文件,b.dcm是处理后的文件
- linux下dcmtk-3.6.1_20161102+openjpeg的编译
- linux下编译dcmtk的Android版本
- linux下编译dcmtk的Android版本
- Qt5.5.0环境下的mingw编译dcmtk 3.6.1_20150924
- windows下编译dcmtk的Android版本
- windows下编译dcmtk的Android版本
- DCMTK的编译总结
- mingw(gcc)编译openjpeg
- linux下使用dcmtk记录
- [搬家]DCMTK的编译总结
- 编译DCMTK
- 编译dcmtk
- 编译DCMTK
- 编译DCMTK
- DCMTK编译
- dcmtk 编译
- 关于 VC 2005编译DCMTK的问题
- DCMTK的编译及设置for VS2005
- 指针练习-15
- 多线程
- c++编程练习记录
- JavaWeb项目的classpath说明
- 领域驱动设计之实体、值对象、领域服务
- linux下dcmtk-3.6.1_20161102+openjpeg的编译
- intelliJ IDEA 中edit configurations加号找不到tomcat server
- 清除wnTKYg 挖矿工木马的过程?
- javascript06--数组方法用法以及严格模式
- python3.5对字典按照key/value排序
- 关于百度地图 DrivingRoute moreResultsUrl为“未能找到相应结果,请您:返回上一步操作..” 以及 WalkingRoute moreResultsUrl为空 的解决方案
- 【腾讯TMQ】【AI专栏】语音合成系统评测介绍
- springboot 修改内置端口
- 1068. Find More Coins (30) 01背包