python的原始图像处理,libraw的包装器

rawp的Python项目详细描述


Linux/macOS Build StatusWindows Build Status

rawpy是用于LibRaw库的易于使用的python包装器。 它还包含一些查找和修复热/死像素的额外功能。

API Documentation

Jupyter notebook tutorials

示例代码

加载原始文件并使用默认参数保存后处理图像:

importrawpyimportimageiopath='image.nef'withrawpy.imread(path)asraw:rgb=raw.postprocess()imageio.imsave('default.tiff',rgb)

另存为16位线性图像:

withrawpy.imread(path)asraw:rgb=raw.postprocess(gamma=(1,1),no_auto_bright=True,output_bps=16)imageio.imsave('linear.tiff',rgb)

使用多个原始文件查找错误像素并修复它们:

importrawpy.enhancepaths=['image1.nef','image2.nef','image3.nef']bad_pixels=rawpy.enhance.find_bad_pixels(paths)forpathinpaths:withrawpy.imread(path)asraw:rawpy.enhance.repair_bad_pixels(raw,bad_pixels,method='median')rgb=raw.postprocess()imageio.imsave(path+'.tiff',rgb)

安装

python 2.7、3.4、3.5和3.6提供了用于linux、macos和windows的二进制控制盘。 这些可以用简单的pip install rawpy安装。 目前,Linux和MacOS控制盘仅提供64位版本。

在Linux/MacOS上从源代码安装

如果您需要使用特定的libraw版本,或者您不能使用提供的二进制轮子 然后按照本节中的步骤从源代码构建rawpy。

首先,在系统上安装LibRaw库。

在ubuntu上,您可以使用以下命令获得(过时的)版本:

sudo apt-get install libraw-dev

或者从源存储库安装最新版本:

git clone https://github.com/LibRaw/LibRaw.git libraw
git clone https://github.com/LibRaw/LibRaw-cmake.git libraw-cmake
cd libraw
git checkout 0.19.0
cp -R ../libraw-cmake/* .
cmake .
sudo make install

之后,使用pip install rawpy --no-binary rawpy安装rawpy。

如果出现错误“importorror:libraw.so:无法打开共享对象文件:没有这样的文件或目录” 尝试使用rawpy时,请执行以下操作:

echo"/usr/local/lib"| sudo tee /etc/ld.so.conf.d/99local.conf
sudo ldconfig

libraw库安装在/usr/local/lib中(如果手动安装),显然没有搜索此文件夹 对于某些Linux发行版中的库,默认情况下为。

numpy依赖性

拉比依赖于努比。支持的最低numpy版本取决于您的python版本:

PythonNumPy
2.7>= 1.7
3.4>= 1.8
3.5>= 1.9
3.6>= 1.11
3.7>= 1.14

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
JavaSpringbean已创建但未自动连接   java LibGDX游戏在三星Galaxy Grand Prime上结束   如何在Java中列出字符串句子中所有匹配条件的单词   java在Recyclerview中使用“putExtra”传递数据   java从一个特定的数组中提取特定的JSON对象,以便在Android中通过一个意图放入另一个活动   java需要使用IntelliJ和设置项目SDK的帮助   java springcontextindexer和Swagger 3   java使用indexOf和substring计算数字   java使用xml解析在word文档中查找隐式分页符   在添加<context:componentscan basepackage=“com.young.user”/   java无条件更改JTable单元格的背景色   选择列表中的java调用oracle函数:节点无数据类型   java如何添加缓冲图像作为JFrame的背景,然后在此图像上添加面板?   java Javadoc找不到用scala编写的类   java连接到文件共享程序的IP地址   java将数组元素加载到集合中   Tomcat中的java servlet、过滤器和线程   非Bean对象中的java EJB CDI注入?   java与println和printf的不同舍入