Projecting images on a spherical venue
Systems, methods, and apparatuses disclosed herein can retrieve an image or a series of images, often referred to as video, that can be projected onto a media plane of a venue. These systems, methods, and apparatuses can transform the image from two-dimensions to three-dimensions for projection onto the media plane. As part of this transformation, these systems, methods, and apparatuses can logically segment the media plane into multiple slices of the media plane and the image into multiple slices of the image. Thereafter, these systems, methods, and apparatuses can project one or more pixels of the slices of the media plane onto an image space of an image slice to provide one or more points on the image slice. These systems, methods, and apparatuses thereafter weighs and accumulates color information of one or more pixels from the image slice that are nearby the one or more points on the image to interpolate color information, of the pixels of the media plane.
1 . An image processing server from among a plurality of image processors for transforming an image for projection onto a media plane of a venue, the image processor comprising:
a memory configured to store instructions; and
a processor, configured to execute the instructions, the instructions, when executed by the processor, configuring the processor to:
retrieve a two-dimensional slice of the image that is associated with a three-dimensional slice of the media plane from among a plurality of two-dimensional slices of the image, the three-dimensional slice being assigned to the image processing server from among a plurality of three-dimensional slices of the media plane that are distributable among the plurality of image processors,
project three-dimensional coordinates of a plurality of pixels of the three-dimensional slice of the media plane, onto two-dimensional coordinates of the two-dimensional slice of the image that to provide a plurality of two-dimensional points,
interpolate color information of the plurality of pixels of the three-dimensional slice of the media plane at the plurality of two-dimensional points based upon color information of a first plurality of pixels within the two-dimensional slice of the image or a second plurality of pixels of the image that surround the two-dimensional slice, and
provide the color information of the plurality of pixels of the three-dimensional slice of the media plane to the media plane to project the two-dimensional slice of the image onto the media plane.
2 . The image processing server of claim 1 , wherein the instructions, when executed by the processor, further configure the processor to:
logically segment the media plane into the plurality of three-dimensional slices of the media plane; and
assign each three-dimensional slice of the media plane from among the plurality of three-dimensional slices of the media plane to a corresponding image processing server from among the plurality of image processing servers.
3 . The image processing server of claim 2 , wherein the instructions, when executed by the processor, further configure the processor to:
logically segment the image into the plurality of two-dimensional slices of the image; and
associate each two-dimensional slice from among the plurality of two-dimensional slices of the image with a corresponding three-dimensional slice of the media plane from among the plurality of three-dimensional slices of the media plane.
4 . The image processing server of claim 1 , wherein the instructions, when executed by the processor, further configure the processor to crop the image to generate a statistical interpolation region of the image, the statistical interpolation region being defined relative to the plurality of two-dimensional points and including the first plurality of pixels and the second plurality of pixels.
5 . The image processing server of claim 1 , wherein the second plurality of pixels is within a second two-dimensional slice of the image from among the plurality of two-dimensional slices of the image that is associated with a second three-dimensional slice of the media plane from among the plurality of three-dimensional slices of the media plane that is assigned to a second image processing server from among a plurality of image processing servers.
6 . The image processing server of claim 1 , wherein the instructions, when executed by the processor, configure the processor to interpolate the color information of the plurality of pixels of the three-dimensional slice of the media plane by weighing and accumulating the color information of the first plurality of pixels or the second plurality of pixels that are situated within a sample kernel space defined relative to the plurality of two-dimensional points.
7 . The image processing server of claim 6 , wherein the instructions, when executed by the processor, configure the processor to weigh the color information of the first plurality of pixels or the second plurality of pixels that are situated within the sample kernel space in accordance with a probability density function.
8 . A method for operating an image processing server from among a plurality of image processors to transform an image for projection onto a media plane of a venue, the method comprising:
assigning a three-dimensional slice of the media plane to the image processing server from among a plurality of three-dimensional slices of the media plane that are distributed among the plurality of image processors;
retrieving, by the image processing server, a two-dimensional slice of the image that is associated with a three-dimensional slice of the media plane from among a plurality of two-dimensional slices of the image, the three-dimensional slice being assigned to the image processing server from among a plurality of three-dimensional slices of the media plane that are distributed among the plurality of image processors,
projecting, by the image processing server, three-dimensional coordinates of a plurality of pixels of the three-dimensional slice of the media plane onto two-dimensional coordinates of the two-dimensional slice of the image to provide a plurality of two-dimensional points;
interpolating, by the image processing server, color information of the plurality of pixels of the three-dimensional slice of the media plane at the plurality of two-dimensional points based upon color information of a first plurality of pixels within the two-dimensional slice of the image that is associated with the three-dimensional slice of the media plane or a second plurality of pixels of the image that surround the two-dimensional slice; and
providing, by the image processing server, the color information of the plurality of pixels of the three-dimensional slice of the media plane to the media plane to project the two-dimensional slice of the image onto the media plane.
9 . The method of claim 8 , wherein the assigning comprises:
logically segmenting the media plane into the plurality of three-dimensional slices of the media plane; and
assigning each three-dimensional slice of the media plane from among the plurality of three-dimensional slices of the media plane to a corresponding image processing server from among the plurality of image processing servers.
10 . The method of claim 9 , wherein the assigning further comprises:
logically segmenting the image into the plurality of two-dimensional slices of the image, and
associating each two-dimensional slice from among the plurality of two-dimensional slices of the image with a corresponding three-dimensional slice of the media plane from among the plurality of three-dimensional slices of the media plane.
11 . The method of claim 8 , wherein the interpolating comprises cropping the image to generate a statistical interpolation region of the image, the statistical interpolation region being defined relative to the plurality of two-dimensional points and including the first plurality of pixels and the second plurality of pixels.
12 . The method of claim 8 , wherein the second plurality of pixels is within a second two-dimensional slice of the image from among the plurality of two-dimensional slices of the image that is associated with a second three-dimensional slice of the media plane from among the plurality of three-dimensional slices of the media plane that is assigned to a second image processing server from among a plurality of image processing servers.
13 . The method of claim 8 , wherein the interpolating comprises interpolating the color information of the plurality of pixels of the three-dimensional slice of the media plane by weighing and accumulating the color information of the first plurality of pixels or the second plurality of pixels that are situated within a sample kernel space defined relative to the plurality of two-dimensional points.
14 . The method of claim 13 , wherein the interpolating further comprises weighing the color information of the first plurality of pixels or the second plurality of pixels that are situated within the sample kernel space in accordance with a probability density function.
15 . A system image projection system for transforming an image for projection onto a media plane of a venue, the system comprising:
a first image processing server from among a plurality of image processing servers, the first image processing server being configured to:
retrieve a first two-dimensional slice of the image from among a plurality of two-dimensional slices of the image, the first two-dimensional slice of the image being associated with a first three-dimensional slice of the media plane that is assigned to the first image processing server from among a plurality of three-dimensional slices of the media plane,
project three-dimensional coordinates of a plurality of pixels of the first three-dimensional slice of the media plane onto two-dimensional coordinates of the first two-dimensional slice of the image to provide a first plurality of two-dimensional points,
interpolate color information of the plurality of pixels of the first three-dimensional slice of the media plane at the first plurality of two-dimensional points based upon color information of a first plurality of pixels within the first two-dimensional slice of the image that is associated with the first three-dimensional slice of the media plane and color information of a second plurality of pixels of the image that surround the first two-dimensional slice, and
provide the color information of the plurality of pixels of the first three-dimensional slice of the media plane to the media plane to project the first two-dimensional slice of the image onto the media plane; and
a second image processing server from among a plurality of image processing servers, the second image processing server being configured to:
retrieve a second two-dimensional slice of the image from among the plurality of two-dimensional slices of the image, the second two-dimensional slice of the image being associated with a second three-dimensional slice of the media plane that is assigned to the second image processing server from among the plurality of three-dimensional slices of the media plane,
project three-dimensional coordinates of a plurality of pixels of the second three-dimensional slice of the media plane onto two-dimensional coordinates of the second two-dimensional slice of the image to provide a second plurality of two-dimensional points,
interpolate color information of the plurality of pixels of the second three-dimensional slice of the media plane at the second plurality of two-dimensional points based upon color information of a third plurality of pixels within the second two-dimensional slice of the image that is associated with the second three-dimensional slice of the media plane and color information of a fourth plurality of pixels of the image that surround the second two-dimensional slice, and
provide the color information of the plurality of pixels of the second three-dimensional slice of the media plane to the media plane to project the second two-dimensional slice of the image onto the media plane.
16 . The system of claim 15 , wherein the first image processing server is further configured to:
logically segment the media plane into the plurality of three-dimensional slices of the media plane; and
assign the second three-dimensional slice of the media plane to the second image processing server.
17 . The system of claim 16 , wherein the first image processing server is further configured to:
logically segment the image into the plurality of two-dimensional slices of the image; and
associate the second two-dimensional slice of the image with the second three-dimensional slice of the media plane.
18 . The system of claim 15 , wherein the first image processing server is further configured to crop the image to generate a statistical interpolation region of the image, the statistical interpolation region being defined relative to the plurality of two-dimensional points and including the first plurality of pixels or the second plurality of pixels.
19 . The system of claim 15 , wherein the second plurality of pixels is within the second two-dimensional slice of the image.
20 . The system of claim 15 , wherein the first image processing server is further configured to interpolate the color information of the plurality of pixels of the first three-dimensional slice of the media plane by weighing and accumulating the color information of the first plurality of pixels or the second plurality of pixels that are situated within a sample kernel space defined relative to the first plurality of two-dimensional points.