AUTOMATIC PROJECTION CORRECTION

This disclosure describes systems, methods, and devices related to automatic projection correction. A device may generate a first image having a first resolution. The device may project the first image onto a surface resulting in a first projected image on a first projection area. The device may receive input data from a depth camera device, wherein the input data is associated with the first projected image on the first projected area. The device may perform automatic projection correction based on the input data. The device may generate a second image to be projected based on the automatic projection correction. The device may project the second image onto a second projection area.

TECHNICAL FIELD

This disclosure generally relates to systems and methods for wireless communications and, more particularly, to automatic projection correction.

BACKGROUND

A projector is an output device that projects images onto a surface, such as a screen or wall. It may be used as an alternative to a monitor or television when showing video or images to users. Images projected on a surface are arranged in a manner so that the projection images from the projectors are overlapped with each other in overlapped areas, so that a single and high-resolution image can be projected on the surface.

Certain implementations will now be described more fully below with reference to the accompanying drawings, in which various implementations and/or aspects are shown. However, various aspects may be implemented in many different forms and should not be construed as limited to the implementations set forth herein; rather, these implementations are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the disclosure to those skilled in the art. Like numbers in the figures refer to like elements throughout. Hence, if a feature is used across several drawings, the number used to identify the feature in the drawing where the feature first appeared will be used in later drawings.

DETAILED DESCRIPTION

A projector accepts a video or image input, processes it with the assistance of its inbuilt optical projection system consisting of a lens and optical source, and projects the enhanced output on the projection screen. When the projector is projected non-perpendicularly onto the projection area, the projected image will look trapezoidal, rather than a rectangle or square, this is referred to as the keystone effect. Keystone correction, also called keystoning, is a function that attempts to make the skew projecting image rectangle.

A current solution is to use an ordinary camera, after collecting the red-green-blue (RGB) data, locate the four corners of the projection area, and then implement corrections.

In this way, the pixel positions of the four corners can be obtained, but the actual projection position and the shape information of the projection area cannot be obtained.

Merely using RGB data is problematic in some specific situations, for example, the projection surface is not a large plane, but a raised blackboard. For another example, the edge of the projection area is not flat, or there are many items in the projection area, etc. Therefore, there is a need to implement a solution that performs Keystone correction based on collected data.

Example embodiments of the present disclosure relate to systems, methods, and devices for automatic projection correction.

In one or more embodiments, an automatic projection correction system may facilitate a RGB-D camera-assist automatic keystoning method, which uses both RGB and depth information of the projected area, generates a projection area, and performs warp-perspective to each frame.

In one or more embodiments, an automatic projection correction system may use a depth image to determine the plane distribution of the projection area. The automatic projection correction system may combine the RGB image to determine the corrected projection area. The one-to-one mapping relationship between the original image and the projection position is determined by calculating the homograph matrix mapping, and then the original image is corrected and projected to the corresponding area.

In one or more embodiments, an automatic projection correction system may combine depth images to determine the projection area. In a complex environment, depth information can be used to determine the area available for projection and perform projection. For example, automatically select the largest plane in the projection area for projection, and automatically avoid protruding items on the wall surface, etc.

The above descriptions are for purposes of illustration and are not meant to be limiting. Numerous other examples, configurations, processes, algorithms, etc., may exist, some of which are described in greater detail below. Example embodiments will now be described with reference to the accompanying figures.

FIG.1depicts an illustrative schematic diagram for an automatic projection correction system100, in accordance with one or more example embodiments of the present disclosure.

Referring toFIG.1, there is shown a projector102projecting images onto a projection area108. The projector102may be placed in a non-perpendicular fashion to the projection area108. Therefore, the keystone effect may result. The automatic projection correction system100may include a computer system106that may be connected to the projector102. The computer system106may be internal or external to the projector102. The computer system106may also be connected to a depth camera104. The depth camera104may be used to translate to Cartesian coordinates in 3D space. The computer system106may execute algorithms and perform functions that may implement the functionality of the automatic projection correction system100, in accordance with one or more example embodiments of the present disclosure. For example, the computer system106may receive input data114from the projector102and/for the depth camera104. The computer system106may also perform image processing112and automatic correction110.

