Honeycomb Geometry

Rigid Motions on the Hexagonal Grid

The figure comes from "Insects The Yearbook of Agriculture 1952" United States Dept. of Agriculture." Published by the US Government Printing Office. Deemed to be in the Public Domain under US Law.

by Kacper Pluta, Pascal Romon, Yukiko Kenmochi and Nicolas Passat

Motivations

We came to agree with Nouvel & Rémila that digitized rigid motions defined on the square grid are burdened with a fundamental incompatibility between rotations and the geometry of the grid.

Agenda

  • Introduction to the Bees' Point of View
     
  • Quick Introduction to Rigid Motions
     
  • Neighborhood Motion Maps
     
  • Contributions
     
  • Conclusions & Perspectives
The beehive figure's source and author unknown (if you recognize it, please let me know). The image of the bee comes from http://karenswhimsy.com/public-domain-images (public domain)

Introduction to the Bees' Point of View

Or why bees are right

The figure comes from http://thegraphicsfairy.com/vintage-clip-art-bees-with-honeycomb

Square grid

+ Memory addressing

+ Sampling is easy to define

Hexagonal grid

+ Uniform connectivity

+ Equidistant neighbors

+ Sampling is optimal

- Sampling is not optimal (ask bees)

- Neighbors are not equidistant

- Connectivity paradox

- Memory addressing is not trivial

- Sampling is difficult to define

Pros and Cons

Square grid

+ Memory addressing

+ Sampling is easy to define

Hexagonal grid

+ Uniform connectivity

+ Equidistant neighbors

+ Sampling is optimal

~ Memory addressing is not trivial

~ Sampling is difficult to define

Pros and Cons

The figure by Pearson Scott Foresman, Wikimedia.

Howdy vision lads and gals! These problems seem to be somehow solved.

- Sampling is not optimal (ask bees)

- Neighbors are not equidistant

~ Connectivity paradox

Square grid

+ Memory addressing

+ Sampling is easy to define

Hexagonal grid

+ Uniform connectivity

+ Equidistant neighbors

+ Sampling is optimal

~ Memory addressing is not trivial

~ Sampling is difficult to define

Pros and Cons

The figure by Pearson Scott Foresman, Wikimedia.

You may think: "Hold your horses! It’s not a bug, it’s a feature..."

- Sampling is not optimal (ask bees)

- Neighbors are not equidistant

~ Connectivity paradox

Hexagonal Grid

\Lambda = \mathbb{Z}\epsilon_1 \oplus \mathbb{Z}\epsilon_2
Λ=Zϵ1Zϵ2\Lambda = \mathbb{Z}\epsilon_1 \oplus \mathbb{Z}\epsilon_2

The hexagonal lattice:

and the hexagonal grid

\mathcal{H}
H\mathcal{H}

Digitization Model

The digitization operator is defined as a function

\mathcal{D}: \mathbb{R}^2 \rightarrow \Lambda
D:R2Λ\mathcal{D}: \mathbb{R}^2 \rightarrow \Lambda

such that

\forall \mathbf{x} \in \mathbb{R}^2, \exists! \mathcal{D}(\mathbf{x}) \in \Lambda
xR2,!D(x)Λ\forall \mathbf{x} \in \mathbb{R}^2, \exists! \mathcal{D}(\mathbf{x}) \in \Lambda
\mathbf{x} \in \mathcal{C}(\mathcal{D}(\mathbf{x})).
xC(D(x)).\mathbf{x} \in \mathcal{C}(\mathcal{D}(\mathbf{x})).

and

Digitization Model

This is a definition for digital geometers not for computer vision guys...

The digitization operator is defined as a function

\mathcal{D}: \mathbb{R}^2 \rightarrow \Lambda
D:R2Λ\mathcal{D}: \mathbb{R}^2 \rightarrow \Lambda

such that

\forall \mathbf{x} \in \mathbb{R}^2, \exists! \mathcal{D}(\mathbf{x}) \in \Lambda
xR2,!D(x)Λ\forall \mathbf{x} \in \mathbb{R}^2, \exists! \mathcal{D}(\mathbf{x}) \in \Lambda
\mathbf{x} \in \mathcal{C}(\mathcal{D}(\mathbf{x})).
xC(D(x)).\mathbf{x} \in \mathcal{C}(\mathcal{D}(\mathbf{x})).

and

How many digital balls do you see?

The figure of bumble bee comes from http://www.ase.org.uk (public domain)

