[英]Cannot solve Python ImportError: cannot import name 'FirstNews'
[英]How to solve ImportError: cannot import name splitfn in python
我在我的calibrate.py 文件中編寫了校准相機的代碼,但是當我運行該文件時,它顯示錯誤,例如,ImportError: cannot import name splitfn ..so 如何解決這個問題?...我已經使用這個命令運行了這個文件:
須藤python校准.py image4.jpg校准.yaml --debug-dir out
那么這個執行這個腳本的命令是正確的嗎?如果有任何變化,那么請建議我..我捕獲的用於校准的圖像(我已將其作為輸入)和輸出(RMS,相機矩陣,失真系數)存儲在calibration.yaml文件中?我需要制作這個文件還是它是自動創建的?
看起來您沒有獲得代碼存儲庫的其余部分。 這一行找不到定義 splitfn 函數的 common.py:
from common import splitfn
您應該獲取此代碼來自的存儲庫的 Python 目錄中的所有文件,或者至少獲取 common.py 應該可以解決您提供的示例錯誤。
https://github.com/Itseez/opencv/tree/master/samples/python
此外,OpenCv 示例代碼記錄了如何從其中調用代碼,因此不要認為您在調用中需要 .yaml 參數。
用法:calibrate.py [--debug] [--square_size] []
[--debug ] = 您希望將輸出圖像寫入的路徑 - 默認為 --debug: ./output/ -- 如果您希望將圖像寫入具有calibrate.py 的相同路徑,您可以嘗試-調試。/
不確定 --square_size 究竟是做什么的,但它默認為 1 最后一個輸入是圖像的路徑或名稱,如果它與校准腳本位於同一目錄中 - 如果 image4.jpg 是您的圖像並且您想使用默認值寫入當前路徑我會認為:
須藤 python 校准.py --debug ./ --square_size 1 image4.jpg
splitfn 只提供輸入文件的路徑、文件名(不帶擴展名)和擴展名。 可以使用以下實現。
#from common import splitfn
def splitfn(file_path):
file_path_parts = file_path.split(sep=os.sep)
_path = os.path.join(*file_path_parts[:-1])
file_name = file_path_parts[-1]
file_name_parts = file_name.split(sep='.')
return _path, file_name_parts[0], file_name_parts[1]
去https://github.com/opencv/opencv/blob/master/samples/python/common.py下載這個文件,或者你可以復制這個代碼並粘貼到calibrate.py
def splitfn(fn):
path, fn = os.path.split(fn)
name, ext = os.path.splitext(fn)
return path, name, ext
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.