Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
不会修仙的道士
labelme
提交
78b5cfa1
L
labelme
项目概览
不会修仙的道士
/
labelme
与 Fork 源项目一致
从无法访问的项目Fork
通知
4
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
L
labelme
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
78b5cfa1
编写于
4月 23, 2018
作者:
K
Kentaro Wada
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Preserve custom JSON keys
上级
8cfd1e43
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
41 addition
and
23 deletion
+41
-23
labelme/app.py
labelme/app.py
+6
-1
labelme/labelFile.py
labelme/labelFile.py
+35
-22
未找到文件。
labelme/app.py
浏览文件 @
78b5cfa1
...
...
@@ -422,6 +422,7 @@ class MainWindow(QtWidgets.QMainWindow, WindowMixin):
self
.
maxRecent
=
7
self
.
lineColor
=
None
self
.
fillColor
=
None
self
.
otherData
=
None
self
.
zoom_level
=
100
self
.
fit_window
=
False
...
...
@@ -551,8 +552,10 @@ class MainWindow(QtWidgets.QMainWindow, WindowMixin):
def
resetState
(
self
):
self
.
labelList
.
clear
()
self
.
filename
=
None
self
.
imagePath
=
None
self
.
imageData
=
None
self
.
labelFile
=
None
self
.
otherData
=
None
self
.
canvas
.
resetState
()
def
currentItem
(
self
):
...
...
@@ -727,7 +730,8 @@ class MainWindow(QtWidgets.QMainWindow, WindowMixin):
self
.
imagePath
,
os
.
path
.
dirname
(
filename
))
imageData
=
self
.
imageData
if
self
.
_store_data
else
None
lf
.
save
(
filename
,
shapes
,
imagePath
,
imageData
,
self
.
lineColor
.
getRgb
(),
self
.
fillColor
.
getRgb
())
self
.
lineColor
.
getRgb
(),
self
.
fillColor
.
getRgb
(),
self
.
otherData
)
self
.
labelFile
=
lf
# disable allows next and previous image to proceed
# self.filename = filename
...
...
@@ -868,6 +872,7 @@ class MainWindow(QtWidgets.QMainWindow, WindowMixin):
self
.
labelFile
.
imagePath
)
self
.
lineColor
=
QtGui
.
QColor
(
*
self
.
labelFile
.
lineColor
)
self
.
fillColor
=
QtGui
.
QColor
(
*
self
.
labelFile
.
fillColor
)
self
.
otherData
=
self
.
labelFile
.
otherData
else
:
# Load image:
# read data first and store for saving into label file.
...
...
labelme/labelFile.py
浏览文件 @
78b5cfa1
...
...
@@ -24,37 +24,48 @@ class LabelFile(object):
self
.
filename
=
filename
def
load
(
self
,
filename
):
keys
=
[
'imageData'
,
'imagePath'
,
'lineColor'
,
'fillColor'
,
'shapes'
]
try
:
with
open
(
filename
,
'rb'
if
PY2
else
'r'
)
as
f
:
data
=
json
.
load
(
f
)
if
data
[
'imageData'
]
is
not
None
:
imageData
=
base64
.
b64decode
(
data
[
'imageData'
])
else
:
# relative path from label file to relative path from cwd
imagePath
=
os
.
path
.
join
(
os
.
path
.
dirname
(
filename
),
data
[
'imagePath'
])
with
open
(
imagePath
,
'rb'
)
as
f
:
imageData
=
f
.
read
()
lineColor
=
data
[
'lineColor'
]
fillColor
=
data
[
'fillColor'
]
shapes
=
(
(
s
[
'label'
],
s
[
'points'
],
s
[
'line_color'
],
s
[
'fill_color'
])
for
s
in
data
[
'shapes'
]
)
# Only replace data after everything is loaded.
self
.
shapes
=
shapes
self
.
imagePath
=
data
[
'imagePath'
]
self
.
imageData
=
imageData
self
.
lineColor
=
lineColor
self
.
fillColor
=
fillColor
self
.
filename
=
filename
if
data
[
'imageData'
]
is
not
None
:
imageData
=
base64
.
b64decode
(
data
[
'imageData'
])
else
:
# relative path from label file to relative path from cwd
imagePath
=
os
.
path
.
join
(
os
.
path
.
dirname
(
filename
),
data
[
'imagePath'
])
with
open
(
imagePath
,
'rb'
)
as
f
:
imageData
=
f
.
read
()
imagePath
=
data
[
'imagePath'
]
lineColor
=
data
[
'lineColor'
]
fillColor
=
data
[
'fillColor'
]
shapes
=
(
(
s
[
'label'
],
s
[
'points'
],
s
[
'line_color'
],
s
[
'fill_color'
])
for
s
in
data
[
'shapes'
]
)
except
Exception
as
e
:
raise
LabelFileError
(
e
)
otherData
=
{}
for
key
,
value
in
data
.
items
():
if
key
not
in
keys
:
otherData
[
key
]
=
value
# Only replace data after everything is loaded.
self
.
shapes
=
shapes
self
.
imagePath
=
imagePath
self
.
imageData
=
imageData
self
.
lineColor
=
lineColor
self
.
fillColor
=
fillColor
self
.
filename
=
filename
self
.
otherData
=
otherData
def
save
(
self
,
filename
,
shapes
,
imagePath
,
imageData
=
None
,
lineColor
=
None
,
fillColor
=
None
):
lineColor
=
None
,
fillColor
=
None
,
otherData
=
None
):
if
imageData
is
not
None
:
imageData
=
base64
.
b64encode
(
imageData
).
decode
(
'utf-8'
)
if
otherData
is
None
:
otherData
=
{}
data
=
dict
(
shapes
=
shapes
,
lineColor
=
lineColor
,
...
...
@@ -62,6 +73,8 @@ class LabelFile(object):
imagePath
=
imagePath
,
imageData
=
imageData
,
)
for
key
,
value
in
otherData
.
items
():
data
[
key
]
=
value
try
:
with
open
(
filename
,
'wb'
if
PY2
else
'w'
)
as
f
:
json
.
dump
(
data
,
f
,
ensure_ascii
=
True
,
indent
=
2
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录