Quick Lesson on Rigid Motions

Or how to become a beekeeper. Part I - Equipment

The figure comes from Wikimedia. Original source  The New Student's Reference Work (public domain)

\left| \begin{array}{lllll} \mathcal{U} & : & \mathbb{R}^2 & \to & \mathbb{R}^2 \\ & & \mathbf{x} & \mapsto & \mathbf{R} \mathbf{x} + \mathbf{t} \end{array} \right.
U:R2R2xRx+t\left| \begin{array}{lllll} \mathcal{U} & : & \mathbb{R}^2 & \to & \mathbb{R}^2 \\ & & \mathbf{x} & \mapsto & \mathbf{R} \mathbf{x} + \mathbf{t} \end{array} \right.

Rigid Motions on

\mathbb{R}^2
R2\mathbb{R}^2

Properties

  • Isometry map - distance preserving map

  • Bijective

U = \mathcal{D}\ \circ \mathcal{U}_{|\Lambda}
U=D UΛU = \mathcal{D}\ \circ \mathcal{U}_{|\Lambda}
\Lambda
Λ\Lambda

Properties

- Non-injective

- Non-surjective

- Do not preserve distances

\mathcal{U}(\Lambda)
U(Λ)\mathcal{U}(\Lambda)

Rigid Motions on

Related Studies

  • Nouvel, B., Rémila, E.: On colorations induced by discrete rotations. In: DGCI, Proceedings. Volume 2886 of Lecture Notes in Computer Science., Springer (2003) 174–183
     
  • Pluta, K., Romon, P., Kenmochi, Y., Passat, N.: Bijective digitized rigid motions on subsets of the plane. Journal of Mathematical Imaging and Vision (2017)

Contributions in Short

  • Extension of the former framework to the hexagonal grid
     
  • Comparison of the loss of information between the hexagonal and square grids
     
  • Complete set of neighborhood motion maps
     
  • Source code of a tool to study digitized rigid motions on the hexagonal grid 

Pure extracted honey

Neighborhood Motion Maps

Or a manual of instructions in apiculture

The figure comes from Wikimedia. The original source The honey bee: a manual of instruction in apiculture (public domain)

Neighborhood

The neighborhood of

\kappa \in \Lambda
κΛ\kappa \in \Lambda

(of squared radius

r \in \mathbb{R}_+
rR+r \in \mathbb{R}_+

)

\mathcal{N}_r(\kappa) = \big\{ \kappa + \delta \in \Lambda \mid \|\delta \|^2 \leq r \big\}
Nr(κ)={κ+δΛδ2r}\mathcal{N}_r(\kappa) = \big\{ \kappa + \delta \in \Lambda \mid \|\delta \|^2 \leq r \big\}

Neighborhood Motion Maps

The neighborhood motion map of

\kappa \in \Lambda
κΛ\kappa \in \Lambda

with respect to

r \in \mathbb{R}_+
rR+r \in \mathbb{R}_+
U
UU

and

is the function