In one or more embodiments, an automatic projection correction system100may facilitate collecting input data114associated with a projected image in order to perform automatic correction110. The automatic correction110may calculate a correspondence between the original image and the projected image in order to perform the image correction. Knowing the original image and the desired resolution of the original image to be projected by projector102, allows the automatic projection correction system100to convert the original image to a new image to be projected on a new area based on utilizing the depth camera104and the computer system106.

In one or more embodiments, an automatic projection correction system100may facilitate a RGB-D camera-assist automatic keystoning method. A RGB-D image is simply a combination of a RGB image and its corresponding depth image. A depth image is an image channel in which each pixel relates to a distance between the image plane and the corresponding object in the RGB image. The RGB-D camera-assist automatic keystoning method may use both RGB and depth information of the projected area in order to generate a new projection area based on performing warp-perspective to each frame. In other words, the automatic projection correction system100may use the depth image to determine the plane distribution of the projection area and combine the RGB image to determine the corrected projection area. The one-to-one mapping relationship between the original image and the projection position is determined by calculating the homograph matrix mapping, and then the original image is corrected and projected onto the corresponding area.

This solution combines depth images to determine a new and improved projection area. In a complex environment, depth information can be used to determine the area available for projection and perform the projection based on that determination. For example, an automatic projection correction system may automatically select the largest plane in the projection area for projection that automatically avoids protruding items on the wall surface, etc.

FIGS.2A-2Edepict illustrative schematic diagrams for automatic projection correction, in accordance with one or more example embodiments of the present disclosure.

Referring toFIG.2A, there is shown projector202that may be projecting an image205onto surface207. The projector202may utilize an internal projection system to process video or image input and then generate image205that is shown to be projected on the surface207as a projected image203. The image205may have a certain image resolution associated with it.

When a projector is placed in a non-perpendicular fashion with the projection area, the projected image will look trapezoidal, rather than a rectangle or square, this is called the keystone effect. Referring toFIG.2A, the projector202may be placed in a non-perpendicular manner to surface207. That placement of the projector202may result in a skewed projection of the original image205resulting in the projected image203. However, if the projector202was perpendicular to the surface207, the projected image203may be more rectangular. Here, the projected image203is shown to have four corners A′, B′, C′, and D′. These points form a trapezoid shape due to the placement of the projector202relative to the surface207.

In one or more embodiments, an automatic projection correction system may facilitate utilizing software to deform the original graphics (e.g., image205) to change the projected image (e.g., projected image203) from a trapezoid to a normal rectangle. In this process, a camera204may be used to collect the projected image203and calculate a correspondence between the original image205and the projected image203. The camera204may be a depth camera. A depth camera has pixels that have a different numerical value associated with them, that number being the distance from the camera, or “depth.” Some depth cameras have both an RGB and a depth system, which can give pixels with all four values, or RGBD.

By utilizing the camera204with the projector202, RGB data may be used to identify the four corners (e.g., four corners A′, B′, C′, and D′) of the projected image203. These four corners' locations (e.g., coordinates) may be used by the camera204to translate to cartesian coordinates in 3D space.

FIGS.2B-2Eshow various possible trapezoidal shapes that may result from a skewed projected image on a surface. For example, looking atFIG.2B, there is shown a trapezoid having a width value n and a height value m. An automatic projection correction system may generate an enhanced projected image210that maintains the image resolution as was desired when image205was generated before projection. The enhanced projected image210may be the largest possible rectangle that may fit in the trapezoid shape without changing the resolution of the original image205. The enhanced projected image210may then be determined to have a height c and a width b that results in the same resolution as the original image205. Similarly looking atFIGS.2C,2D, and2E, different trapezoidal shapes may be enhanced using the automatic projection correction system by generating enhanced projected images (e.g., enhanced projected images212,214, and216) that meet the image resolution of the original image205.

The automatic projection correction system may utilize input received from camera204. The camera204may collect data associated with the projected image203. For example, the camera204may determine the coordinates of A′, B′, C′, and D′. From there, an automatic projection correction system may calculate the length of all four sides of the projected image203(e.g., A′B′, A′C′, C′D′, B′D′). These lengths may be used to identify the shape of distortion based on the projector202placement relative to surface207. Knowing the projected image203and the original image205, an automatic projection correction system may utilize a mammography matrix that maps between these two images in order to generate an enhanced image to be projected on surface207. The enhanced image may be any of the enhanced projected images210,212,214, or216.

