Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
D
dlib
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
钟尚武
dlib
Commits
19c6106a
Commit
19c6106a
authored
Jun 19, 2011
by
Davis King
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added more gui elements. Now it can load and display images and a few other things.
parent
24dd65f0
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
86 additions
and
5 deletions
+86
-5
metadata_editor.cpp
tools/imglab/src/metadata_editor.cpp
+81
-5
metadata_editor.h
tools/imglab/src/metadata_editor.h
+5
-0
No files found.
tools/imglab/src/metadata_editor.cpp
View file @
19c6106a
...
@@ -5,6 +5,10 @@
...
@@ -5,6 +5,10 @@
#include <dlib/array.h>
#include <dlib/array.h>
#include <dlib/queue.h>
#include <dlib/queue.h>
#include <dlib/static_set.h>
#include <dlib/static_set.h>
#include <dlib/misc_api.h>
#include <dlib/image_io.h>
#include <dlib/array2d.h>
#include <dlib/pixel.h>
using
namespace
std
;
using
namespace
std
;
using
namespace
dlib
;
using
namespace
dlib
;
...
@@ -15,11 +19,18 @@ metadata_editor::
...
@@ -15,11 +19,18 @@ metadata_editor::
metadata_editor
(
metadata_editor
(
const
std
::
string
&
filename_
const
std
::
string
&
filename_
)
:
)
:
filename
(
filename_
),
mbar
(
*
this
),
mbar
(
*
this
),
lb_images
(
*
this
),
lb_images
(
*
this
),
image_pos
(
0
)
image_pos
(
0
),
display
(
*
this
),
overlay_label_name
(
*
this
),
overlay_label
(
*
this
)
{
{
file
metadata_file
(
filename_
);
filename
=
metadata_file
.
full_name
();
set_current_dir
(
get_parent_directory
(
metadata_file
).
full_name
());
cout
<<
"current dir: "
<<
get_current_dir
()
<<
endl
;
load_image_dataset_metadata
(
metadata
,
filename
);
load_image_dataset_metadata
(
metadata
,
filename
);
dlib
::
array
<
std
::
string
>::
expand_1a
files
;
dlib
::
array
<
std
::
string
>::
expand_1a
files
;
...
@@ -31,9 +42,10 @@ metadata_editor(
...
@@ -31,9 +42,10 @@ metadata_editor(
lb_images
.
load
(
files
);
lb_images
.
load
(
files
);
lb_images
.
enable_multiple_select
();
lb_images
.
enable_multiple_select
();
select_image
(
0
);
lb_images
.
set_click_handler
(
*
this
,
&
metadata_editor
::
on_lb_images_clicked
);
lb_images
.
set_click_handler
(
*
this
,
&
metadata_editor
::
on_lb_images_clicked
);
overlay_label_name
.
set_text
(
"Next Label: "
);
overlay_label
.
set_width
(
200
);
mbar
.
set_number_of_menus
(
1
);
mbar
.
set_number_of_menus
(
1
);
mbar
.
set_menu_name
(
0
,
"File"
,
'F'
);
mbar
.
set_menu_name
(
0
,
"File"
,
'F'
);
...
@@ -47,10 +59,14 @@ metadata_editor(
...
@@ -47,10 +59,14 @@ metadata_editor(
mbar
.
menu
(
0
).
add_menu_item
(
menu_item_text
(
"Quit"
,
static_cast
<
base_window
&>
(
*
this
),
&
drawable_window
::
close_window
,
'Q'
));
mbar
.
menu
(
0
).
add_menu_item
(
menu_item_text
(
"Quit"
,
static_cast
<
base_window
&>
(
*
this
),
&
drawable_window
::
close_window
,
'Q'
));
// set the size of this window
// set the size of this window and center on the screen .
set_size
(
430
,
380
);
set_size
(
500
,
400
);
unsigned
long
width
,
height
;
get_display_size
(
width
,
height
);
set_pos
((
width
-
500
)
/
2
,
(
height
-
400
)
/
2
);
on_window_resized
();
on_window_resized
();
select_image
(
0
);
set_title
(
"Image Dataset Metadata Editor"
);
set_title
(
"Image Dataset Metadata Editor"
);
show
();
show
();
...
@@ -151,6 +167,12 @@ on_window_resized(
...
@@ -151,6 +167,12 @@ on_window_resized(
lb_images
.
set_pos
(
0
,
mbar
.
bottom
()
+
1
);
lb_images
.
set_pos
(
0
,
mbar
.
bottom
()
+
1
);
lb_images
.
set_size
(
180
,
height
-
mbar
.
height
());
lb_images
.
set_size
(
180
,
height
-
mbar
.
height
());
overlay_label_name
.
set_pos
(
lb_images
.
right
()
+
10
,
mbar
.
bottom
()
+
(
overlay_label
.
height
()
-
overlay_label_name
.
height
())
/
2
+
1
);
overlay_label
.
set_pos
(
overlay_label_name
.
right
(),
mbar
.
bottom
()
+
1
);
display
.
set_pos
(
lb_images
.
right
(),
overlay_label
.
bottom
()
+
3
);
display
.
set_size
(
width
-
display
.
left
(),
height
-
display
.
top
());
}
}
// ----------------------------------------------------------------------------------------
// ----------------------------------------------------------------------------------------
...
@@ -165,7 +187,15 @@ on_keydown (
...
@@ -165,7 +187,15 @@ on_keydown (
drawable_window
::
on_keydown
(
key
,
is_printable
,
state
);
drawable_window
::
on_keydown
(
key
,
is_printable
,
state
);
if
(
is_printable
)
if
(
is_printable
)
{
if
(
key
==
'\t'
)
{
overlay_label
.
give_input_focus
();
overlay_label
.
select_all_text
();
}
return
;
return
;
}
if
(
key
==
base_window
::
KEY_UP
)
if
(
key
==
base_window
::
KEY_UP
)
{
{
...
@@ -198,6 +228,7 @@ select_image(
...
@@ -198,6 +228,7 @@ select_image(
lb_images
.
select
(
idx
);
lb_images
.
select
(
idx
);
image_pos
=
idx
;
image_pos
=
idx
;
load_image
(
idx
);
}
}
}
}
...
@@ -209,7 +240,52 @@ on_lb_images_clicked(
...
@@ -209,7 +240,52 @@ on_lb_images_clicked(
)
)
{
{
image_pos
=
idx
;
image_pos
=
idx
;
load_image
(
idx
);
}
}
// ----------------------------------------------------------------------------------------
// ----------------------------------------------------------------------------------------
void
metadata_editor
::
load_image
(
unsigned
long
idx
)
{
if
(
idx
>=
metadata
.
images
.
size
())
return
;
array2d
<
rgb_pixel
>
img
;
display
.
clear_overlay
();
try
{
dlib
::
load_image
(
img
,
metadata
.
images
[
idx
].
filename
);
}
catch
(
exception
&
e
)
{
message_box
(
"Error loading image"
,
e
.
what
());
}
if
(
display
.
width
()
<
img
.
nc
()
||
display
.
height
()
<
img
.
nr
()
)
{
unsigned
long
screen_width
,
screen_height
;
get_display_size
(
screen_width
,
screen_height
);
unsigned
long
needed_width
=
display
.
left
()
+
img
.
nc
()
+
4
;
unsigned
long
needed_height
=
display
.
top
()
+
img
.
nr
()
+
4
;
if
(
needed_width
<
screen_width
*
0.8
&&
needed_height
<
screen_height
*
0.8
)
{
set_size
(
needed_width
,
needed_height
);
on_window_resized
();
}
}
display
.
set_image
(
img
);
}
// ----------------------------------------------------------------------------------------
tools/imglab/src/metadata_editor.h
View file @
19c6106a
...
@@ -33,6 +33,7 @@ private:
...
@@ -33,6 +33,7 @@ private:
void
on_lb_images_clicked
(
unsigned
long
idx
);
void
on_lb_images_clicked
(
unsigned
long
idx
);
void
select_image
(
unsigned
long
idx
);
void
select_image
(
unsigned
long
idx
);
void
save_metadata_to_file
(
const
std
::
string
&
file
);
void
save_metadata_to_file
(
const
std
::
string
&
file
);
void
load_image
(
unsigned
long
idx
);
std
::
string
filename
;
std
::
string
filename
;
dlib
::
image_dataset_metadata
::
dataset
metadata
;
dlib
::
image_dataset_metadata
::
dataset
metadata
;
...
@@ -40,6 +41,10 @@ private:
...
@@ -40,6 +41,10 @@ private:
dlib
::
menu_bar
mbar
;
dlib
::
menu_bar
mbar
;
dlib
::
list_box
lb_images
;
dlib
::
list_box
lb_images
;
unsigned
long
image_pos
;
unsigned
long
image_pos
;
dlib
::
image_display
display
;
dlib
::
label
overlay_label_name
;
dlib
::
text_field
overlay_label
;
};
};
// ----------------------------------------------------------------------------------------
// ----------------------------------------------------------------------------------------
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment