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中调用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ASP.NET常用代码
- 下一篇: 输入框限制只能输入数字,正数、负数、0,