FIGS.3A-3Bdepict illustrative schematic diagrams for automatic projection correction, in accordance with one or more example embodiments of the present disclosure.

Referring toFIG.3A, there is shown a projector302projecting on a surface a projected image308showing object301. The projected image308has a trapezoidal shape instead of a rectangle shape as expected. Referring toFIG.3B, there is shown an automatic projection correction system that may enhance the projected image308into a rectangle or projected image310showing objects301.

In one or more embodiments, an automatic projection correction system may utilize depth camera304in conjunction with computer system306and the projector302in order to enhance the output of the projector302resulting in the projected image310. The automatic projection correction system may determine the coordinates of the projected image308using the camera304. Then, the position coordinates of the corrected distortion output corners can be calculated. Using the pixel location of source image corners and corrected distortion output corners, it may be possible to calculate a 3×3 homograph matrix, which correlates the original image with the projected image308. Then, the computer system306may perform warp perspective transformation to every input frame in order to correct every output projected frame. This result is shown in projected image310.

FIGS.4A-4Bdepict illustrative schematic diagrams for automatic projection correction, in accordance with one or more example embodiments of the present disclosure.

Referring toFIG.4A, there is shown a projector402that may be projecting object401on a projected area408. The projector402may also be equipped with a camera406that may be a depth camera. The camera406may obtain information associated with the surface shape of the projection area408. The camera406may assist the projector402to perform as expected by projecting a rectangular projected area and avoiding objects in a complex environment. In the example ofFIG.4Aobjects405and406may be placed in front of the projector402causing the projected image408to overlap on top of these objects. An automatic projection correction system may facilitate utilizing the camera406in order to generate depth information to detect objects obstructing the projected area408. In this example, objects407and405are shown to be obstructing the projected area408.

Referring toFIG.4B, an automatic projection correction system may generate a new projected area410that considers the depth information associated with objects405and407while maintaining the resolution of the original image of object401. Therefore, the new projected area410avoids objects405and407.

FIGS.5A-5Bdepict illustrative schematic diagrams for automatic projection correction, in accordance with one or more example embodiments of the present disclosure.

Referring toFIG.5A, there is shown a projector502projecting an image508showing an object501. The image508may cover a raised blackboard503. It may be intended for the image508to fit within the border of the raised blackboard503.

Referring toFIG.5B, a depth camera504may be utilized in order to adjust and enhance the image508in order to generate a new projected image510that fits within the border of the raised blackboard503.

In one or more embodiments, the depth camera504may determine the planar position of the protrusion (e.g., raised edge of the blackboard503). The depth camera504may generate data that may be used by a computer system506to perform correction to the image frame to fit in the corresponding area of the blackboard503by avoiding the raised edge of the blackboard503.

In general, the use of the camera (e.g., RGB camera) of the projector502to correct the projector is limited. However, the use of the depth camera504may solve these limitations. In the case of projecting to a complex wall, the depth information can be used to make a judgment about the surface and select the corresponding corrected projection area for projection. It is understood that the above descriptions are for purposes of illustration and are not meant to be limiting.

FIG.6illustrates a flow diagram of a process600for an automatic projection correction system, in accordance with one or more example embodiments of the present disclosure.

At block602, a device (e.g., the automatic projection correction device ofFIG.1and/or the automatic projection correction device719ofFIG.7) may generate a first image having a first resolution.

At block604, the device may project the first image onto a surface resulting in a first projected image on a first projection area. The first projected area is non-perpendicular to an axis of a lens of a projector. The surface may comprise a raised edge.

At block606, the device may receive input data from a depth camera device, wherein the input data is associated with the first projected image on the first projected area.

At block608, the device may perform automatic projection correction based on the input data. Performing the automatic projection correction may comprise applying a homograph matrix between a relationship of the first image and the first projected image. The second image has the same resolution as the first image. The device may detect one or more objects inside the first projected area, wherein the one or more objects interfere with the first projected image.

At block610, the device may generate a second image to be projected based on the automatic projection correction. The device may generate the largest rectangle associated with the first projected area while keeping the first resolution based on the input data from the depth camera device. The device may adjust the first projected area based on the input data from the depth camera device to avoid the one or more objects. The input data may comprise pixel positions of four corners of the first projected image, projection position, and shape information of the first projected image.

At block612, the device may project the second image onto a second projection area.

