Contourlet变换的C++源码的实现
2008-11-26 13:21
267 查看
VC++实现Contourlet图像处理
关于Contourlet变换的C++源码的实现,其实已经有相关的博文介绍,上面的链接即为出处,但原文中对于LIBIT库中需要修改的地方介绍不清晰,故这里给出具体的修改手段。
编译环境:[/b]WindowsXP + VC++6.0
使用的类库:[/b]
LIBIT:http://libit.sourceforge.net/
OpenCV:http://www.opencv.org.cn/
Contourlet 源代码http://www.irisa.fr/temics/Equipe/Chappelier/contourlets.tar.gz
注意:LIBIT库新版本不支持Windows操作系统,需要下载老版本0.1.0,并作相应的修改。
具体步骤:[/b]
Step1[/b]、将生成LIBIT库的动态链接库,在工程中调用。
Step1.1:打开LIBIT库VC目录下的工程文件libit.dsw。
Step1.2: 在项目管理中的FileView中,展开libit files和libit_static files,删除其中的vlc_coding.h和vlc_coding.cpp。
Step1.3:编译libit和libit_static,分别生成libit.dll和libit_static.lib。
Step1.4:将libit.dll复制到工程目录下的debug目录;并新建lib目录,将libit_static.lib复制到该目录;
Step1.5:将LIBIT库的include目录复制到工程目录下。
Step1.6:设置工程:
Project Settings-->C/C++,Precompiled Headers设置为Not using precompiled headers,Preprocessor的Additional include directories添加include
Project Settings-->Link, Object/library modules添加libit_static.lib, Additional library path中添加lib
Step2[/b]、移植Contourlet 源代码
Step2.1:源文件中的一些类型错误的修改。
Step2.2:在源文件“dfb.cpp”中添加如下代码:
/* Set some elements of the matrix to value val */
#define Mat_set_between( m, r1, c1, r2, c2, val ) do { /
int ce = c2; /
int re = r2; /
int x, y; /
assert( m ); /
MAT_END_COL_PARAM( m, ce ); /
MAT_END_ROW_PARAM( m, re ); /
for( y = r1 ; y <= re ; y++ ) /
for( x = c1 ; x <= ce ; x++ ) /
m[ y ][ x ] = val; /
} while( 0 )
static inline bmat bmat_set_between (bmat m, int r1, int c1, int r2,
int c2, byte val) {
Mat_set_between (m, r1, c1, r2, c2, val);
return m;
}
Step3[/b]、OpenCV库的使用,添加以下代码。
#include <cv.h>
#include <highgui.h>
#pragma comment(lib,"cxcore.lib")
#pragma comment(lib,"cv.lib")
#pragma comment(lib, "highgui.lib")
关于Contourlet变换的C++源码的实现,其实已经有相关的博文介绍,上面的链接即为出处,但原文中对于LIBIT库中需要修改的地方介绍不清晰,故这里给出具体的修改手段。
编译环境:[/b]WindowsXP + VC++6.0
使用的类库:[/b]
LIBIT:http://libit.sourceforge.net/
OpenCV:http://www.opencv.org.cn/
Contourlet 源代码http://www.irisa.fr/temics/Equipe/Chappelier/contourlets.tar.gz
注意:LIBIT库新版本不支持Windows操作系统,需要下载老版本0.1.0,并作相应的修改。
具体步骤:[/b]
Step1[/b]、将生成LIBIT库的动态链接库,在工程中调用。
Step1.1:打开LIBIT库VC目录下的工程文件libit.dsw。
Step1.2: 在项目管理中的FileView中,展开libit files和libit_static files,删除其中的vlc_coding.h和vlc_coding.cpp。
Step1.3:编译libit和libit_static,分别生成libit.dll和libit_static.lib。
Step1.4:将libit.dll复制到工程目录下的debug目录;并新建lib目录,将libit_static.lib复制到该目录;
Step1.5:将LIBIT库的include目录复制到工程目录下。
Step1.6:设置工程:
Project Settings-->C/C++,Precompiled Headers设置为Not using precompiled headers,Preprocessor的Additional include directories添加include
Project Settings-->Link, Object/library modules添加libit_static.lib, Additional library path中添加lib
Step2[/b]、移植Contourlet 源代码
Step2.1:源文件中的一些类型错误的修改。
Step2.2:在源文件“dfb.cpp”中添加如下代码:
/* Set some elements of the matrix to value val */
#define Mat_set_between( m, r1, c1, r2, c2, val ) do { /
int ce = c2; /
int re = r2; /
int x, y; /
assert( m ); /
MAT_END_COL_PARAM( m, ce ); /
MAT_END_ROW_PARAM( m, re ); /
for( y = r1 ; y <= re ; y++ ) /
for( x = c1 ; x <= ce ; x++ ) /
m[ y ][ x ] = val; /
} while( 0 )
static inline bmat bmat_set_between (bmat m, int r1, int c1, int r2,
int c2, byte val) {
Mat_set_between (m, r1, c1, r2, c2, val);
return m;
}
Step3[/b]、OpenCV库的使用,添加以下代码。
#include <cv.h>
#include <highgui.h>
#pragma comment(lib,"cxcore.lib")
#pragma comment(lib,"cv.lib")
#pragma comment(lib, "highgui.lib")
相关文章推荐
- [图形学] B样条曲线 - 原理和C++实现的演示程序(附源码)
- 较高人工智能的人机博弈程序实现(多个算法结合)含C++源码
- 实现CEGUI中文汉字输入法光标跟随(C/C++源码)
- stand C++ stack 的实现源码
- QQ2008和2012截屏の实现(C++源码)
- 线性最小二乘拟合算法实现-附C++源码
- c++实现0-1背包问题完整源码(动态规划实现)
- 反转指向字符串反转C++实现源码(带测试用例)
- [150421][C++]数据结构复习——栈实现源码
- 【C++】实现日志系统(含源码)
- QQ2008和2012截屏の实现(C++源码)
- 优先队列(堆)C++实现源码
- 较高人工智能的人机博弈程序实现(多个算法结合)含C++源码
- 设计模式AbstractFactory的C++实现源码
- 设计模式adapter的C++实现源码
- 关于C++类库KYLib: 用C语言实现平衡二叉树(AVL tree)的源码
- AES加密算法(C++实现,附源码)
- 基本的HTML文本解析器的设计和实现(C/C++源码),图文并茂
- [置顶] 【C++】实现敏感词过滤算法(含源码)
- c++实现0-1背包问题完整源码(动态规划实现)