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

歡迎訪問 生活随笔!

生活随笔

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

python

【项目实战】——Python打包正装换底色代码为exe文件(可在其他无Python环境下运行)

發布時間:2023/12/10 python 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【项目实战】——Python打包正装换底色代码为exe文件(可在其他无Python环境下运行) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

1.安裝pyinstaller

2.生成.exe文件

方法1:

方法2:

方法3:

(1)使用命令行窗口進入項目的根目錄

(2)在改目錄下執行pyi-makespec main.py(main.py是你的主入口文件)

(3)修改main.spec文件

(4)執行 pyinstaller -F main.spec命令

(5)在dist/main文件夾里面點擊.exe文件

參考:

不同博主關于生成exe文件的文章

bug解決

生成圖標



1.安裝pyinstaller

我這里是使用清華的鏡像下載的,因為直接使用 pip install 速度會慢一點,使用國內的鏡像網站那速度可蹭蹭的快啊。

pip install -i http://pypi.douban.com/simple/ pyinstaller



2.生成.exe文件

方法1:

### pyinstaller 所有需要打包的py文件 -p 環境site-packages絕對路徑

### 注意:py文件的路徑需要以第一個py文件為準
pyinstaller Voc_xml_expander.py dataTransform.py Voc_xml_expander_logic.py
images_transform.py labels_transform.py -p D:\softwares_install\Anaconda3\envs\Train\Lib\site-packages

方法2:

最直接的方法:

pyinstaller -F -w 主py文件的絕對路徑 pyinstaller -F -w C:\Users\...\Main.py

方法3:

其他比較全面的方法


(1)使用命令行窗口進入項目的根目錄


我這里就是 進入到E:\ljl\bank。


(2)在改目錄下執行pyi-makespec main.py(main.py是你的主入口文件)

執行完畢之后,會生成一個main.spec文件


(3)修改main.spec文件

剛開始main.spec文件打開后是

1.要在第一行,也就是a = Analysis([‘main.py’])這里面添加你的所有的.py文件,注意是所有的而且只能是.py文件,第一個是代碼你的入口文件。
另外假如.py文件不是與你的主入口文件main.py文件在同一個目錄下,那么該文件要寫絕對路徑。
2.修改datas(放一些圖片音頻等文件),這里面是放非.py文件,這里是以元組的形式,(“文件夾的絕對路徑”,“文件夾名”)注意這里不是寫具體的文件名,而是文件夾。

下面是我修改過后的:

我這里data里面有一個.txt文件,像什么照片啦,音頻啦同樣的道理。


(4)執行 pyinstaller -F main.spec命令

在界面中輸入 pyinstaller -F -w -i tubiao.ico pyexe.spec(-i 后面跟著的是exe程序的圖標,最后跟.spec文件)

(-F:產生一個文件;-w:使用Windows子系統執行,不會打開命令行)

pyinstaller -F mycode.py --noconsole

還可以這樣pyinstaller -F -w mycode.spec (-w就是取消窗口)

這時候會生成兩個文件夾,build和dist。然后.exe文件就在里面,快點開看看吧。


(5)在dist/main文件夾里面點擊.exe文件

哇塞,好厲害喲,下次就直接把這個文件夾發給比人就好啦。

