python镜头畸变校正,lensfun的包装器

lensfunp的Python项目详细描述


Linux/macOS Build StatusWindows Build Status

lensfunpy是用于lensfun库的易于使用的python包装器。

API Documentation

示例代码

如何找到相机和镜头:

importlensfunpycam_maker='NIKON CORPORATION'cam_model='NIKON D3S'lens_maker='Nikon'lens_model='Nikkor 28mm f/2.8D AF'db=lensfunpy.Database()cam=db.find_cameras(cam_maker,cam_model)[0]lens=db.find_lenses(cam,lens_maker,lens_model)[0]print(cam)# Camera(Maker: NIKON CORPORATION; Model: NIKON D3S; Variant: ;#        Mount: Nikon F AF; Crop Factor: 1.0; Score: 0)print(lens)# Lens(Maker: Nikon; Model: Nikkor 28mm f/2.8D AF; Type: RECTILINEAR;#      Focal: 28.0-28.0; Aperture: 2.79999995232-2.79999995232;#      Crop factor: 1.0; Score: 110)

如何校正镜头失真:

importcv2# OpenCV libraryfocal_length=28.0aperture=1.4distance=10image_path='/path/to/image.tiff'undistorted_image_path='/path/to/image_undist.tiff'im=cv2.imread(image_path)height,width=im.shape[0],im.shape[1]mod=lensfunpy.Modifier(lens,cam.crop_factor,width,height)mod.initialize(focal_length,aperture,distance)undist_coords=mod.apply_geometry_distortion()im_undistorted=cv2.remap(im,undist_coords,None,cv2.INTER_LANCZOS4)cv2.imwrite(undistorted_image_path,im_undistorted)

也可以通过SciPy而不是opencv应用修正。 lensfunpy.util模块 包含处理opencv和scipy的rgb图像的便利函数。

安装

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

在Linux/MacOS上从源代码安装

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

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

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

sudo apt-get install liblensfun-dev

或者从git存储库安装最新的开发人员版本:

git clone git://git.code.sf.net/p/lensfun/code lensfun
cd lensfun
cmake .
sudo make install

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

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

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

从源代码编译时,lensfun库安装在/usr/local/lib中,显然未搜索此文件夹 对于某些Linux发行版中的库,默认情况下为。 注意,在某些系统上,安装路径可能略有不同,例如/usr/local/lib/x86_64-linux-gnu/usr/local/lib64

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第三方库


热门话题
java Android测试运行失败:没有测试结果   java设置JMenuItems与Nimbus LaF的边界   java是使用springboot、Crudepository和MySQL检查重复值的好方法吗   谷歌电子表格的Java时代日期   java向xml文件添加EditText不起作用   java ORA00933:SQL命令未正确结束WHERE子句   如何在java中防止JTextField上使用CTRL+C?   java绑定到TypeLiteral在google guice中是好的还是坏的做法   java找到了原始类型,缺少泛型类的返回参数   Kafka Streams API中ArrayList Serde的java问题   java在hibernate中,哪种持久化上下文的性能更好?   java通过本机查询获取数据库url、名称和模式版本   如何为Java枚举编写通用for循环?   在Java应用程序中播放MP3   如何使用VisualVM度量短时间运行的Java应用程序的性能?   java从当前日期获取datetime(秒)   简单JMH基准中的javagrpcoome和NPE   java如何加载Maven项目库中Spring jar的应用程序上下文   JavaCC XPath解析器   用于Scala和Java的类型安全生成器库