Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
OpenDAS
dlib
Commits
19c6106a
Commit
19c6106a
authored
Jun 19, 2011
by
Davis King
Browse files
Added more gui elements. Now it can load and display images and a few other things.
parent
24dd65f0
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
86 additions
and
5 deletions
+86
-5
tools/imglab/src/metadata_editor.cpp
tools/imglab/src/metadata_editor.cpp
+81
-5
tools/imglab/src/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