import cv2 import numpy as np import os#使用os的path模塊來獲得桌面的路徑 def desktop_path():return os.path.join(os.path.expanduser('~'),"Desktop") # print(desktop_path())#收集用戶需要輸入的參數 def inputParams():path = input("輸入需要換底色的正裝照絕對路徑:")orignColor = input("輸入當前正裝照的底色:藍色——b,紅色——r:")changedColor = input("輸入需要換成正裝照的底色:藍色——b,紅色——r,白色——w:")return path,orignColor,changedColor#藍底換成其他的顏色 def Blue2Others(path,changedColor):img = cv2.imread(path)# 圖像縮放img = cv2.resize(img, None, fx=0.5, fy=0.5)rows, cols, channels = img.shape# 圖片轉換為灰度圖hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)# 圖片的二值化處理,可能會出現噪聲(白點),有的圖片顯示的很明顯,這就需要我們進行腐蝕或膨脹。lower_blue = np.array([70, 70, 70])upper_blue = np.array([110, 255, 255])mask = cv2.inRange(hsv, lower_blue, upper_blue) # 藍色范圍內變白,其余之外全部變黑# 腐蝕膨脹,主要用于去處噪聲erode = cv2.erode(mask, None, iterations=1) # 進行腐蝕操作dilate = cv2.dilate(erode, None, iterations=1) # 進行膨脹操作# 遍歷每個像素點,進行顏色的替換for i in range(rows):for j in range(cols):if dilate[i, j] == 255: # 像素點為255表示的是白色,此處將白色處的像素點替換為紅色(將if dilate[i,j]==255中的dilate換成erode對比試試)if changedColor == 'r':img[i, j] = (50, 50, 255) # 此行將藍底替換成紅底,即(0,0,255)代表紅色,由于歷史原因,為BGR(藍綠紅)通道,不是RGB(紅綠藍)通道,所以255放第三個位置else:img[i,j] = (255,255,255) # 此行將藍底替換成白底,即(255,255,255)代表白色return img# 紅底換成其他的顏色 def Red2Others(path, changedColor):img = cv2.imread(path)# 圖像縮放img = cv2.resize(img, None, fx=0.5, fy=0.5)rows, cols, channels = img.shape# 圖片轉換為灰度圖hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)# 圖片的二值化處理,可能會出現噪聲(白點),有的圖片顯示的很明顯,這就需要我們進行腐蝕或膨脹。lower_red = np.array([0, 90, 70])upper_red = np.array([110, 255, 255])mask = cv2.inRange(hsv, lower_red, upper_red) # 藍色范圍內變白,其余之外全部變黑# 腐蝕膨脹,主要用于去處噪聲erode = cv2.erode(mask, None, iterations=1) # 進行腐蝕操作dilate = cv2.dilate(erode, None, iterations=2) # 進行膨脹操作# 遍歷每個像素點,進行顏色的替換for i in range(rows):for j in range(cols):if dilate[i, j] == 255: # 像素點為255表示的是白色,此處將白色處的像素點替換為紅色(將if dilate[i,j]==255中的dilate換成erode對比試試)if changedColor == 'b':img[i, j] = (255, 0, 0) # 此行將紅底替換成藍底,即(255,0,0)代表lan色,由于歷史原因,為BGR(藍綠紅)通道,不是RGB(紅綠藍)通道,所以255放第三個位置else:img[i, j] = (255, 255, 255) # 此行將紅底替換成白底,即(255,255,255)代表白色return imgdef main():path, orignColor, changedColor = inputParams()if orignColor == 'r':img = Red2Others(path,changedColor)elif orignColor == 'b':img = Blue2Others(path,changedColor)print("選中顯示的圖片,按下s鍵保存圖片")cv2.imshow('changedImg',img)# 窗口等待的命令,0表示無限等待k = cv2.waitKey(0) #監聽鍵盤事件if k == ord('s'): #英文狀態下鍵盤按s鍵,會將圖片保存至桌面# font = cv2.FONT_HERSHEY_DUPLEX#參數依次為:涂鴉的圖片、涂鴉的文字、位置、字體、字體大小、字體顏色、字體畫筆粗細# img = cv2.putText(img,"girl",(10,30),font,0.5,(0,0,0),2)desktopPath = desktop_path()savePath = desktopPath + "\changedImg.jpg"print("照片已保存至:%s" % savePath)cv2.imwrite(savePath,img, [int(cv2.IMWRITE_JPEG_QUALITY),100])cv2.destroyWindow('changedImg') #保存完后銷毀名稱為red的窗口else:cv2.destroyAllWindows()if __name__ == '__main__':try:main()except:print("請輸入正確路徑、原底色以及需要換的底色代號!!!")

參考:

不同博主關于生成exe文件的文章

Pyinstaller使用 - 知乎

【Python】-如何將自己所寫的程序打包然后在別人的電腦上運行(使用pyinstall打包多個.py文件成.exe)_放開這顆白菜讓我來-CSDN博客_python打包exe到別的電腦

學習筆記(42):Python實戰編程-pyinstaller程序打包_python_AI_fans的博客-CSDN博客

pyinstaller打包時提示UPX is not available._Veiko的博客-CSDN博客

https://blog.csdn.net/qq_27017791/article/details/102748766

https://blog.csdn.net/ZhangHW_/article/details/99697285

bug解決

pyinstaller打包時提示UPX is not available._Veiko的博客-CSDN博客

pyinstaller設置icon圖標出現“struct.error: unpack requires a buffer of 16 bytes” - Amy魚 - 博客園

生成圖標

在線生成透明ICO圖標——ICO圖標制作

總結

以上是生活随笔為你收集整理的【项目实战】——Python打包正装换底色代码为exe文件(可在其他无Python环境下运行)的全部內容,希望文章能夠幫你解決所遇到的問題。

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