sqed 0.5.8 → 0.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.ruby-version +1 -1
- data/.travis.yml +4 -2
- data/lib/sqed/boundaries.rb +1 -1
- data/lib/sqed/boundary_finder/color_line_finder.rb +124 -39
- data/lib/sqed/boundary_finder.rb +13 -10
- data/lib/sqed/error.rb +2 -0
- data/lib/sqed/extractor.rb +3 -3
- data/lib/sqed/parser.rb +2 -1
- data/lib/sqed/version.rb +1 -1
- data/lib/sqed.rb +11 -6
- data/lib/sqed_config.rb +53 -15
- data/spec/lib/sqed_config_spec.rb +2 -4
- data/spec/lib/sqed_spec.rb +8 -10
- data/spec/lib/stage_handling/horizontal_offset_cross_spec.rb +3 -1
- data/spec/lib/stage_handling/inverted_t_stage_spec.rb +61 -0
- data/spec/lib/stage_handling/lep_stage2_spec.rb +64 -0
- data/spec/lib/stage_handling/seven_slot_spec.rb +91 -16
- data/spec/lib/stage_handling/t_stage_spec.rb +61 -0
- data/spec/spec_helper.rb +1 -1
- data/spec/support/files/stage_images/inhs_7_slot3.jpg +0 -0
- data/spec/support/files/stage_images/inverted_t_stage.png +0 -0
- data/spec/support/files/stage_images/lep_stage2.jpg +0 -0
- data/spec/support/files/stage_images/lep_stage3.jpg +0 -0
- data/spec/support/files/stage_images/t_stage.png +0 -0
- data/spec/support/image_helpers.rb +25 -8
- data/sqed.gemspec +4 -4
- metadata +32 -15
data/spec/lib/sqed_spec.rb
CHANGED
@@ -2,7 +2,10 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe Sqed do
|
4
4
|
|
5
|
-
let(:s) { Sqed.new
|
5
|
+
let(:s) { Sqed.new(
|
6
|
+
pattern: :cross
|
7
|
+
)
|
8
|
+
}
|
6
9
|
|
7
10
|
context 'attributes' do
|
8
11
|
|
@@ -41,19 +44,14 @@ describe Sqed do
|
|
41
44
|
specify '#use_thumbnail defaults to `true`' do
|
42
45
|
expect(s.use_thumbnail).to eq(true)
|
43
46
|
end
|
44
|
-
|
45
47
|
end
|
46
48
|
|
47
|
-
|
48
|
-
|
49
|
-
expect(s.pattern).to eq(nil)
|
50
|
-
end
|
49
|
+
specify 'raises without pattern or boundary_finder provided' do
|
50
|
+
expect{Sqed.new}.to raise_error Sqed::Error
|
51
51
|
end
|
52
52
|
|
53
|
-
|
54
|
-
|
55
|
-
expect(s.result).to eq(false)
|
56
|
-
end
|
53
|
+
specify '#result without image returns false' do
|
54
|
+
expect(s.result).to eq(false)
|
57
55
|
end
|
58
56
|
|
59
57
|
# Intent is to just test wrapping functionality, see
|
@@ -30,7 +30,9 @@ describe 'handling 7 slot stages' do
|
|
30
30
|
end
|
31
31
|
|
32
32
|
context 'simple boundaries - without thumbnail' do
|
33
|
-
let(:s) { Sqed.new(image: image, metadata_map: m, use_thumbnail: false, layout: :horizontal_offset_cross,
|
33
|
+
let(:s) { Sqed.new(image: image, metadata_map: m, use_thumbnail: false, layout: :horizontal_offset_cross,
|
34
|
+
boundary_finder: Sqed::BoundaryFinder::ColorLineFinder,
|
35
|
+
boundary_color: :red, has_border: false ) }
|
34
36
|
|
35
37
|
specify 'boundaries are reasonable' do
|
36
38
|
s.result
|
@@ -0,0 +1,61 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe 'handling inverted T stage images' do
|
4
|
+
|
5
|
+
let(:image) { ImageHelpers.inverted_t_stage }
|
6
|
+
let(:sqed) do
|
7
|
+
Sqed.new(
|
8
|
+
image: image,
|
9
|
+
pattern: :inverted_t,
|
10
|
+
boundary_color: :red,
|
11
|
+
has_border: false )
|
12
|
+
end
|
13
|
+
|
14
|
+
let(:m) do
|
15
|
+
{ 0 => 'identifier',
|
16
|
+
1 => 'image_registration',
|
17
|
+
2 => 'annotated_specimen',
|
18
|
+
}
|
19
|
+
end
|
20
|
+
|
21
|
+
context 'simple boundaries - without thumbnail' do
|
22
|
+
let(:s) { Sqed.new(
|
23
|
+
image: image, metadata_map: m, use_thumbnail: false,
|
24
|
+
layout: :inverted_t,
|
25
|
+
boundary_finder: Sqed::BoundaryFinder::ColorLineFinder,
|
26
|
+
boundary_color: :red,
|
27
|
+
has_border: false ) }
|
28
|
+
|
29
|
+
specify 'boundaries are reasonable' do
|
30
|
+
s.result
|
31
|
+
c = s.boundaries.coordinates
|
32
|
+
c.each do |section, values|
|
33
|
+
c[section].each_with_index do |v, i|
|
34
|
+
msg = "section #{section}, index #{i} has a bad value '#{v}'"
|
35
|
+
expect(v > -1).to be_truthy, msg
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
context 'boundaries - with_thumbnail' do
|
42
|
+
let(:s) { Sqed.new(
|
43
|
+
image: image,
|
44
|
+
use_thumbnail: true,
|
45
|
+
pattern: :inverted_t,
|
46
|
+
boundary_color: :red,
|
47
|
+
has_border: false ) }
|
48
|
+
|
49
|
+
specify 'boundaries are reasonable' do
|
50
|
+
s.result
|
51
|
+
# s.result.write_images
|
52
|
+
c = s.boundaries.coordinates
|
53
|
+
c.each do |section, values|
|
54
|
+
c[section].each_with_index do |v, i|
|
55
|
+
msg = "section #{section}, index #{i} has a bad value '#{v}'"
|
56
|
+
expect(v > -1).to be_truthy, msg
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
@@ -0,0 +1,64 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe 'handling lep stage images' do
|
4
|
+
|
5
|
+
let(:image) { ImageHelpers.lep_stage2 }
|
6
|
+
let(:sqed) do
|
7
|
+
Sqed.new(
|
8
|
+
image: image,
|
9
|
+
pattern: :lep_stage,
|
10
|
+
boundary_color: :red,
|
11
|
+
has_border: false )
|
12
|
+
end
|
13
|
+
|
14
|
+
let(:m) do
|
15
|
+
{ 0 => :curator_metadata,
|
16
|
+
1 => :collecting_event_labels,
|
17
|
+
2 => :image_registration,
|
18
|
+
3 => :identifier,
|
19
|
+
4 => :other_labels,
|
20
|
+
5 => :determination_labels,
|
21
|
+
6 => :specimen
|
22
|
+
}
|
23
|
+
end
|
24
|
+
|
25
|
+
context 'parses' do
|
26
|
+
specify 'new() without errors' do
|
27
|
+
expect(sqed).to be_truthy
|
28
|
+
end
|
29
|
+
|
30
|
+
specify 'get result without errors' do
|
31
|
+
expect(sqed.result).to be_truthy
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
context 'trickier boundaries - without thumbnail' do
|
36
|
+
let(:s) { Sqed.new(image: ImageHelpers.lep_stage2, use_thumbnail: false, pattern: :lep_stage2, boundary_color: :red, has_border: false ) }
|
37
|
+
|
38
|
+
specify 'boundaries are reasonable' do
|
39
|
+
s.result
|
40
|
+
c = s.boundaries.coordinates
|
41
|
+
c.each do |section, values|
|
42
|
+
c[section].each_with_index do |v, i|
|
43
|
+
msg = "section #{section}, index #{i} has a bad value '#{v}'"
|
44
|
+
expect(v > -1).to be_truthy, msg
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
context 'trickier boundaries - with_thumbnail' do
|
51
|
+
let(:s) { Sqed.new(image: ImageHelpers.lep_stage2, use_thumbnail: true, pattern: :lep_stage2, boundary_color: :red, has_border: false ) }
|
52
|
+
|
53
|
+
specify 'boundaries are reasonable' do
|
54
|
+
s.result
|
55
|
+
c = s.boundaries.coordinates
|
56
|
+
c.each do |section, values|
|
57
|
+
c[section].each_with_index do |v, i|
|
58
|
+
msg = "section #{section}, index #{i} has a bad value '#{v}'"
|
59
|
+
expect(v > -1).to be_truthy, msg
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
@@ -12,15 +12,65 @@ describe 'handling 7 slot stages' do
|
|
12
12
|
end
|
13
13
|
|
14
14
|
let(:m) do
|
15
|
-
{ 0 =>
|
16
|
-
1 =>
|
17
|
-
2 =>
|
18
|
-
3 =>
|
19
|
-
4 =>
|
20
|
-
5 =>
|
21
|
-
6 =>
|
15
|
+
{ 0 => :collecting_event_labels,
|
16
|
+
1 => :determination_labels,
|
17
|
+
2 => :other_labels,
|
18
|
+
3 => :image_registration,
|
19
|
+
4 => :curator_metadata,
|
20
|
+
5 => :identifier,
|
21
|
+
6 => :specimen }
|
22
22
|
end
|
23
23
|
|
24
|
+
|
25
|
+
let(:w) {22.5} # 1/2 width red "tape"
|
26
|
+
|
27
|
+
let(:coords) {
|
28
|
+
{
|
29
|
+
0 => [
|
30
|
+
0,
|
31
|
+
0,
|
32
|
+
1674,
|
33
|
+
1280
|
34
|
+
],
|
35
|
+
1 => [
|
36
|
+
1820,
|
37
|
+
0,
|
38
|
+
1773,
|
39
|
+
1280
|
40
|
+
],
|
41
|
+
2 => [
|
42
|
+
3746,
|
43
|
+
0,
|
44
|
+
1726,
|
45
|
+
1280
|
46
|
+
],
|
47
|
+
3 => [
|
48
|
+
3746,
|
49
|
+
1422,
|
50
|
+
3746,
|
51
|
+
836
|
52
|
+
],
|
53
|
+
4 => [
|
54
|
+
1820,
|
55
|
+
2382,
|
56
|
+
3652,
|
57
|
+
2226
|
58
|
+
],
|
59
|
+
5 => [
|
60
|
+
1820,
|
61
|
+
1422,
|
62
|
+
1773,
|
63
|
+
836
|
64
|
+
],
|
65
|
+
6 => [
|
66
|
+
0,
|
67
|
+
1422,
|
68
|
+
1674,
|
69
|
+
2226
|
70
|
+
]
|
71
|
+
}
|
72
|
+
}
|
73
|
+
|
24
74
|
context 'parses' do
|
25
75
|
specify 'new() without errors' do
|
26
76
|
expect(sqed).to be_truthy
|
@@ -32,33 +82,58 @@ describe 'handling 7 slot stages' do
|
|
32
82
|
end
|
33
83
|
|
34
84
|
context 'trickier boundaries - without thumbnail' do
|
35
|
-
|
85
|
+
# perfect parsing currently
|
86
|
+
let(:s) { Sqed.new(
|
87
|
+
image: ImageHelpers.inhs_stage_7_slot2,
|
88
|
+
layout: :seven_slot, # layout + metadata map + boundary_finder signature
|
89
|
+
metadata_map: m,
|
90
|
+
boundary_finder: Sqed::BoundaryFinder::ColorLineFinder,
|
91
|
+
use_thumbnail: false,
|
92
|
+
boundary_color: :red,
|
93
|
+
has_border: false ) }
|
36
94
|
|
37
95
|
specify 'boundaries are reasonable' do
|
38
96
|
s.result
|
39
97
|
c = s.boundaries.coordinates
|
98
|
+
|
40
99
|
c.each do |section, values|
|
41
100
|
c[section].each_with_index do |v, i|
|
42
|
-
|
43
|
-
|
101
|
+
min = coords[section][i] - w
|
102
|
+
max = coords[section][i] + w
|
103
|
+
msg = "section #{section}, index #{i}, '#{v}' is out of range #{min}-#{max} "
|
104
|
+
expect((v > min) && (v < max)).to be_truthy, msg
|
44
105
|
end
|
45
106
|
end
|
46
107
|
end
|
47
108
|
end
|
48
109
|
|
110
|
+
# image size is a failure here
|
49
111
|
context 'trickier boundaries - with_thumbnail' do
|
50
|
-
let(:s) { Sqed.new(
|
112
|
+
let(:s) { Sqed.new(
|
113
|
+
image: ImageHelpers.inhs_stage_7_slot2,
|
114
|
+
use_thumbnail: true,
|
115
|
+
pattern: :seven_slot, # pattern signature
|
116
|
+
boundary_color: :red, has_border: false ) }
|
51
117
|
|
52
|
-
|
53
|
-
specify 'boundaries are reasonable' do
|
118
|
+
xspecify 'boundaries are reasonable' do
|
54
119
|
s.result
|
55
120
|
c = s.boundaries.coordinates
|
121
|
+
errors = []
|
122
|
+
|
56
123
|
c.each do |section, values|
|
57
124
|
c[section].each_with_index do |v, i|
|
58
|
-
|
59
|
-
|
125
|
+
min = coords[section][i] - w
|
126
|
+
max = coords[section][i] + w
|
127
|
+
|
128
|
+
msg = "section #{section}, index #{i}, '#{v}' is #{(v - coords[section][i]).abs } out of range #{min}-#{max}"
|
129
|
+
if !((v > min) && (v < max))
|
130
|
+
errors.push msg
|
131
|
+
else
|
132
|
+
errors.push "section #{section} (#{v}) is OK"
|
133
|
+
end
|
60
134
|
end
|
61
135
|
end
|
136
|
+
expect(errors).to be_empty, errors.join("\n")
|
62
137
|
end
|
63
138
|
end
|
64
139
|
|
@@ -68,6 +143,6 @@ describe 'handling 7 slot stages' do
|
|
68
143
|
specify '#result' do
|
69
144
|
expect(s.result).to be_truthy
|
70
145
|
end
|
71
|
-
end
|
146
|
+
end
|
72
147
|
|
73
148
|
end
|
@@ -0,0 +1,61 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe 'handling T stage images' do
|
4
|
+
|
5
|
+
let(:image) { ImageHelpers.t_stage }
|
6
|
+
let(:sqed) do
|
7
|
+
Sqed.new(
|
8
|
+
image: image,
|
9
|
+
pattern: :t,
|
10
|
+
boundary_color: :red,
|
11
|
+
has_border: false )
|
12
|
+
end
|
13
|
+
|
14
|
+
let(:m) do
|
15
|
+
{ 0 => 'annotated_specimen',
|
16
|
+
1 => 'identifier',
|
17
|
+
2 => 'image_registration'
|
18
|
+
}
|
19
|
+
end
|
20
|
+
|
21
|
+
context 'simple boundaries - without thumbnail' do
|
22
|
+
let(:s) { Sqed.new(
|
23
|
+
image: image, metadata_map: m, use_thumbnail: false,
|
24
|
+
layout: :t,
|
25
|
+
boundary_finder: Sqed::BoundaryFinder::ColorLineFinder,
|
26
|
+
boundary_color: :red,
|
27
|
+
has_border: false ) }
|
28
|
+
|
29
|
+
specify 'boundaries are reasonable' do
|
30
|
+
s.result
|
31
|
+
c = s.boundaries.coordinates
|
32
|
+
c.each do |section, values|
|
33
|
+
c[section].each_with_index do |v, i|
|
34
|
+
msg = "section #{section}, index #{i} has a bad value '#{v}'"
|
35
|
+
expect(v > -1).to be_truthy, msg
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
context 'boundaries - with_thumbnail' do
|
42
|
+
let(:s) { Sqed.new(
|
43
|
+
image: image,
|
44
|
+
use_thumbnail: true,
|
45
|
+
pattern: :t,
|
46
|
+
boundary_color: :red,
|
47
|
+
has_border: false ) }
|
48
|
+
|
49
|
+
specify 'boundaries are reasonable' do
|
50
|
+
s.result
|
51
|
+
c = s.boundaries.coordinates
|
52
|
+
c.each do |section, values|
|
53
|
+
c[section].each_with_index do |v, i|
|
54
|
+
msg = "section #{section}, index #{i} has a bad value '#{v}'"
|
55
|
+
expect(v > -1).to be_truthy, msg
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
end
|
data/spec/spec_helper.rb
CHANGED
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -9,12 +9,21 @@ module ImageHelpers
|
|
9
9
|
end
|
10
10
|
|
11
11
|
def of_size(width = 1024, height = 768)
|
12
|
-
Magick::Image.new(width, height) {
|
13
|
-
|
12
|
+
Magick::Image.new(width, height) { |i|
|
13
|
+
i.background_color = 'white'
|
14
14
|
}
|
15
15
|
end
|
16
16
|
|
17
|
-
# Stage images
|
17
|
+
# Stage images
|
18
|
+
|
19
|
+
def t_stage
|
20
|
+
get_image 'stage_images/t_stage.png'
|
21
|
+
end
|
22
|
+
|
23
|
+
def inverted_t_stage
|
24
|
+
get_image 'stage_images/inverted_t_stage.png'
|
25
|
+
end
|
26
|
+
|
18
27
|
def cross_green
|
19
28
|
get_image 'stage_images/boundary_cross_green.jpg'
|
20
29
|
end
|
@@ -36,15 +45,23 @@ module ImageHelpers
|
|
36
45
|
end
|
37
46
|
|
38
47
|
def inhs_stage_7_slot
|
39
|
-
get_image 'stage_images/
|
48
|
+
get_image 'stage_images/inhs_7_slot3.jpg'
|
49
|
+
end
|
50
|
+
|
51
|
+
def inhs_stage_7_slot2
|
52
|
+
get_image 'stage_images/inhs_7_slot2.jpg'
|
40
53
|
end
|
41
54
|
|
42
55
|
def lep_stage
|
43
56
|
get_image 'stage_images/lep_stage.jpg'
|
44
57
|
end
|
45
58
|
|
46
|
-
def
|
47
|
-
get_image 'stage_images/
|
59
|
+
def lep_stage2
|
60
|
+
get_image 'stage_images/lep_stage2.jpg'
|
61
|
+
end
|
62
|
+
|
63
|
+
def lep_stage3
|
64
|
+
get_image 'stage_images/lep_stage3.jpg'
|
48
65
|
end
|
49
66
|
|
50
67
|
def crossy_green_line_specimen
|
@@ -93,7 +110,7 @@ module ImageHelpers
|
|
93
110
|
get_image 'barcode_images/osuc_datamatric_barcode.png'
|
94
111
|
end
|
95
112
|
|
96
|
-
# label (text) images
|
113
|
+
# label (text) images
|
97
114
|
|
98
115
|
# NOT USED
|
99
116
|
def black_stage_green_line_specimen_label
|
@@ -114,7 +131,7 @@ module ImageHelpers
|
|
114
131
|
|
115
132
|
# Real life, black border, no internal boundaries
|
116
133
|
def test3_image
|
117
|
-
get_image 'test3.jpg'
|
134
|
+
get_image 'test3.jpg'
|
118
135
|
end
|
119
136
|
|
120
137
|
def foo3_image
|
data/sqed.gemspec
CHANGED
@@ -19,15 +19,15 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
21
|
spec.add_dependency 'rake', '~> 13.0'
|
22
|
-
spec.add_dependency 'rmagick', '~> 4.
|
23
|
-
spec.add_dependency 'rtesseract', '~> 3.
|
22
|
+
spec.add_dependency 'rmagick', '~> 4.2'
|
23
|
+
spec.add_dependency 'rtesseract', '~> 3.1'
|
24
24
|
|
25
25
|
# A qrcode reader, too many problems with compiling, dependencies
|
26
26
|
# spec.add_dependency 'zxing_cpp', '~> 0.1.0'
|
27
27
|
|
28
|
-
spec.add_development_dependency 'rspec', '~> 3.
|
28
|
+
spec.add_development_dependency 'rspec', '~> 3.11'
|
29
29
|
spec.add_development_dependency 'bundler', '~> 2.0'
|
30
30
|
spec.add_development_dependency 'byebug', '~> 11.0'
|
31
|
-
spec.add_development_dependency '
|
31
|
+
spec.add_development_dependency 'amazing_print', '~> 1.4'
|
32
32
|
end
|
33
33
|
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sqed
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matt Yoder
|
8
8
|
- Rich Flood
|
9
|
-
autorequire:
|
9
|
+
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2022-06-01 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|
@@ -31,42 +31,42 @@ dependencies:
|
|
31
31
|
requirements:
|
32
32
|
- - "~>"
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version: '4.
|
34
|
+
version: '4.2'
|
35
35
|
type: :runtime
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
39
|
- - "~>"
|
40
40
|
- !ruby/object:Gem::Version
|
41
|
-
version: '4.
|
41
|
+
version: '4.2'
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: rtesseract
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
45
45
|
requirements:
|
46
46
|
- - "~>"
|
47
47
|
- !ruby/object:Gem::Version
|
48
|
-
version: 3.
|
48
|
+
version: '3.1'
|
49
49
|
type: :runtime
|
50
50
|
prerelease: false
|
51
51
|
version_requirements: !ruby/object:Gem::Requirement
|
52
52
|
requirements:
|
53
53
|
- - "~>"
|
54
54
|
- !ruby/object:Gem::Version
|
55
|
-
version: 3.
|
55
|
+
version: '3.1'
|
56
56
|
- !ruby/object:Gem::Dependency
|
57
57
|
name: rspec
|
58
58
|
requirement: !ruby/object:Gem::Requirement
|
59
59
|
requirements:
|
60
60
|
- - "~>"
|
61
61
|
- !ruby/object:Gem::Version
|
62
|
-
version: '3.
|
62
|
+
version: '3.11'
|
63
63
|
type: :development
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
66
66
|
requirements:
|
67
67
|
- - "~>"
|
68
68
|
- !ruby/object:Gem::Version
|
69
|
-
version: '3.
|
69
|
+
version: '3.11'
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
71
|
name: bundler
|
72
72
|
requirement: !ruby/object:Gem::Requirement
|
@@ -96,19 +96,19 @@ dependencies:
|
|
96
96
|
- !ruby/object:Gem::Version
|
97
97
|
version: '11.0'
|
98
98
|
- !ruby/object:Gem::Dependency
|
99
|
-
name:
|
99
|
+
name: amazing_print
|
100
100
|
requirement: !ruby/object:Gem::Requirement
|
101
101
|
requirements:
|
102
102
|
- - "~>"
|
103
103
|
- !ruby/object:Gem::Version
|
104
|
-
version: '1.
|
104
|
+
version: '1.4'
|
105
105
|
type: :development
|
106
106
|
prerelease: false
|
107
107
|
version_requirements: !ruby/object:Gem::Requirement
|
108
108
|
requirements:
|
109
109
|
- - "~>"
|
110
110
|
- !ruby/object:Gem::Version
|
111
|
-
version: '1.
|
111
|
+
version: '1.4'
|
112
112
|
description: A utility gem to aid in the processing of images taken in the process
|
113
113
|
of digitizing natural history collections.
|
114
114
|
email:
|
@@ -132,6 +132,7 @@ files:
|
|
132
132
|
- lib/sqed/boundary_finder/color_line_finder.rb
|
133
133
|
- lib/sqed/boundary_finder/cross_finder.rb
|
134
134
|
- lib/sqed/boundary_finder/stage_finder.rb
|
135
|
+
- lib/sqed/error.rb
|
135
136
|
- lib/sqed/extractor.rb
|
136
137
|
- lib/sqed/parser.rb
|
137
138
|
- lib/sqed/parser/barcode_parser.rb
|
@@ -154,8 +155,11 @@ files:
|
|
154
155
|
- spec/lib/sqed_spec.rb
|
155
156
|
- spec/lib/sqed_utils_spec.rb
|
156
157
|
- spec/lib/stage_handling/horizontal_offset_cross_spec.rb
|
158
|
+
- spec/lib/stage_handling/inverted_t_stage_spec.rb
|
159
|
+
- spec/lib/stage_handling/lep_stage2_spec.rb
|
157
160
|
- spec/lib/stage_handling/lep_stage_spec.rb
|
158
161
|
- spec/lib/stage_handling/seven_slot_spec.rb
|
162
|
+
- spec/lib/stage_handling/t_stage_spec.rb
|
159
163
|
- spec/spec_helper.rb
|
160
164
|
- spec/support/files/barcode_images/code_128_barcode.png
|
161
165
|
- spec/support/files/barcode_images/datamatrix_barcode.png
|
@@ -181,8 +185,13 @@ files:
|
|
181
185
|
- spec/support/files/stage_images/horizontal_offset_cross.png
|
182
186
|
- spec/support/files/stage_images/inhs_7_slot.jpg
|
183
187
|
- spec/support/files/stage_images/inhs_7_slot2.jpg
|
188
|
+
- spec/support/files/stage_images/inhs_7_slot3.jpg
|
184
189
|
- spec/support/files/stage_images/inhs_four_thirds.jpg
|
190
|
+
- spec/support/files/stage_images/inverted_t_stage.png
|
185
191
|
- spec/support/files/stage_images/lep_stage.jpg
|
192
|
+
- spec/support/files/stage_images/lep_stage2.jpg
|
193
|
+
- spec/support/files/stage_images/lep_stage3.jpg
|
194
|
+
- spec/support/files/stage_images/t_stage.png
|
186
195
|
- spec/support/files/test0.jpg
|
187
196
|
- spec/support/files/test1.jpg
|
188
197
|
- spec/support/files/test2.jpg
|
@@ -195,7 +204,7 @@ homepage: http://github.com/SpeciesFileGroup/sqed
|
|
195
204
|
licenses:
|
196
205
|
- NCSA
|
197
206
|
metadata: {}
|
198
|
-
post_install_message:
|
207
|
+
post_install_message:
|
199
208
|
rdoc_options: []
|
200
209
|
require_paths:
|
201
210
|
- lib
|
@@ -210,8 +219,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
210
219
|
- !ruby/object:Gem::Version
|
211
220
|
version: '0'
|
212
221
|
requirements: []
|
213
|
-
rubygems_version: 3.
|
214
|
-
signing_key:
|
222
|
+
rubygems_version: 3.2.22
|
223
|
+
signing_key:
|
215
224
|
specification_version: 4
|
216
225
|
summary: Specimens Quickly extracted and Digitized, or just "squid". A ruby gem for
|
217
226
|
image based specimen accessioning.
|
@@ -230,8 +239,11 @@ test_files:
|
|
230
239
|
- spec/lib/sqed_spec.rb
|
231
240
|
- spec/lib/sqed_utils_spec.rb
|
232
241
|
- spec/lib/stage_handling/horizontal_offset_cross_spec.rb
|
242
|
+
- spec/lib/stage_handling/inverted_t_stage_spec.rb
|
243
|
+
- spec/lib/stage_handling/lep_stage2_spec.rb
|
233
244
|
- spec/lib/stage_handling/lep_stage_spec.rb
|
234
245
|
- spec/lib/stage_handling/seven_slot_spec.rb
|
246
|
+
- spec/lib/stage_handling/t_stage_spec.rb
|
235
247
|
- spec/spec_helper.rb
|
236
248
|
- spec/support/files/barcode_images/code_128_barcode.png
|
237
249
|
- spec/support/files/barcode_images/datamatrix_barcode.png
|
@@ -257,8 +269,13 @@ test_files:
|
|
257
269
|
- spec/support/files/stage_images/horizontal_offset_cross.png
|
258
270
|
- spec/support/files/stage_images/inhs_7_slot.jpg
|
259
271
|
- spec/support/files/stage_images/inhs_7_slot2.jpg
|
272
|
+
- spec/support/files/stage_images/inhs_7_slot3.jpg
|
260
273
|
- spec/support/files/stage_images/inhs_four_thirds.jpg
|
274
|
+
- spec/support/files/stage_images/inverted_t_stage.png
|
261
275
|
- spec/support/files/stage_images/lep_stage.jpg
|
276
|
+
- spec/support/files/stage_images/lep_stage2.jpg
|
277
|
+
- spec/support/files/stage_images/lep_stage3.jpg
|
278
|
+
- spec/support/files/stage_images/t_stage.png
|
262
279
|
- spec/support/files/test0.jpg
|
263
280
|
- spec/support/files/test1.jpg
|
264
281
|
- spec/support/files/test2.jpg
|