Windows 配置libjpeg-turbo并在python中调用
0.为啥
复现Pytorch-SiamFC里的可视化的时候遇到的错误
在python中调用jpeg4py相关库的时候报错
AttributeError: 'JPEG' object has no attribute 'decompressor'
查看里面的代码
首先它
import jpeg4py as jpeg
然后再decode的时候报错
jpeg.JPEG(img_path).decode()
究其原因是它不能load libjpeg-turbo library
也就是 libjpeg-turbo 库我的电脑里没有
所以就要安装这个库,libjpeg-turbo是与libjpeg接口兼容的一个jpeg编/解码库,其主要的特点就是利用SIMD指令(如X86架构的MMX/SSE/SSE2,ARM架构的NEON)来加速jpeg图像的编/解码,相比被广泛使用的libjpeg,编码和解码性能提高2~4倍左右。
1.安装NASM
因为libjpeg-turbo的源代码中用到了SIMD汇编指令,所以要编译源代码,就要先安装NASM,我下的是win64的下载链接,以管理员身份运行,默认路径即可,然后将其添加到环境变量中。
2.编译libjpeg-turbo
然后在从github上下载libjpeg-turbo的源码,解压后,进入D:\libjpeg-turbo\libjpeg-turbo-master
创建一个build文件夹,打开CMAKE(如果没有安装就去官网下一个安装就行)。
Where is the source code : D:/libjpeg-turbo/libjpeg-turbo-master
Where to build the binaries: D:/libjpeg-turbo/libjpeg-turbo-master/build
点击configure 然后会让你选择编译器,我的编译器是vs2015,选择的是Visual Studio 14 2015 Win64
这里选不对就会报错。没报错就很棒!
点击 Generate
然后打开../build 看到里面由好多的文件,打开ALL_BUILD.vcxproj
在vs2015中打开后,选择release ----点击生成----生成解决方案
成功,这时候,你再打开.../build/Release文件夹,就会发现生成很多 .exe .lib .dll
其中我最想要的是turbojpeg.dll
3.重新安装jpeg4py
下载源码-----github链接
解压,然后进入.../jpeg4py-master 中,打开.../jpeg4py-master\src\jpeg4py中的_cffi.py文件
用notepad++打开就行
拉到最下
将你刚刚生成的文件的路径写上去,注意斜杠!
然后回到.../jpeg4py-master 中右键+shift 打开power shell 输入python setup.py install
安装完成!
(其实我觉得这步可以换成,将turbojpeg.dll拷贝到C:\WINDOWS\system32试试,我没试~)
4.普通测试
你可以随便找一个jpeg格式的图片,放在某个路径中,然后输入
F:\tracker_programe\Pytorch-SiamFC-master>python
Python 3.6.6 |Anaconda, Inc.| (default, Jun 28 2018, 11:27:44) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import jpeg4py as jpeg
>>> jpeg.JPEG("001.jpg").decode()
然后会显示
array([[[192, 199, 209],[192, 199, 209],[192, 199, 209],...,[192, 199, 209],[192, 199, 209],[192, 199, 209]],[[192, 199, 209],[192, 199, 209],[192, 199, 209],...,[192, 199, 209],[192, 199, 209],[192, 199, 209]],[[192, 199, 209],[192, 199, 209],[192, 199, 209],...,[192, 199, 209],[192, 199, 209],[192, 199, 209]],...,[[192, 199, 209],[192, 199, 209],[192, 199, 209],...,[192, 199, 209],[192, 199, 209],[192, 199, 209]],[[192, 199, 209],[192, 199, 209],[192, 199, 209],...,[192, 199, 209],[192, 199, 209],[192, 199, 209]],[[192, 199, 209],[192, 199, 209],[192, 199, 209],...,[192, 199, 209],[192, 199, 209],[192, 199, 209]]], dtype=uint8)
这就已经成功了!
5.我自己的调用
我是在跟踪问题调用的---pytorch版的SiamFC
在可视化的时候遇到的这个问题
在问题解决以后
我再输入
python vis_app.py -d F:\tracker_programe\ILSVRC2015_VID\ILSVRC2015 -n best.pth.tar -t train -s 10
结果:
Windows 配置libjpeg-turbo并在python中调用相关推荐
- 如何在Python中调用Windows的cmd命令?
简 介: 利用os,commands,subprocess模块可以在python中调用windows中的命令.从使用方便性上来看,利用os.popen可以执行windows的程序并可以获得返回内容. ...
- python r语言 结合 部署_(转)python中调用R语言通过rpy2 进行交互安装配置详解...
python中调用R语言通过rpy2 进行详解 1.R语言的安装: 大家进行R语言的安装,在安装好R后,需要配置环境变量R才能进行使用. 对此电脑右键->选择高级设置->环境变量-> ...
- 一文实现:在python中调用matlab程序,保姆级安装windows环境下的matlab.engine教程
一.前言 我最近在做一个基于图像融合的目标检测工程,我经常用matlab去研究和创新新型的图像融合算法,因为matlab有着python所不可比拟的数据可视化功能和大量的滤波分解框架包:在目标检测 ...
- linux系统下Opencv4.1.1编译安装,以及增加子函数和python中调用
目录 Table of Contents 目录 一 源码编译和安装 添加opencv路径 二 增加并列子函数的方法 三 增加库函数形参的方法 四 cv增加子函数一些数据变量的问题 4.1 数据类型 一 ...
- python调用simulink_[Python-MATLAB] 在Python中调用MATLAB的API
可以参考官方的说明文档: MATLAB Engine API的使用文档: 原材料: 1.MATLAB 2015a 32位的 2.Python 2.7.13 32位的 安装: 1.运行cmd,切 ...
- 如何在Python中调用MATLAB
最近在实验室做点杂活,一点声音的生成.录音.处理工作.鉴于实验内容需要,不得不找点办法在MATLAB和Python之间建个接口,从Python中调用MATLAB脚本或者是MATLAB的函数.内容不是很 ...
- 在Python中调用C/C++:cython及pybind11
在Python中调用C/C++:cython及pybind11 转自:https://zhuanlan.zhihu.com/p/442935082 Python写起来非常方便, 但面对大量for循环的 ...
- 在python中调用js或者nodejs要使用PyExecJs第三方包。
在python中调用js或者nodejs要使用PyExecJs第三方包. 使用时:import execjs 这是没有用到nodejs的情况:如果用到nodejs,这种写法会报"Cannot ...
- python中调用c库
python中调用c库 2013-04-23 15:34:52| 分类: python核心编程 | 标签:python makefile |举报 |字号 订阅 参考地址:http://my. ...
- python中调用C++函数
python中调用C++函数 无参调用 单变量传入与返回调用 numpy数组传入与返回调用 c++类调用 用python写不香吗?还这么复杂调用C++? 一. 无参调用 在python中调用无参数和无 ...
最新文章
- JavaScript初学者编程题(16)
- 数据集神经网络共同进步
- 你真的懂用户画像吗?
- 报错org.apache.htrace htrace-core4 4.1.0 incubating htrace-core4.jar 报错spark
- python五子棋人机对战_Python:游戏:五子棋之人机对战
- 加强版!利用python自动发送邮件
- 无法远程连接阿里云的Mysql
- hwclock(Linux)
- 微信卡券的创建、领取、核销
- C指针 取地址符 取值符*
- 【转】Mac QQ截图保存在哪里?
- nginx转发https网页加载http图片乱码问题
- 区块链的隐私保护问题
- 客户消费积分管理系统的设计与实现
- django学习笔记(五)------path
- 工具 | 分享一个很酷的上位机软件
- java ajax 输出_正本清源:所谓Ajax输出的三种形式
- 物联网设备数据流转之数据如何导出:Excel文件
- 技术改造奖补,湖北省技术改造项目奖励补贴标准和申报
- Linux---nginx+ffmpeg搭建流媒体服务器