一个简单的Python模块,包含一个用C++优化的原地线性排名滤波器。
项目描述
Rank Filter
动机
此软件包旨在提供一个高效的C++编写的线性排名滤波器,并带有Python绑定。它可以接受单精度或双精度浮点数作为输入。这是必需的,因为在SciPy中发现的等效百分位数滤波器被发现太慢且过于通用。VIGRA中没有等效的。
需求
为了构建此软件包,需要以下需求。
Python (2.7.x 或 3.5.x)
Boost (1.56.0 或更高版本)
NumPy (1.7.0 或更高版本)
Cython (0.23.0 或更高版本)
Setuptools (18.0 或更高版本)
安装
最简单的方法是安装我们的 conda 软件包。或者,也可以从 pip 安装,但需要C++编译器和较新版本的 setuptools。
构建
有多种方法可以构建此软件包。
标准的Python构建和安装。
Conda配方构建和安装。
CMake构建和安装。
任何这些形式的纯安装基本上应该是等效的。
入门
要开始,只需克隆存储库并将目录更改为存储库。
git clone https://github.com/nanshe-org/rank_filter cd rank_filter
使用Python
要直接使用Python构建/安装,只需运行以下命令。
python setup.py install
使用Conda
要使用Conda构建/安装,只需运行以下命令。
conda build rank_filter.recipe conda install --use-local rank_filter.
使用CMake
为了找到Boost包含文件和库,必须将安装Boost的目录设置为BOOST_ROOT。
cmake -DBOOST_ROOT=<path-to-Boost-root> .
此外,如果这些变量在环境中已设置,则CMake安装程序也会获取它们。
export BOOST_ROOT=<path-to-Boost-root> cmake .
此外,可以通过使用PYTHON_EXECUTABLE变量来设置首选的Python解释器。
检查
在构建Python绑定之前,检查C++代码是否通过其自己的测试套件是有意义的。可以使用以下命令使用make来完成。这一步不是必需的,但在构建时总是会运行。这些测试并不能保证Python模块会正常工作。它们只是验证C++代码是否正常工作。
make check
构建
使用make可以轻松地完成构建。这将在slib目录中创建一个共享对象,该对象可以作为模块被Python导入。如检查部分所述,将首先运行C++测试。如果它们失败,则不会构建Python模块。它们并不保证Python模块会工作。相反,测试阶段可以用来验证模块。
make
测试
一旦构建了Python模块,就值得测试它是否正常工作。可以使用以下命令使用make来完成。与C++测试不同,这些是使用nose运行的Python测试。这些测试是C++测试的Python等价物。它们不仅验证基本命令是否运行,而且还确保只有正确的结果才会通过。
make test
安装
构建和测试后,就是安装的时候了。使用make,以下命令将模块安装到指定的Python的site-package文件夹中,允许使用该Python导入此模块。
make install
清理
有关清理有一些额外的选项。可以清理所有构建中间文件(包括CMake生成的文件),只留下最终构建产品。这是通过以下方式实现的。
make distclean
如果希望同时消除构建产品和所有中间文件,则可以使用以下方式。
make reset
项目详情
rank_filter-0.5.2.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 1dbd3ee93168ad0a61599adf31c2959a48830d122c82e91cb3d2df2af67745ea |
|
MD5 | 6b7a0351e2f53726cc00ad86bf8c728d |
|
BLAKE2b-256 | 030678e699a64bdf7bb5ea5b304725a4399beedb303d477898fc458cf52db82e |