FIG.7illustrates an embodiment of an exemplary system700, in accordance with one or more example embodiments of the present disclosure.

In various embodiments, the system700may comprise or be implemented as part of an electronic device.

In some embodiments, the system700may be representative, for example, of a computer system such as computer system106FIG.1.

The embodiments are not limited in this context. More generally, the system700is configured to implement all logic, systems, processes, logic flows, methods, equations, apparatuses, and functionality described herein and with reference to the figures.

The system700may be a computer system with multiple processor cores such as a distributed computing system, supercomputer, high-performance computing system, computing cluster, mainframe computer, mini-computer, client-server system, personal computer (PC), workstation, server, portable computer, laptop computer, tablet computer, handheld device such as a personal digital assistant (PDA), or other devices for processing, displaying, or transmitting information. Similar embodiments may comprise, e.g., entertainment devices such as a portable music player or a portable video player, a smartphone or other cellular phones, a telephone, a digital video camera, a digital still camera, an external storage device, or the like. Further embodiments implement larger-scale server configurations. In other embodiments, the system700may have a single processor with one core or more than one processor. Note that the term “processor” refers to a processor with a single core or a processor package with multiple processor cores.

In at least one embodiment, the computing system700is representative for example, of a computer system such as computer system106FIG.1. More generally, the computing system700is configured to implement all logic, systems, processes, logic flows, methods, apparatuses, and functionality described herein with reference to the above figures.

As used in this application, the terms “system” and “component” and “module” are intended to refer to a computer-related entity, either hardware, a combination of hardware and software, software, or software in execution, examples of which are provided by the exemplary system700. For example, a component can be but is not limited to being, a process running on a processor, a processor, a hard disk drive, multiple storage drives (of optical and/or magnetic storage medium), an object, an executable, a thread of execution, a program, and/or a computer.

By way of illustration, both an application running on a server and the server can be a component. One or more components can reside within a process and/or thread of execution, and a component can be localized on one computer and/or distributed between two or more computers. Further, components may be communicatively coupled to each other by various types of communications media to coordinate operations. The coordination may involve the uni-directional or bi-directional exchange of information. For instance, the components may communicate information in the form of signals communicated over the communications media. The information can be implemented as signals allocated to various signal lines. In such allocations, each message is a signal. Further embodiments, however, may alternatively employ data messages. Such data messages may be sent across various connections. Exemplary connections include parallel interfaces, serial interfaces, and bus interfaces.

As shown in this figure, system700comprises a motherboard705for mounting platform components. The motherboard705is a point-to-point (P-P) interconnect platform that includes a processor710, a processor730coupled via a P-P interconnects/interfaces as an Ultra Path Interconnect (UPI), and an automatic projection correction device719. In other embodiments, the system700may be of another bus architecture, such as a multi-drop bus. Furthermore, each of processors710and730may be processor packages with multiple processor cores. As an example, processors710and730are shown to include processor core(s)720and740, respectively. While the system700is an example of a two-socket (2S) platform, other embodiments may include more than two sockets or one socket. For example, some embodiments may include a four-socket (4S) platform or an eight-socket (8S) platform. Each socket is a mount for a processor and may have a socket identifier. Note that the term platform refers to the motherboard with certain components mounted such as the processors710and the chipset760. Some platforms may include additional components and some platforms may only include sockets to mount the processors and/or the chipset.

The processor710includes an integrated memory controller (IMC)714and P-P interconnects/interfaces718and752. Similarly, the processor730includes an IMC734and P-P interconnects/interfaces738and754. The IMC's714and734couple the processors710and730, respectively, to respective memories, a memory712, and a memory732. The memories712and732may be portions of the main memory (e.g., a dynamic random-access memory (DRAM)) for the platform such as double data rate type 3 (DDR3) or type 4 (DDR4) synchronous DRAM (SDRAM). In the present embodiment, the memories712and732locally attach to the respective processors710and730.

In addition to the processors710and730, the system700may include an automatic projection correction device719. The automatic projection correction device719may be connected to chipset760by means of P-P interconnects/interfaces729and769. The automatic projection correction device719may also be connected to a memory739. In some embodiments, the automatic projection correction device719may be connected to at least one of the processors710and730. In other embodiments, the memories712,732, and739may couple with the processor710and730, and the automatic projection correction device719via a bus and shared memory hub.

