# labelme修改心得 labelme 的功能不完全符合我的標註需求,所以稍微修改了點程式。 我的 labelme 是直接 pip install labelme 安裝在win10系統上的。其他的情況我不清楚,不過我只要找到site-packages資料夾中的labelme並修改裡面的內容就好。 以 anaconda 來說,如果安裝在預設 base 環境下,則 labelme 在C:\Users\<使用者名稱>\anaconda3\Lib\site-packages\中可以找到。安裝在其他環境中,則會在C:\Users\<使用者名稱>\anaconda3\envs\<環境名稱>\Lib\site-packages找到。 最保險、簡單的找到labelme安裝路徑的方法: 1. 在開始工具列搜尋 labelme 2. 找到後選擇「開啟檔案位置」,會找到labelme的捷徑 3. 對出現的labelme圖標右鍵選擇「開啟檔案位置」,會找到labelme安裝的環境。 4. 此時路徑像是"...\Scripts",將路徑替換成"...\Lib\site-packages"即可找到labelme的程式碼 ## 讓bounding box和多邊形能超出圖片外 修改shape只能畫在圖片內部的限制: 1. 找到labelme/widgets/canvas.py並打開 2. 找到函數outOfPixmap(self, p) 3. 將回傳值改為 False 函數outOfPixmap原本長成這樣: ```language-python def outOfPixmap(self, p): w, h = self.pixmap.width(), self.pixmap.height() return not (0 <= p.x() <= w - 1 and 0 <= p.y() <= h - 1) #<==要修改的部分 ``` 解除限制後長成這樣: ```language-python def outOfPixmap(self, p): return False ``` 也可以只是稍微放寬限制,例如改成: ```language-python def outOfPixmap(self, p): w, h = self.pixmap.width(), self.pixmap.height() return not (-w*.1 <= p.x() <= w*1.1 - 1 and -h*.1 <= p.y() <= h*1.1 - 1) ``` 可以讓shape只能畫在不超過圖片外10%寬高的位置,要怎麼調整判斷式任君選擇。 ## 讓Group ID可以加入使用負號 1. 找到labelme/widgets/label_dialog.py並打開 2. 在LabelDialog類別的__init__函數中找到self.edit_group_id.setValidator(應該是在55-57行),會找到: ```language-python self.edit_group_id.setValidator( QtGui.QRegExpValidator(QtCore.QRegExp(r"\d*"), None) ) ``` 改成: ```language-python self.edit_group_id.setValidator( QtGui.QRegExpValidator(QtCore.QRegExp(r"-?\d*"), None) ) ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up