lqr_carver_bias_add_area, lqr_carver_bias_add, lqr_carver_bias_add_rgb_area, lqr_carver_bias_add_rgb — update an LqrCarver
bias
#include <lqr.h>
LqrRetVal lqr_carver_bias_add_area( | LqrCarver* carver, |
gdouble* buffer, | |
gint bias_factor, | |
gint width, | |
gint height, | |
gint x_off, | |
gint y_off) ; |
LqrRetVal lqr_carver_bias_add( | LqrCarver* carver, |
gdouble* buffer, | |
gint bias_factor) ; |
LqrRetVal lqr_carver_bias_add_rgb_area( | LqrCarver* carver, |
gdouble* buffer, | |
gint bias_factor, | |
gint channels, | |
gint width, | |
gint height, | |
gint x_off, | |
gint y_off) ; |
LqrRetVal lqr_carver_bias_add_rgb( | LqrCarver* carver, |
gdouble* buffer, | |
gint bias_factor, | |
gint channels) ; |
The function lqr_carver_bias_add_area
adds a bias to an
area of the image loaded into the LqrCarver
object pointed to by
carver
. A positive biased area will be more likely to be
avoided by seams, and thus be preserved during rescaling, while a negative bias has the
opposite effect.
This function must be called after lqr_carver_init
(3)
and before lqr_carver_resize
(3). If called multiple
times, the biases added at each call will sum up.
The parameter buffer
must point to an array of doubles
of size
,
ordered first by rows, then by columns.
width
* height
The offset of the area relative to the image can be specified through
x_off
and y_off
.
The bias area can exceed the boundary of the image, and the offsets can be negative.
The parameter bias_factor
is an overall bias scale. A typical
value when the buffer contents are of the order of 1
would be
1000
.
The function lqr_carver_bias_add
can be used when the area
to add is of the same size of the image loaded in the LqrCarver
object and the
offsets are 0
.
The functions lqr_carver_bias_add_rgb_area
and
lqr_carver_bias_add_rgb
are very similar to
lqr_carver_bias_add_area
and
lqr_carver_bias_add
, except that they use 8-bit multi-channel
images as inputs.
The number of channels in the image is passed via the parameter
channels
. The last channel is assumed to be the alpha
(opacity) channel if channels
is equal to 2
or greater than 3
(if this is not the case, use the previous
functions).
The bias is computed from the average of the colour channels, multiplied by the
value of the alpha channel if present. For example, in RGBA images a white,
nontransparent pixel is equivalent to a value of 1.0
when using
a buffer in lqr_carver_bias_add_area
.