panomosity 0.1.35 → 0.1.36

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b65bc97cd45e178084afa204a41355038ed8071d361fde9cd14ef264717c2471
4
- data.tar.gz: '0384cff13bd3d72aa97e09f7efc8b0c40baff294921f9f5c22f3ac2c4c9617a1'
3
+ metadata.gz: ed12e60dac2b5b41da899dadf401e2c51eaa498508fd78a6d0280d3bb262208f
4
+ data.tar.gz: 511594cc4b28962db894a9ad399a5e8b81f90808ff1a1ba32de4fab6938a4760
5
5
  SHA512:
6
- metadata.gz: dbc856dc3727226f568e3a24dc28038dca5900a2e2f19227fe118b51bd6de0a414f503f066a91fc93d5ce972bedcdffd917fee75cc7376075af251d5a7960261
7
- data.tar.gz: 2911664ac77d3702b8e43f61238d61abbcc1fb7477e18f6a10ff07780b402137dcf7ac9bae0d12b2630394fbb4044b7a794cb179e665e77fdbca5cc06a890ee6
6
+ metadata.gz: ab3adea770a98b961b048e456dc8a1b88f69cdd11503f4fa4bef201c436d357b1021d0a7b8e16bd48202669f0b0785955be780312b08dcceb224d2bd9f4847b2
7
+ data.tar.gz: 29ed19c8aabeb5d6c2d9ca784dc7dea1c7f3f7540537735a72bf5e21af55fde8a296ad48cec08b0c0aa36b6d28c74ff0f653ac42d8456d5e9d35b6d379c50972
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- panomosity (0.1.34)
4
+ panomosity (0.1.36)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -1,5 +1,6 @@
1
1
  require 'logger'
2
2
  require 'json'
3
+ require 'csv'
3
4
 
4
5
  module Panomosity
5
6
  class Runner
@@ -18,12 +19,14 @@ module Panomosity
18
19
  create_calibration_report
19
20
  crop_centers
20
21
  diagnose
22
+ export_control_point_csv
21
23
  fix_conversion_errors
22
24
  fix_unconnected_image_pairs
23
25
  generate_border_line_control_points
24
26
  get_columns_and_rows
25
27
  get_control_point_info
26
28
  get_neighborhood_info
29
+ import_control_point_csv
27
30
  merge_image_parameters
28
31
  nona_grid
29
32
  optimize
@@ -289,6 +292,25 @@ module Panomosity
289
292
  panorama.diagnose
290
293
  end
291
294
 
295
+ def export_control_point_csv
296
+ logger.info 'exporting control point csv'
297
+ panorama = Panorama.new(@input_file, @options)
298
+ Pair.calculate_neighborhoods(panorama, distance: 30)
299
+
300
+ filename = 'control_points.csv'
301
+ headers = %w(image_1_name image_2_name image_1_id image_2_id type width height d1 e1 d2 e2 x1 y1 x2 y2 rx ry r)
302
+ CSV.open(filename, 'w+') do |csv|
303
+ csv << headers
304
+ panorama.control_points.each do |cp|
305
+ pair = Pair.all.find { |p| p.control_points.include?(cp) }
306
+ csv << [cp.i1.name, cp.i2.name, cp.i1.id, cp.i2.id, pair.type, cp.i1.w, cp.i1.h, cp.i1.d, cp.i1.e,
307
+ cp.i2.d, cp.i2.e, cp.x1, cp.y1, cp.x2, cp.y2, cp.px, cp.py, cp.pdist]
308
+ end
309
+ end
310
+
311
+ logger.info 'Done. Check for control_points.csv'
312
+ end
313
+
292
314
  def fix_conversion_errors
293
315
  logger.info 'fixing conversion errors'
294
316
  @lines = @input_file.each_line.map do |line|
@@ -459,6 +481,33 @@ module Panomosity
459
481
  panorama.get_neighborhood_info
460
482
  end
461
483
 
484
+ def import_control_point_csv
485
+ logger.info 'importing control point csv'
486
+ panorama = Panorama.new(@input_file, @options)
487
+
488
+ filename = @csv || 'control_points.csv'
489
+ csv = CSV.read(filename)
490
+ headers = csv.first
491
+ csv = csv[1..(csv.length - 1)]
492
+ data = csv.map { |s| Hash[headers.zip(s)] }
493
+
494
+ @lines = @input_file.each_line.map do |line|
495
+ cp = panorama.control_points.find { |c| c.raw == line }
496
+ if cp
497
+ kept_cp = data.find do |d|
498
+ cp.i1.id == d['image_1_id'].to_i && cp.i2.id == d['image_2_id'].to_i &&
499
+ cp.x1.round(4) == d['x1'].to_f.round(4) && cp.x2.round(4) == d['x2'].to_f.round(4) &&
500
+ cp.y1.round(4) == d['y1'].to_f.round(4) && cp.y2.round(4) == d['y2'].to_f.round(4)
501
+ end
502
+ cp.to_s if kept_cp
503
+ else
504
+ next line
505
+ end
506
+ end.compact
507
+
508
+ save_file
509
+ end
510
+
462
511
  def merge_image_parameters
463
512
  logger.info 'merging image parameters'
464
513
  control_points = ControlPoint.parse(@compare_file)
@@ -1,3 +1,3 @@
1
1
  module Panomosity
2
- VERSION = '0.1.35'
2
+ VERSION = '0.1.36'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: panomosity
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.35
4
+ version: 0.1.36
5
5
  platform: ruby
6
6
  authors:
7
7
  - Oliver Garcia
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-06-13 00:00:00.000000000 Z
11
+ date: 2019-06-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler