実現したいこと
tkinterを使用した画像内の特定の色をマスクし保存するプログラムを作成
pycharmにて作成し、配布用にpyinstallerにてexe化しました。
起きている問題
pycharm、distファイル内で実行した際は問題ないのですが、exeファイルをコピーし配布用フォルダへ移動させると、マスク後の画像が保存されません。
どこが問題なのか探るため下記pyコードの★★間をコメントにして実行したのですが、画像が保存されませんでした。
OpenCVが悪さをしているのでしょうか?
いろいろ調べているとOpenCVの.dllを追加する必要があるというサイトを見つけたのですが、今回と何か関係がありますか?
PyinstallerでOpenCVとPyQt5をEXE化する(Windows編)
問題のコード
pyinstaller test.py --noconsole --onefile
py
1import tkinter 2import os, tkinter.filedialog 3import cv2 4import numpy as np 5 6def btn_click(): 7 8 file_path = tkinter.filedialog.askopenfilename(initialdir=".") 9 img = cv2.imread(file_path) 10 11 # ★ 12 ret, img = cv2.threshold(img, 100, 255, cv2.THRESH_BINARY) 13 14 bgrLower = np.array([0, 0, 0]) 15 bgrUpper = np.array([0, 0, 0]) 16 img = cv2.inRange(img, bgrLower, bgrUpper) 17 # ★ 18 19 cv2.imwrite('test.jpg', img) 20 21tk = tkinter.Tk() 22 23tk.geometry('50x50') 24tk.title('test') 25 26btn = tkinter.Button(tk, text='ファイル選択', command = btn_click) 27btn.pack(anchor='center',expand=1) 28 29tk.mainloop()