OB_032_Lateral_Propagation_From_Edge

Status

Status:: Finished


1. Operation data

Internal number: OB_032
Operational regime: Algorithmic Transformation
Source image: Digital photograph — frontal portrait (Input 005.jpeg.webp)

Operational description:
Each edge pixel stops functioning as a boundary and begins to function as a source: it emits a straight trace that copies existing color in the image, taken a few pixels behind the edge, and drags it toward the neighboring region. The length of the trace is not random: it is fixed by the image itself, through the strength of the gradient, luminance, or local saturation. Only a percentage of the edges emit.

The outline, which separated the figure from the background, becomes the origin of the invasion: the color on one side of the edge crosses to the other. The color is never invented, only copied and displaced. The only randomness is which edges emit, and this is fixed by a seed.

Family: directional drag from detected contours. The closest precedent is experiment Propagacion_de_bordes, which dilates color from the edges isotropically, like a stain growing in all directions. Here, by contrast, the propagation is directional and of variable length: each edge drags toward a single side, according to its gradient.


2. Tools

Tools / medium:

  • Python
  • NumPy
  • OpenCV
  • Edge detection (Canny or Sobel)
  • Line tracing along the gradient

Script: OB032_propagacion_lateral_desde_borde.py. It explains inside how to run it and what it requires.
Parameters per result: found in the metadata of each image (EXIF, ImageDescription field).


3. Procedure and variables

Procedure:

  1. Read the photograph and smooth it with a Gaussian blur.
  2. Detect edges using Canny (fine and selective) or Sobel (any high-gradient zone).
  3. Discard edges with a gradient strength lower than a minimum.
  4. Choose at random, with a fixed seed, the percentage of edges that emit.
  5. For each emitter, take the color a few pixels behind the edge.
  6. Trace a straight line from the edge in the chosen direction (horizontal, vertical, along the gradient, or parallel to the contour), with a length proportional to the modulator and an opacity that fades toward the end.
  7. Preserve the original dimensions of the image.

Controlled variables:

  • Edge detection method and thresholds
  • Pre-smoothing
  • Minimum edge strength
  • Property that decides length (gradient, luminance, saturation)
  • Drag direction
  • Minimum and maximum trace length
  • Trace opacity and decay
  • Percentage of emitting edges
  • Source color sampling distance
  • Protected region and final blend with the original

Uncontrolled / accidental variables:

  • Beams of converging traces when many neighboring edges share the same orientation
  • Radial halo around the head: the hair, as the zone of highest contrast, emits outward in all directions
  • Traces crossing the entire image and exiting the frame
  • Veiling: the overlapping of many fine traces allows the figure underneath to be seen as through a mesh
  • Material differences depending on the source of the color (dark traces from hair, light from the background, warm from skin)

4. Visual sequence

All steps originate from Input 005.jpeg.webp. The order is chronological, and the parameters for each are in the metadata of its image.

Steps 01–02 test horizontal drag with short traces. Steps 03–06 switch to drag along the gradient with long traces and few emitters. Steps 07–17 sweep the detection threshold, the percentage of emitters, and the minimum length along that same direction.

Initial image

Step 01

Step 02

Step 03

Step 04

Step 05

Step 06

Step 07

Step 08

Step 09

Step 10

Step 11

Step 12

Step 13

Step 14

Step 15

Step 16

Step 17


5. Visual selection

Crisis / threshold according to AI-assisted reading

Step 16

Crisis / threshold according to my perception

Step 09


6. Crisis and formal-perceptual reading

The operation affects the contour, figure-ground relationship, color, and legibility of the image:

The operation works precisely on the place where the image separates the figure from the background. The contour is not erased: edge pixels do not overwrite themselves, so the drawing survives. What is lost is its containment function, because each edge becomes a vanishing point from which matter flows outward or flows inward.

With few emitters, the image reads as a photograph with lines superimposed: the two layers do not touch. With too many, the traces form a homogeneous comb-like pattern that hides the figure. In the intermediate zone, the traces overlap until they become a veil, and the face is read through its own displaced color. The hair, which is the zone of highest contrast, emits with greater force and becomes a radial halo: precisely the zone that defined the edge of the head is the first to lose its edge.


7. Final evaluation and artistic reference

Notes on the operation / what I learned:
The parameter that drives the reading is not the length of the traces but how many edges emit. With traces longer than 800 px, the detection threshold alone decides whether the image remains stable (few threads) or collapses (a mass). The minimum length and the percentage of emitters are what allow staying at the intermediate point.

The filename generated by the script before cataloging did not include the detection thresholds, so different runs ended up with the same name. The actual parameters for each were taken from the experimentation log and stored in the metadata of each step.

Final_status:
Works:: YES

How it destroys the image:
Works_on:: Configurative

Level and richness of crisis:
Crisis:: Medium

Decision:
Selection:: Combinable


Possible artistic reference

Referent:: Arnulf Rainer, Kumi Yamashita,

Possible works: