日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Windows 配置libjpeg-turbo并在python中调用

發布時間:2023/12/9 python 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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中调用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。