System700includes chipset760coupled to processors710and730. Furthermore, chipset760can be coupled to storage medium703, for example, via an interface (I/F)766. The I/F766may be, for example, a Peripheral Component Interconnect-enhanced (PCI-e). The processors710,730, and the automatic projection correction device719may access the storage medium703through chipset760. The automatic projection correction device619may implement one or more of the processes or operations described herein, (e.g., process600ofFIG.6).

Storage medium703may comprise any non-transitory computer-readable storage medium or machine-readable storage medium, such as an optical, magnetic, or semiconductor storage medium. In various embodiments, storage medium703may comprise an article of manufacture. In some embodiments, storage medium703may store computer-executable instructions, such as computer-executable instructions702to implement one or more of the processes or operations described herein, (e.g., process600ofFIG.6). The storage medium703may store computer-executable instructions for any equations depicted above. The storage medium703may further store computer-executable instructions for models and/or networks described herein, such as a neural network or the like. Examples of a computer-readable storage medium or machine-readable storage medium may include any tangible media capable of storing electronic data, including volatile memory or non-volatile memory, removable or non-removable memory, erasable or non-erasable memory, writeable or re-writeable memory, and so forth. Examples of computer-executable instructions may include any suitable types of code, such as source code, compiled code, interpreted code, executable code, static code, dynamic code, object-oriented code, visual code, and the like. It should be understood that the embodiments are not limited in this context.

The processor710couples to a chipset760via P-P interconnects/interfaces752and762and the processor730couples to a chipset760via P-P interconnects/interfaces754and764. Direct Media Interfaces (DMIs) may couple the P-P interconnects/interfaces752and762and the P-P interconnects/interfaces754and764, respectively. The DMI may be a high-speed interconnect that facilitates, e.g., eight Giga Transfers per second (GT/s) such as DMI 3.0. In other embodiments, the processors710and730may interconnect via a bus.

The chipset760may comprise a controller hub such as a platform controller hub (PCH). The chipset760may include a system clock to perform clocking functions and include interfaces for an I/O bus such as a universal serial bus (USB), peripheral component interconnects (PCIs), serial peripheral interconnects (SPIs), integrated interconnects (I2Cs), and the like, to facilitate connection of peripheral devices on the platform. In other embodiments, the chipset760may comprise more than one controller hub such as a chipset with a memory controller hub, a graphics controller hub, and an input/output (I/O) controller hub.

In the present embodiment, the chipset760couples with a trusted platform module (TPM)772and the UEFI, BIOS, Flash component774via an interface (I/F)770. The TPM772is a dedicated microcontroller designed to secure hardware by integrating cryptographic keys into devices. The UEFI, BIOS, Flash component774may provide pre-boot code.

Furthermore, chipset760includes the I/F766to couple chipset760with a high-performance graphics engine, graphics card765. In other embodiments, the system700may include a flexible display interface (FDI) between the processors710and730and the chipset760. The FDI interconnects a graphics processor core in a processor with the chipset760.

Various I/O devices792couple to the bus781, along with a bus bridge780that couples the bus781to a second bus791and an I/F768that connects the bus781with the chipset760. In one embodiment, the second bus791may be a low pin count (LPC) bus. Various devices may couple to the second bus791including, for example, a keyboard782, a mouse784, communication devices786, a storage medium701, and an audio I/O790.

The artificial intelligence (AI) accelerator767may be circuitry arranged to perform computations related to AI. The AI accelerator767may be connected to storage medium701and chipset760. The AI accelerator767may deliver the processing power and energy efficiency needed to enable abundant data computing. The AI accelerator767is a class of specialized hardware accelerators or computer systems designed to accelerate artificial intelligence and machine learning applications, including artificial neural networks and machine vision. The AI accelerator767may be applicable to algorithms for robotics, internet of things, other data-intensive and/or sensor-driven tasks.

Many of the I/O devices792, communication devices786, and the storage medium701may reside on the motherboard705while the keyboard782and the mouse784may be add-on peripherals. In other embodiments, some or all the I/O devices792, communication devices786, and the storage medium701are add-on peripherals and do not reside on the motherboard705.

