acfr / snark

generic c++ libraries and utilities for robotics
Other
69 stars 41 forks source link

'forked' arithmetic operations multi-channel behaviour #121

Closed spotiris closed 7 years ago

spotiris commented 7 years ago

A popular use-case for these operations is to divide by a percent image (where every pixel is in the range (0, 1]) in order to correct for lens vignetting and uneven illumination fields. This applies for RGB images as well as mono images. Currently when an RGB image is multiplied by a vignetting percent image an error is given: cv-cat: divide: channel mis-match, input image channels: 3, the operand channels: 1 The behaviour should be that each input image channel is divided by the single channel operand image.

Reference command line: cat my_bayer_video.bin | cv-cat 'bayer=1;divide=load:percent_vignette-left.bin;timestamp;resize=0.3;view=100;null'

vlaskine commented 7 years ago

after giving it a thought, we would prefer the following usage:

cat my_bayer_video.bin | cv-cat 'bayer=1;divide=load:percent_vignette-left.bin|clone-channels=3;timestamp..."

is it ok for now? (clone-channels operation is implemented and will be pushed today)