\left| \begin{array}{lllll} \mathcal{G}^U_r & : & \mathcal{N}_r(0) & \to & \mathcal{N}_{r'}(0) \\ & & \delta & \mapsto & U(\kappa + \delta) - U(\kappa). \end{array} \right.
GrU:Nr(0)Nr(0)δU(κ+δ)U(κ).\left| \begin{array}{lllll} \mathcal{G}^U_r & : & \mathcal{N}_r(0) & \to & \mathcal{N}_{r'}(0) \\ & & \delta & \mapsto & U(\kappa + \delta) - U(\kappa). \end{array} \right.

Remainder Map step-by-step

Remainder Map step-by-step

\mathcal{U}(\kappa + \delta) = \mathbf{R}\delta + \mathcal{U}(\kappa)
U(κ+δ)=Rδ+U(κ)\mathcal{U}(\kappa + \delta) = \mathbf{R}\delta + \mathcal{U}(\kappa)

Remainder Map step-by-step

Without loss of generality,

U(\kappa)
U(κ)U(\kappa)

is an origin, then

\mathcal{U}(\delta) = \mathbf{R}\delta + \mathcal{U}(\kappa) - U(\kappa)
U(δ)=Rδ+U(κ)U(κ)\mathcal{U}(\delta) = \mathbf{R}\delta + \mathcal{U}(\kappa) - U(\kappa)

Remainder Map step-by-step

Remainder map defined as

\mathcal{F}(\kappa) = \mathcal{U}(\kappa) - U(\kappa) \in \mathcal{C}(\mathbf{0})
F(κ)=U(κ)U(κ)C(0)\mathcal{F}(\kappa) = \mathcal{U}(\kappa) - U(\kappa) \in \mathcal{C}(\mathbf{0})

 where the range

\mathcal{C}(\mathbf{0})
C(0)\mathcal{C}(\mathbf{0})

is called the remainder range.

Remainder Map step-by-step

Critical cases can be observed via the relative positions of

\mathcal{F}(\kappa)
F(κ)\mathcal{F}(\kappa)
\mathcal{H} - \mathbf{R}\delta
HRδ\mathcal{H} - \mathbf{R}\delta

that is to say

\mathcal{C}(\mathbf{0}) \cap (\mathcal{H} - \mathbf{R}\delta).
C(0)(HRδ).\mathcal{C}(\mathbf{0}) \cap (\mathcal{H} - \mathbf{R}\delta).

which are formulated by the translation

Remainder Map and Critical Rigid Motions

Remainder Map and Critical Rigid Motions

\mathscr{H} = \bigcup \limits_{\delta \in \mathcal{N}_r(\mathbf{0})} (\mathcal{H} - \mathbf{R}\delta) \cap \mathcal{C}(\mathbf{0})
H=δNr(0)(HRδ)C(0)\mathscr{H} = \bigcup \limits_{\delta \in \mathcal{N}_r(\mathbf{0})} (\mathcal{H} - \mathbf{R}\delta) \cap \mathcal{C}(\mathbf{0})

Frames

Each region bounded by critical lines is called a frame.

Frames

Each region bounded by critical lines is called a frame.

For any

\kappa, \lambda \in \Lambda, \mathcal{G}^U_r(\kappa) = \mathcal{G}^U_r(\lambda)
κ,λΛ,GrU(κ)=GrU(λ)\kappa, \lambda \in \Lambda, \mathcal{G}^U_r(\kappa) = \mathcal{G}^U_r(\lambda)

if and only if

\mathcal{F}(\kappa)
F(κ)\mathcal{F}(\kappa)

and

\mathcal{F}(\lambda)
F(λ)\mathcal{F}(\lambda)

are in the same frame.

Proposition

Remainder Range Partitioning

Contributions

Or extracting the pure, organic honey

The figure comes from Wikimedia. The original comes from A practical treatise on the hive and honey-bee (public domain)

\mathcal{F}(\Lambda)
F(Λ)\mathcal{F}(\Lambda)

For what kind of parameters has the mapping a finite number of images? 

Rational Rotations

Rational Rotations

\mathcal{F}(\Lambda)
F(Λ)\mathcal{F}(\Lambda)

If

\cos\theta = \frac{2a -b}{2 c}
cosθ=2ab2c\cos\theta = \frac{2a -b}{2 c}

and

\sin\theta = \frac{\sqrt{3}b}{2 c}
sinθ=3b2c\sin\theta = \frac{\sqrt{3}b}{2 c}

where

(a,b,c)\in \mathbb{Z}^3, \gcd(a,b,c) = 1
(a,b,c)Z3,gcd(a,b,c)=1(a,b,c)\in \mathbb{Z}^3, \gcd(a,b,c) = 1

and

0 < a < c < b,
0<a<c<b,0 < a < c < b,

Corollary

then the mapping has a finite number of images.

Non-injective Digitized Rigid Motions

Loss of Information

Conclusions & Perspectives

  • An extension of a framework to study digitized rigid motions
     
  • Characterization of rational rotations
     
  • We have showed that the loss of information is relatively lower for digitized rigid motions defined on the hexagonal grid
     
  • Our tools on BSD-3 license: https://github.com/copyme/NeighborhoodMotionMapsTools

The humble bees have been working with David Cœurjolly, Tristan Roussillon and Victor Ostromoukhov of University Lyon 1, LIRIS on some new exciting results. Stay tuned...

Homework

If you want to get into the honey business, then this book is an obligatory lecture: Middleton, Lee, and Jayanthi Sivaswamy. Hexagonal image processing: A practical approach. Springer Science & Business Media, 2006.

Honeycomb Geometry: Rigid Motions on the Hexagonal Grid

By Kacper Pluta

Honeycomb Geometry: Rigid Motions on the Hexagonal Grid

Presentation of a paper under the same name. The presentation was created for some internal proposes.

  • 337
Loading comments...

More from Kacper Pluta