Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
不会修仙的道士
labelme
提交
83bc799f
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,体验更适合开发者的 AI 搜索 >>
提交
83bc799f
编写于
6月 14, 2020
作者:
K
Kentaro Wada
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Pass PIL.Image.Image to BrightnessContrastDialog
上级
a2ebb1fe
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
37 addition
and
18 deletion
+37
-18
labelme/app.py
labelme/app.py
+6
-2
labelme/utils/__init__.py
labelme/utils/__init__.py
+2
-0
labelme/utils/image.py
labelme/utils/image.py
+15
-2
labelme/widgets/brightness_contrast_dialog.py
labelme/widgets/brightness_contrast_dialog.py
+14
-14
未找到文件。
labelme/app.py
浏览文件 @
83bc799f
...
...
@@ -1364,7 +1364,9 @@ class MainWindow(QtWidgets.QMainWindow):
def
brightnessContrast
(
self
,
value
):
dialog
=
BrightnessContrastDialog
(
self
.
filename
,
self
.
onNewBrightnessContrast
,
parent
=
self
utils
.
img_data_to_pil
(
self
.
imageData
),
self
.
onNewBrightnessContrast
,
parent
=
self
,
)
brightness
,
contrast
=
self
.
brightnessContrast_values
.
get
(
self
.
filename
,
(
None
,
None
)
...
...
@@ -1484,7 +1486,9 @@ class MainWindow(QtWidgets.QMainWindow):
)
# set brightness constrast values
dialog
=
BrightnessContrastDialog
(
self
.
filename
,
self
.
onNewBrightnessContrast
,
parent
=
self
utils
.
img_data_to_pil
(
self
.
imageData
),
self
.
onNewBrightnessContrast
,
parent
=
self
,
)
brightness
,
contrast
=
self
.
brightnessContrast_values
.
get
(
self
.
filename
,
(
None
,
None
)
...
...
labelme/utils/__init__.py
浏览文件 @
83bc799f
...
...
@@ -6,7 +6,9 @@ from .image import apply_exif_orientation
from
.image
import
img_arr_to_b64
from
.image
import
img_b64_to_arr
from
.image
import
img_data_to_arr
from
.image
import
img_data_to_pil
from
.image
import
img_data_to_png_data
from
.image
import
img_pil_to_data
from
.shape
import
labelme_shapes_to_label
from
.shape
import
masks_to_bboxes
...
...
labelme/utils/image.py
浏览文件 @
83bc799f
...
...
@@ -7,10 +7,16 @@ import PIL.Image
import
PIL.ImageOps
def
img_data_to_
arr
(
img_data
):
def
img_data_to_
pil
(
img_data
):
f
=
io
.
BytesIO
()
f
.
write
(
img_data
)
img_arr
=
np
.
array
(
PIL
.
Image
.
open
(
f
))
img_pil
=
PIL
.
Image
.
open
(
f
)
return
img_pil
def
img_data_to_arr
(
img_data
):
img_pil
=
img_data_to_pil
(
img_data
)
img_arr
=
np
.
array
(
img_pil
)
return
img_arr
...
...
@@ -20,6 +26,13 @@ def img_b64_to_arr(img_b64):
return
img_arr
def
img_pil_to_data
(
img_pil
):
f
=
io
.
BytesIO
()
img_pil
.
save
(
f
,
format
=
"PNG"
)
img_data
=
f
.
getvalue
()
return
img_data
def
img_arr_to_b64
(
img_arr
):
img_pil
=
PIL
.
Image
.
fromarray
(
img_arr
)
f
=
io
.
BytesIO
()
...
...
labelme/widgets/brightness_contrast_dialog.py
浏览文件 @
83bc799f
import
PIL.Image
import
PIL.ImageEnhance
from
qtpy.QtCore
import
Qt
from
qtpy
import
QtGui
from
qtpy
import
QtWidgets
from
PIL
import
Image
from
PIL
import
ImageEnhance
from
..
import
utils
class
BrightnessContrastDialog
(
QtWidgets
.
QDialog
):
def
__init__
(
self
,
filename
,
callback
,
parent
=
None
):
def
__init__
(
self
,
img
,
callback
,
parent
=
None
):
super
(
BrightnessContrastDialog
,
self
).
__init__
(
parent
)
self
.
setModal
(
True
)
self
.
setWindowTitle
(
"Brightness/Contrast"
)
...
...
@@ -20,26 +21,25 @@ class BrightnessContrastDialog(QtWidgets.QDialog):
formLayout
.
addRow
(
self
.
tr
(
"Contrast"
),
self
.
slider_contrast
)
self
.
setLayout
(
formLayout
)
self
.
img
=
Image
.
open
(
filename
).
convert
(
"RGBA"
)
assert
isinstance
(
img
,
PIL
.
Image
.
Image
)
self
.
img
=
img
self
.
callback
=
callback
def
onNewValue
(
self
,
value
):
brightness
=
self
.
slider_brightness
.
value
()
/
10
0.0
contrast
=
self
.
slider_contrast
.
value
()
/
10
0.0
brightness
=
self
.
slider_brightness
.
value
()
/
5
0.0
contrast
=
self
.
slider_contrast
.
value
()
/
5
0.0
img
=
self
.
img
img
=
ImageEnhance
.
Brightness
(
img
).
enhance
(
brightness
)
img
=
ImageEnhance
.
Contrast
(
img
).
enhance
(
contrast
)
img
=
PIL
.
ImageEnhance
.
Brightness
(
img
).
enhance
(
brightness
)
img
=
PIL
.
ImageEnhance
.
Contrast
(
img
).
enhance
(
contrast
)
bytes
=
img
.
tobytes
(
"raw"
,
"RGBA"
)
qimage
=
QtGui
.
QImage
(
bytes
,
img
.
size
[
0
],
img
.
size
[
1
],
QtGui
.
QImage
.
Format_RGB32
).
rgbSwapped
()
img_data
=
utils
.
img_pil_to_data
(
img
)
qimage
=
QtGui
.
QImage
.
fromData
(
img_data
)
self
.
callback
(
qimage
)
def
_create_slider
(
self
):
slider
=
QtWidgets
.
QSlider
(
Qt
.
Horizontal
)
slider
.
setRange
(
0
,
30
0
)
slider
.
setValue
(
10
0
)
slider
.
setRange
(
0
,
15
0
)
slider
.
setValue
(
5
0
)
slider
.
valueChanged
.
connect
(
self
.
onNewValue
)
return
slider
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录