A data processing system suitable for storing and/or executing program code will include at least one processor coupled directly or indirectly to memory elements through a system bus. The memory elements can include local memory employed during actual execution of the program code, bulk storage, and cache memories that provide temporary storage of at least some program code to reduce the number of times code must be retrieved from bulk storage during execution. The term “code” covers a broad range of software components and constructs, including applications, drivers, processes, routines, methods, modules, firmware, microcode, and subprograms. Thus, the term “code” may be used to refer to any collection of instructions that, when executed by a processing system, perform a desired operation or operations.

Logic circuitry, devices, and interfaces herein described may perform functions implemented in hardware and implemented with code executed on one or more processors. Logic circuitry refers to the hardware or the hardware and code that implements one or more logical functions. Circuitry is hardware and may refer to one or more circuits. Each circuit may perform a particular function. A circuit of the circuitry may comprise discrete electrical components interconnected with one or more conductors, an integrated circuit, a chip package, a chipset, memory, or the like. Integrated circuits include circuits created on a substrate such as a silicon wafer and may comprise components. Integrated circuits, processor packages, chip packages, and chipsets may comprise one or more processors.

Processors may receive signals such as instructions and/or data at the input(s) and process the signals to generate at least one output. While executing code, the code changes the physical states and characteristics of transistors that make up a processor pipeline. The physical states of the transistors translate into logical bits of ones and zeros stored in registers within the processor. The processor can transfer the physical states of the transistors into registers and transfer the physical states of the transistors to another storage medium.

A processor may comprise circuits to perform one or more sub-functions implemented to perform the overall function of the processor. One example of a processor is a state machine or an application-specific integrated circuit (ASIC) that includes at least one input and at least one output. A state machine may manipulate the at least one input to generate the at least one output by performing a predetermined series of serial and/or parallel manipulations or transformations on the at least one input.

The following examples pertain to further embodiments.

Example 1 may include a system that comprises at least one memory that stores computer-executable instructions; and at least one processor configured to access the at least one memory and execute the computer-executable instructions to: generate a first image having a first resolution; project the first image onto a surface resulting in a first projected image on a first projection area; receive input data from a depth camera device, wherein the input data may be associated with the first projected image on the first projected area; perform automatic projection correction based on the input data; generate a second image to be projected based on the automatic projection correction; and project the second image onto a second projection area.

Example 2 may include the system of example 1 and/or some other example herein, wherein performing the automatic projection correction comprises applying a homograph matrix between a relationship of the first image and the first projected image.

Example 3 may include the system of example 1 and/or some other example herein, wherein the second image has a same resolution as the first image.

Example 4 may include the system of example 1 and/or some other example herein, wherein the computer-executable instructions further comprise instructions to generate a largest rectangle associated with the first projected area while keeping the first resolution based on the input data from the depth camera device.

Example 5 may include the system of example 1 and/or some other example herein, wherein the computer-executable instructions further comprise instructions to detect one or more objects inside the first projected area, wherein the one or more objects interfere with the first projected image.

Example 6 may include the system of example 5 and/or some other example herein, wherein the computer-executable instructions further comprise instructions to adjust the first projected area based on the input data from the depth camera device to avoid the one or more objects.

Example 7 may include the system of example 1 and/or some other example herein, wherein the first projected area may be non-perpendicular to an axis of a lens of a projector.

Example 8 may include the system of example 1 and/or some other example herein, wherein the surface comprises a raised edge.

Example 9 may include the system of example 1 and/or some other example herein, wherein the input data comprises pixel positions of four corners of the first projected image, projection position, and shape information of the first projected image.

Example 10 may include a non-transitory computer-readable medium storing computer-executable instructions which when executed by one or more processors result in performing operations comprising: generating a first image having a first resolution; projecting the first image onto a surface resulting in a first projected image on a first projection area; receiving input data from a depth camera device, wherein the input data may be associated with the first projected image on the first projected area; performing automatic projection correction based on the input data; generating a second image to be projected based on the automatic projection correction; and projecting the second image onto a second projection area.

Example 11 may include the non-transitory computer-readable medium of example 10 and/or some other example herein, wherein performing the automatic projection correction comprises applying a homograph matrix between a relationship of the first image and the first projected image.

Example 12 may include the non-transitory computer-readable medium of example 10 and/or some other example herein, wherein the second image has a same resolution as the first image.

Example 13 may include the non-transitory computer-readable medium of example 10 and/or some other example herein, wherein the operations further comprise generating a largest rectangle associated with the first projected area while keeping the first resolution based on the input data from the depth camera device.

Example 14 may include the non-transitory computer-readable medium of example 10 and/or some other example herein, wherein the operations further comprise detecting one or more objects inside the first projected area, wherein the one or more objects interfere with the first projected image.

Example 15 may include the non-transitory computer-readable medium of example 14 and/or some other example herein, wherein the operations further comprise adjusting the first projected area based on the input data from the depth camera device to avoid the one or more objects.

Example 16 may include the non-transitory computer-readable medium of example 10 and/or some other example herein, wherein the first projected area may be non-perpendicular to an axis of a lens of a projector.

Example 17 may include the non-transitory computer-readable medium of example 10 and/or some other example herein, wherein the surface comprises a raised edge.

Example 18 may include the non-transitory computer-readable medium of example 10 and/or some other example herein, wherein the input data comprises pixel positions of four corners of the first projected image, projection position, and shape information of the first projected image.

Example 19 may include a method comprising: generating, by one or more processors, a first image having a first resolution; projecting the first image onto a surface resulting in a first projected image on a first projection area; receiving input data from a depth camera device, wherein the input data may be associated with the first projected image on the first projected area; performing automatic projection correction based on the input data; generating a second image to be projected based on the automatic projection correction; and projecting the second image onto a second projection area.

Example 20 may include the method of example 19 and/or some other example herein, wherein performing the automatic projection correction comprises applying a homograph matrix between a relationship of the first image and the first projected image.

Example 21 may include the method of example 19 and/or some other example herein, wherein the second image has a same resolution as the first image.

Example 22 may include the method of example 19 and/or some other example herein, further comprising generating a largest rectangle associated with the first projected area while keeping the first resolution based on the input data from the depth camera device.

Example 23 may include the method of example 19 and/or some other example herein, further comprising detecting one or more objects inside the first projected area, wherein the one or more objects interfere with the first projected image.

Example 24 may include the method of example 23 and/or some other example herein, further comprising adjusting the first projected area based on the input data from the depth camera device to avoid the one or more objects.

Example 25 may include the method of example 19 and/or some other example herein, wherein the first projected area may be non-perpendicular to an axis of a lens of a projector.

Example 26 may include the method of example 19 and/or some other example herein, wherein the surface comprises a raised edge.

Example 27 may include the method of example 19 and/or some other example herein, wherein the input data comprises pixel positions of four corners of the first projected image, projection position, and shape information of the first projected image.

Example 28 may include an apparatus comprising means for: generating a first image having a first resolution; projecting the first image onto a surface resulting in a first projected image on a first projection area; receiving input data from a depth camera device, wherein the input data may be associated with the first projected image on the first projected area; performing automatic projection correction based on the input data; generating a second image to be projected based on the automatic projection correction; and projecting the second image onto a second projection area.

Example 29 may include the apparatus of example 28 and/or some other example herein, wherein performing the automatic projection correction comprises applying a homograph matrix between a relationship of the first image and the first projected image.

Example 30 may include the apparatus of example 28 and/or some other example herein, wherein the second image has a same resolution as the first image.

Example 31 may include the apparatus of example 28 and/or some other example herein, further comprising generating a largest rectangle associated with the first projected area while keeping the first resolution based on the input data from the depth camera device.

Example 32 may include the apparatus of example 28 and/or some other example herein, further comprising detecting one or more objects inside the first projected area, wherein the one or more objects interfere with the first projected image.

Example 33 may include the apparatus of example 32 and/or some other example herein, further comprising adjusting the first projected area based on the input data from the depth camera device to avoid the one or more objects.

Example 34 may include the apparatus of example 28 and/or some other example herein, wherein the first projected area may be non-perpendicular to an axis of a lens of a projector.

Example 35 may include the apparatus of example 28 and/or some other example herein, wherein the surface comprises a raised edge.

Example 36 may include the apparatus of example 28 and/or some other example herein, wherein the input data comprises pixel positions of four corners of the first projected image, projection position, and shape information of the first projected image.

Example 38 may include an apparatus comprising logic, modules, and/or circuitry to perform one or more elements of a method described in or related to any of examples 1-36, or any other method or process described herein.

Example 39 may include a method, technique, or process as described in or related to any of examples 1-36, or portions or parts thereof.

Example 42 may include a system for providing wireless communication as shown and described herein.

Example 43 may include a device for providing wireless communication as shown and described herein.