Screen color correction method, device, equipment, medium and product
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- GRAVITYXR ELECTRONICS & TECH CO LTD
- Filing Date
- 2024-12-25
- Publication Date
- 2026-06-26
Smart Images

Figure CN122290465A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the fields of 3D display and 3D communication, and more particularly to a method, apparatus, device, medium and product for color correction of a screen. Background Technology
[0002] 3D display and 3D communication technologies have developed rapidly in recent years, becoming one of the important research directions in modern information technology. 3D display technology aims to enhance the user's visual experience by providing stereoscopic visual effects. Traditional 2D displays can only present flat images, while 3D displays can simulate the parallax of the human eye, creating a visual effect with a sense of depth.
[0003] Meanwhile, the development of 3D communication technology has made remote communication more vivid and intuitive. By combining 3D display and real-time data transmission technologies, 3D communication can create realistic, three-dimensional interactive scenarios between users in different locations. With the advancement of virtual reality and augmented reality technologies, 3D communication is expected to further break through spatial limitations, achieving more natural and efficient remote communication.
[0004] In practical applications, display screens are typically 2D displays, primarily used to display 2D images. To achieve 3D display using an existing 2D display, a cylindrical lens film needs to be applied to the 2D display. However, applying the cylindrical lens film to the 2D display causes color deviations; therefore, a method is needed to correct these color casts in the 3D display. Summary of the Invention
[0005] This application provides a screen color correction method, apparatus, device, medium, and product for correcting color deviation in 3D displays.
[0006] On one hand, this application provides a color correction method for a screen, the screen including a 2D screen and a lens layer; the method includes: acquiring a test image of the screen and the grayscale values of sub-pixels in the test image; finding color correction parameters at different observation positions to obtain color correction parameters at the current observation position; wherein, the color correction parameters at the observation position characterize the difference between the grayscale value of each sub-pixel and the actual pixel value at that observation position; and correcting the grayscale values of sub-pixels in the test image according to the color correction parameters at the current observation position of at least one user.
[0007] In one possible implementation, if the current observation position is a single viewpoint, the grayscale values of sub-pixels in the test image are corrected according to the color correction parameters of at least one user's current observation position. This includes: for a single user, performing the following first processing, which includes: obtaining the emission direction of each sub-pixel in the test image based on the three-dimensional spatial relative position of each sub-pixel in the test image with respect to the lens layer; combining the emission direction of each sub-pixel in the test image with the spatial coordinates of the current human eye's viewpoint to select sub-pixels in the test image belonging to the current viewpoint; converting the grayscale values of the sub-pixels under the current viewpoint to the linear domain to obtain the linear domain grayscale values of the sub-pixels under the current viewpoint; and correcting the linear domain grayscale values of the sub-pixels under the current viewpoint according to the color correction parameters under the current viewpoint.
[0008] In one possible implementation, if the current observation position is multi-viewpoint, the grayscale values of sub-pixels in the test image are corrected according to the color correction parameters of at least one user's current observation position. This includes: for a single user, performing the following second processing, which includes: combining the emission direction of each sub-pixel in the test image with the spatial coordinates of the human eye's viewpoint at each viewpoint to obtain the sub-pixel at each viewpoint; converting the grayscale values of the sub-pixels at each viewpoint to the linear domain to obtain the linear domain grayscale values of the sub-pixels at each viewpoint; and correcting the linear domain grayscale values of the sub-pixels at each viewpoint according to the color correction parameters at each viewpoint.
[0009] In one possible implementation, correcting the grayscale values of sub-pixels in the test image based on color correction parameters at the current observation position of at least one user further includes: for multiple users, performing the following third process, which includes: determining the correction weight of the color correction parameters corresponding to the current observation position of each user based on the current observation positions of the multiple users; calculating the color correction parameters corresponding to the current observation position of each user based on the correction weights to obtain the target color correction parameters corresponding to the current observation position of each user; and correcting the grayscale values of sub-pixels in the test image based on the target color correction parameters corresponding to the current observation position of each user.
[0010] In one possible implementation, correcting the grayscale values of sub-pixels in the test image based on color correction parameters at the current observation position of at least one user further includes: performing a fourth process for multiple users, the fourth process including: obtaining eye-tracking parameters of multiple users by performing eye-tracking on multiple users; determining the user with the highest level of focus associated with the screen among the multiple users based on the eye-tracking parameters of the multiple users; and performing a first process or a second process for the user with the highest level of focus associated with the screen.
[0011] In one possible implementation, eye-tracking parameters include at least: the location and time of the fixation point, fixation duration, number of fixations, and fixation sequence.
[0012] In one possible implementation, obtaining the grayscale value of a sub-pixel in the test image includes: calculating the grayscale value of the sub-pixel in the test image based on the weighted grayscale value of the intersection point of the principal ray of each sub-pixel with the test image and the area scaling factor of the sub-pixel; wherein the sub-pixels in the test image include sub-pixels with at least three color channels.
[0013] In one possible implementation, the color correction parameters include a first color correction parameter, and the method further includes: obtaining a first 3D display image based on the relative position of the color chart 3D display image and the screen depth in spatial coordinates, and obtaining the grayscale value of each sub-pixel in the first 3D display image; capturing the screen to obtain a screen simulation image, filling the screen simulation image with the grayscale value of each sub-pixel in the first 3D display image to obtain a filled screen simulation image; obtaining screen rendering images at different viewing positions based on the three-dimensional digital model and the filled screen simulation image; and calculating the first color correction parameter based on the screen rendering images at different viewing positions and the color chart 3D display image.
[0014] In one possible implementation, filling the screen simulation image with the grayscale value of each sub-pixel in the first 3D display image includes: extracting a first pixel from the screen simulation image and separating the sub-pixels of the first pixel; performing interpolation scaling on the first pixel and its sub-pixels to determine the effective region coordinate set of the sub-pixels of the first pixel; calculating the center coordinates of each sub-pixel in the pixel for each pixel in the screen simulation image; determining the position of each sub-pixel in the screen simulation image based on the effective region coordinate set of the sub-pixels of the first pixel and the center coordinates of each sub-pixel, and filling the screen simulation image with the grayscale value of each sub-pixel in the first 3D display image.
[0015] In one possible implementation, the first color correction parameter is calculated based on the screen rendering and color chart 3D display at different observation positions. This includes: performing the following processing at different observation positions to obtain the first color correction parameter corresponding to each observation position; the processing includes: separating the screen rendering and color chart 3D display at the observation position into color blocks; taking the average value of the pixel values corresponding to the same color blocks in the screen rendering and color chart 3D display at the observation position in the pixel value channel to form a first matrix and a second matrix; calculating the color gain matrix based on the first matrix and the second matrix; taking the average value of the color gain matrix in the pixel value channel and normalizing it to obtain the first color correction parameter corresponding to the observation position.
[0016] In one possible implementation, the color correction parameters include a second color correction parameter, and the method further includes: taking a 3D display image of the color card to obtain a real photograph of the color card; and calculating the second color correction parameter at different observation positions based on the 3D display image and the real photograph of the color card.
[0017] In one possible implementation, the second color correction parameter is calculated at different observation positions based on the 3D color chart display image and the actual color chart image. This includes performing the following processing at different observation positions to obtain the second color correction parameter corresponding to each observation position: separating the color blocks in the 3D color chart display image and the actual color chart image; taking the average value of the pixel values corresponding to the same color blocks in the 3D color chart display image and the actual color chart image in the pixel value channel to construct a third matrix and a fourth matrix; and calculating the second color correction parameter corresponding to the observation position based on the third matrix and the fourth matrix.
[0018] In one possible implementation, the test images for the screen include: planar point clouds, 3D Gaussian spheres, and 4D Gaussian spheres.
[0019] On the other hand, this application provides a screen color correction device, the screen including a 2D screen and a lens layer; the device includes: an acquisition module for acquiring a test image of the screen and the grayscale values of sub-pixels in the test image; a search module for searching for color correction parameters at different observation positions to obtain the color correction parameters at the current observation position; wherein, the color correction parameters at the observation position characterize the difference between the grayscale value of each sub-pixel and the actual pixel value at that observation position; and a correction module for correcting the grayscale values of sub-pixels in the test image according to the color correction parameters at the current observation position of at least one user.
[0020] In another aspect, this application provides an electronic device, including: a processor, and a memory communicatively connected to the processor; the memory stores computer-executable instructions; the processor executes the computer-executable instructions stored in the memory to implement the aforementioned method.
[0021] In another aspect, this application provides a computer-readable storage medium storing computer-executable instructions that, when executed by a processor, are used to implement the aforementioned method.
[0022] In another aspect, this application provides a computer program product, including a computer program that, when executed by a processor, implements the aforementioned method.
[0023] The screen color correction method, apparatus, device, medium, and product provided in this application first acquire a test image of the screen and the grayscale values of the sub-pixels in the test image; then, it searches for color correction parameters at different observation positions to obtain the color correction parameters at the current observation position; wherein, the color correction parameters at the observation position characterize the difference between the grayscale value of each sub-pixel and the actual pixel value at that observation position; finally, it corrects the grayscale values of the sub-pixels in the test image based on the color correction parameters at the current observation position of at least one user. The solution of this application, by searching for the color correction parameters at the current observation position from the color correction parameters at different observation positions and correcting the grayscale values of the sub-pixels in the screen test image, can effectively correct the color deviation of the screen at different observation positions, thereby achieving the correction of color cast in 3D displays. Attached Figure Description
[0024] The accompanying drawings, which are incorporated in and form part of this specification, illustrate embodiments consistent with this application and, together with the description, serve to explain the principles of this application.
[0025] Figure 1 A microscope image showing the actual pixel arrangement of the display screen;
[0026] Figure 2 A schematic diagram of a 3D screen with a lens layer attached;
[0027] Figure 3 Images showing the 0° field of view for three different cylindrical lens film parameters;
[0028] Figure 4 Rendered images corresponding to sub-pixels of different lengths r, g, b;
[0029] Figure 5 The diagram above illustrates a flowchart of the screen color correction method provided in Embodiment 1 of this application.
[0030] Figure 6 A schematic diagram of a planar point cloud as an example;
[0031] Figure 7 3D display image of the color chart;
[0032] Figure 8 This is a screen simulation diagram;
[0033] Figure 9 This is a schematic diagram of pixel separation;
[0034] Figure 10 Rendered images of the screen from different viewing positions;
[0035] Figure 11 Schematic diagrams for different observation positions;
[0036] Figure 12 A flowchart of a screen color correction method provided in Embodiment 2 of this application;
[0037] Figure 13 The diagram above exemplarily illustrates the structure of the screen color correction device provided in Embodiment 3 of this application;
[0038] Figure 14 This is a schematic diagram of the structure of the electronic device provided in Embodiment 4 of this application.
[0039] The accompanying drawings illustrate specific embodiments of this application, which will be described in more detail below. These drawings and descriptions are not intended to limit the scope of the concept in any way, but rather to illustrate the concept of this application to those skilled in the art through reference to particular embodiments. Detailed Implementation
[0040] Exemplary embodiments will now be described in detail, examples of which are illustrated in the accompanying drawings. When the following description relates to the drawings, unless otherwise indicated, the same numbers in different drawings denote the same or similar elements. The embodiments described in the following exemplary embodiments do not represent all embodiments consistent with this application. Rather, they are merely examples of apparatuses and methods consistent with some aspects of this application as detailed in the appended claims.
[0041] The terms "comprising" and "having" in this application are used to indicate an open-ended inclusion, meaning that additional elements / components / etc. may exist besides the listed elements / components / etc.; the terms "first" and "second," etc., are used only as markings or distinctions and are not intended to limit the order or quantity of the objects. Furthermore, the different elements and areas in the accompanying drawings are only schematic and are therefore not limited to the dimensions or distances shown in the drawings. The technical solutions will be described in detail below with reference to specific embodiments. These specific embodiments can be combined with each other, and the same or similar concepts or processes may not be repeated in some embodiments. The embodiments of this application will now be described with reference to the accompanying drawings.
[0042] 3D display and 3D communication technologies have made significant progress in recent years, gradually becoming a driving force for innovation in multiple industries. These technologies are changing the way people interact and exchange information by providing more realistic and immersive experiences, and are widely used in entertainment, education, training, healthcare, daily consumption, and communications. Google's StarLine solution is one of the early explorations of 3D communication technology, aiming to achieve a more natural remote communication experience through stereoscopic video technology. Recently, Huawei and China Unicom Video Technology Co., Ltd. jointly launched the Lingjing 3D communication solution, further promoting the development of this field and demonstrating the companies' innovative capabilities in 3D communication technology. In addition, Tencent Meeting's glasses-free 3D video conferencing solution, through cooperation with ecosystem partners, has developed the first prototype video conferencing cabin, aiming to provide a 3D meeting experience without the need for wearing any devices.
[0043] As an example, in practical applications, the display screens used are mostly conventional 2D displays, primarily used to present 2D images. The shape and arrangement of their pixels are not specifically optimized for 3D display, and some individual screen pixels may have electrical defects. For instance, a microscope image of the actual pixel arrangement of an 86-inch display, when placed vertically, is shown below. Figure 1 As shown. After applying a lens layer (such as a cylindrical lens film), it is assembled into a 3D screen, as shown. Figure 2 As shown. Then, after mapping the white image onto the screen's r, g, b subpixels using a rendering algorithm, and then capturing it with a camera, there is a noticeable color cast both overall and in specific areas, as shown. Figure 3 As shown ( Figure 3 The image shown is the 0° field of view image with three different cylindrical lens parameters.
[0044] Based on the above examples, there are two main reasons for the aforementioned color cast phenomenon:
[0045] 1. The horizontal lengths of the r, g, and b sub-pixels on the screen differ significantly. The emitted light from these sub-pixels undergoes complex interference and diffraction after passing through the cylindrical mirror array, resulting in overall color distortion. To verify this conclusion, a high-resolution screen simulation image was generated with the same shape and duty cycle as the actual r, g, and b sub-pixels, as shown below. Figure 4 As shown in the top left, the values of the r, g, and b sub-pixels in the screen simulation image are mapped to white grayscale values using a rendering algorithm. A 3D screen is modeled using Blender software, and the mapped screen simulation image is input into the Blender model of the 3D screen. After rendering, there is a noticeable color cast at a 0° viewing angle. The solution is to change the r, g, and b sub-pixels of the screen simulation image to have the same shape, for example, all being either r-pixels or g-pixels, as shown below. Figure 4As shown in the upper center and upper right, after rendering, there is no obvious color cast at a 0° viewing angle. Since Blender's simulation and rendering correspond consistently to real 3D displays, it is assumed that if the r, g, and b sub-pixels of a real screen have the same shape, no color cast will be observed by the human eye. After rendering with different simulation parameters, the color cast pattern due to this reason is summarized as follows:
[0046] (1) At the same viewing angle, different cylindrical lens parameters and tilt angles result in different degrees of color cast; generally, the smaller the radius and width, the more obvious the color cast.
[0047] (2) Under the same viewing angle and cylindrical lens parameters, the smaller the tilt angle of the cylindrical lens, the more obvious the color cast.
[0048] (3) With the same cylindrical mirror parameters and tilt angle, the degree of color distortion varies with different viewing angles. With the same viewing angle and different viewing distances, the degree of color distortion varies slightly, but overall it is biased in one direction.
[0049] 2. Defects in the screen pixels themselves (such as leakage current) cause the brightness and color of some pixels on the screen to be in an abnormal color space, thus causing color distortion.
[0050] The technical content provided in this application aims to solve the aforementioned technical problems in related technologies. In the embodiments of this application, a test image of the screen and the grayscale values of sub-pixels in the test image are first acquired; then, color correction parameters at different observation positions are searched to obtain the color correction parameters at the current observation position; wherein, the color correction parameters at the observation position characterize the difference between the grayscale value of each sub-pixel and the actual pixel value at that observation position; finally, the grayscale values of sub-pixels in the test image are corrected according to the color correction parameters at the current observation position of at least one user. The solution of this application, by searching for the color correction parameters at the current observation position from the color correction parameters at different observation positions and correcting the grayscale values of sub-pixels in the screen test image, can effectively correct the color deviation of the screen at different observation positions, thereby achieving the correction of color cast in 3D displays.
[0051] Some aspects of this application's examples involve the above considerations. The following examples illustrate the proposed solutions.
[0052] Example 1
[0053] Figure 5 The diagram above illustrates a flowchart of a screen color correction method provided in Embodiment 1 of this application. The executing entity in this embodiment can be a screen color correction device. The screen includes a 2D screen and a lens layer, such as... Figure 5 As shown, the method includes:
[0054] Step 101: Obtain the test image of the screen and the grayscale values of the sub-pixels in the test image;
[0055] Step 102: Find the color correction parameters at different observation positions to obtain the color correction parameters at the current observation position; where the color correction parameters at the observation position represent the difference between the gray value of each sub-pixel and the actual pixel value at that observation position.
[0056] Step 103: Correct the grayscale values of sub-pixels in the test image based on the color correction parameters at the current observation position of at least one user.
[0057] In practical applications, the execution subject of this method can be a screen color correction device. There are various ways to implement a screen color correction device. For example, it can be implemented through a computer program, such as application software; or it can be implemented as a medium storing relevant computer programs, such as a USB flash drive or cloud drive; or it can be implemented through a physical device that integrates or installs relevant computer programs, such as a chip.
[0058] The 3D screen in this example comprises a 2D screen and a lens layer. It is assembled from an existing 2D screen by attaching a lens layer, creating a 3D screen for glasses-free 3D display. The lens layer includes, but is not limited to, cylindrical lenses. After assembly, color display deviations occur, necessitating color correction.
[0059] Specifically, the first step is to acquire test images of the 3D screen. These test images include 2D simulation images and 3D spatial point clouds mapped from 2D images. The selection of test images is crucial. In one example, the screen's test images include: planar point clouds, 3D Gaussian spheres, and 4D Gaussian spheres. Specifically, the planar point cloud is a 3D point cloud generated from a 2D image. An algorithm calculates the object's depth position on the Z-axis, adding additional depth information to the 2D image. The depth information of each pixel is combined with its position in the image to calculate its coordinates in 3D space. The 3D Gaussian sphere transforms the point cloud in 3D space into a series of 3D Gaussian distributions. Each Gaussian distribution represents a local surface element, containing position, scale, rotation, and color information. These Gaussian distributions are projected onto the 2D image plane during rendering, forming 2D Gaussian distributions, which are then rasterized to generate the final image. The 4D Gaussian sphere is used to describe and process data distributions in four-dimensional space, where the fourth dimension may represent time, color depth, or other physical properties. A 4D Gaussian sphere can describe variations in color space, helping to correct the screen's display performance under different brightness and color conditions, enabling the screen to more accurately reproduce the colors and brightness of the real world. In other words, planar point clouds provide basic color and brightness information, allowing for the evaluation of the screen's fundamental display performance; 3D Gaussian spheres are used to analyze the screen's performance at different depths and angles, providing a deeper understanding of the screen's spatial response; and 4D Gaussian spheres further extend to the temporal dimension, evaluating the screen's performance in dynamic scenes. These images provide rich color and brightness information, thus comprehensively evaluating the screen's display performance.
[0060] Optionally, taking a planar point cloud as an example, the 2D image is projected into a 3D space to obtain a planar point cloud (i.e., the test image) composed of point cloud data. This planar point cloud (i.e., the test image) is then placed within a preset range of a virtual screen in the 3D space. The preset range is a predetermined distance behind the virtual screen; the specific range needs to be set according to the actual situation and is not limited here. Then, the grayscale values of the sub-pixels in the test image are obtained, i.e., the grayscale value of each sub-pixel within the planar point cloud. The planar point cloud is rectangular in shape, with a width of Screen_width and a height of Screen_height, and the number of spatial points is width * height. The r, g, b values of each point in the planar point cloud are the grayscale values of each sub-pixel in the test image.
[0061] In one example, obtaining the grayscale value of a sub-pixel in a test image includes: calculating the grayscale value of the sub-pixel in the test image based on the weighted grayscale value of the intersection point of the principal ray of each sub-pixel with the test image, and the area scaling factor of the sub-pixel; wherein the sub-pixels in the test image include sub-pixels with at least three color channels.
[0062] Optional, Figure 6 A schematic diagram of a planar point cloud as an example, such as Figure 6 As shown, taking a planar point cloud of a 3D human image (i.e., the test image) as an example, the spatial point cloud of the 3D human image is placed within a preset area of a virtual screen. The virtual screen includes screen glass, cylindrical mirrors, and OCA adhesive. Within the horizontal plane, from the center of the sub-pixel... (Right now Figure 6 The light emitted from the rightmost dot propagates sequentially through optical materials such as screen glass, OCA adhesive, and cylindrical lens film. The light ray that emerges from the apex of the cylindrical lens serves as the principal ray for that sub-pixel. Combined with the planar point cloud, the principal ray is extended backward onto the planar point cloud to obtain a grayscale value. grayscale value The value depends on the weighted grayscale value of the intersection point of the principal ray of the sub-pixel and the planar point cloud. For the grayscale value... Perform an inverse gamma transformation to obtain the grayscale value in the linear domain. Then, based on the area of the effective region of r, g, b, set the scaling factor of the sub-pixel area of r, g, b to fac. r ,fac g ,fac b For gray values in the linear domain Make corrections to obtain Returning to the gamma domain, we get This yields the grayscale values of each sub-pixel r, g, b.
[0063] In the example above, by calculating the weighted gray value of the intersection of the principal ray and the test image, and combining it with the area ratio factor of the sub-pixel, the gray value of each sub-pixel r, g, b can be obtained more accurately.
[0064] Specifically, after obtaining the grayscale values of the sub-pixels in the test image, the color correction parameters for the current observation position are searched among the color correction parameters for different observation positions. Due to changes in the screen's lens layer and the viewing angle, color perception may change significantly. The color correction parameters are derived by analyzing the difference between the grayscale value of each sub-pixel and its actual pixel value. These parameters characterize the difference between the grayscale value of the sub-pixel displayed on the screen and the actual pixel value at a specific observation position. Specifically, the current viewing angle can be divided into single-view and multi-view cases, and the user can be divided into single user and multiple users. Considering the two reasons mentioned above, the color correction parameters for different observation positions include a first color correction parameter and a second color correction parameter. The corresponding color correction parameters need to be searched under different conditions. Accordingly, the color correction parameters for the current observation position are applied to adjust the grayscale values of the sub-pixels in the test image. This adjustment process aims to compensate for color deviations caused by changes in observation position, ensuring that the corrected image maintains color consistency and accuracy at any observation angle.
[0065] In the above example, by finding the color correction parameters for the current observation position from the color correction parameters under different observation positions, and correcting the grayscale values of sub-pixels in the screen test image, the color deviation of the screen under different observation positions can be effectively corrected, thereby achieving the correction of color deviation in 3D display.
[0066] Building upon the previous example, for a single user, the current observation position is categorized into single-view and multi-view scenarios. Due to the different observation views, the methods for correcting the grayscale values of sub-pixels in the test image differ. In one example, if the current observation position is single-view, the grayscale values of sub-pixels in the test image are corrected based on color correction parameters at at least one user's current observation position, including:
[0067] For a single user, perform the following first process, which includes:
[0068] The emission direction of each sub-pixel in the test image is obtained based on the three-dimensional spatial relative position of each sub-pixel in the test image with the lens layer;
[0069] By combining the emission direction of each sub-pixel in the test image with the spatial coordinates of the current human eye's viewpoint, sub-pixels in the test image belonging to the current viewpoint are selected.
[0070] Convert the grayscale value of the sub-pixel under the current viewpoint to the linear domain to obtain the linear domain grayscale value of the sub-pixel under the current viewpoint;
[0071] The grayscale values of sub-pixels in the linear domain are corrected based on the color correction parameters at the current viewing angle.
[0072] In this example, by analyzing the three-dimensional spatial relative position of each sub-pixel in the test image within the lens layer, its emission direction can be calculated. Then, combining the emission direction of each sub-pixel with the spatial coordinates of the current human eye's viewpoint, sub-pixels belonging to the current viewpoint are selected. This step ensures that only those sub-pixels directly observable from the current viewpoint are selected for correction. The grayscale values of the selected sub-pixels are converted to the linear domain for more accurate color correction. Based on the previous example, the grayscale values corrected according to the r, g, b sub-pixel area factors are... Perform an inverse gamma transformation to obtain the linear domain. Using the color correction coefficients rgain, ggain, and bgain at the current observation position, respectively... Correction Returning to the gamma domain, we get This means completing color cast correction from a single perspective.
[0073] In the example above, based on the emission direction of sub-pixels and viewing angle correction, color deviation correction in a single viewing angle is achieved through precise light control, viewing angle optimization and linearization processing.
[0074] In one example, if the current observation position is multi-view, the grayscale values of sub-pixels in the test image are corrected according to the color correction parameters of at least one user's current observation position, including:
[0075] For a single user, the following second process is performed, which includes:
[0076] By combining the emission direction of each sub-pixel in the test image with the spatial coordinates of the human eye's viewpoint at each viewpoint, the sub-pixel at each viewpoint is obtained;
[0077] The grayscale value of each sub-pixel under each viewpoint is converted to the linear domain to obtain the linear domain grayscale value of the sub-pixel under each viewpoint.
[0078] The grayscale value of the sub-pixel linear domain is corrected based on the color correction parameters for each viewpoint.
[0079] In this example, for a single viewpoint, the grayscale value corrected according to the r,g,b sub-pixel area factors is used. Perform an inverse gamma transformation to obtain the linear domain. Then, find the color correction parameters corresponding to this viewpoint as rgain, ggain, and bgain, and adjust the grayscale values in the linear domain according to these color correction parameters. Correction Returning to the gamma domain, we get This completes the color cast correction for that viewpoint. Iterate through all r, g, and b sub-pixels, repeating the aforementioned steps to complete the color cast correction for all viewpoints.
[0080] In the above example, based on the emission direction of subpixels and viewing angle correction, the color deviation of the display under multiple viewing angles is corrected through precise light control, viewing angle optimization and linearization processing.
[0081] The aforementioned examples illustrate color cast correction for a single user under single-view and multi-view conditions. In addition, examples also include color cast correction for multiple user scenarios. In one example, correcting the grayscale values of sub-pixels in the test image based on color correction parameters at the current observation position of at least one user further includes: for multiple users, performing the following third process, which includes: determining the correction weight of the color correction parameters corresponding to the current observation position of each user based on the current observation positions of the multiple users; calculating the color correction parameters corresponding to the current observation position of each user based on the correction weights to obtain the target color correction parameters corresponding to the current observation position of each user; and correcting the grayscale values of sub-pixels in the test image based on the target color correction parameters corresponding to the current observation position of each user.
[0082] Specifically, for multiple users' current viewing positions, the color correction parameters of the displayed image need to be dynamically adjusted to ensure that each user sees an image with accurate and consistent colors. First, the current viewing position of each user is determined, and the correction weight of the color correction parameters corresponding to that position is calculated. This step needs to consider factors such as the distance and angle between the user and the display screen, as well as ambient lighting, to generate a personalized correction weight for each user. These weights will be used to adjust the color correction parameters to better suit the user's viewing conditions.
[0083] Accordingly, based on the calculated correction weights, color correction parameters corresponding to each user's current observation position are calculated to generate target color correction parameters. These target parameters are optimized to compensate for color distortion caused by different observation positions. Finally, these target color correction parameters are used to correct the grayscale value of each sub-pixel in the test image. In the example above, although multiple users view the same image from different angles and distances, each user can obtain a visual experience with accurate colors and appropriate contrast.
[0084] In one example, correcting the grayscale values of subpixels in a test image based on color correction parameters at the current observation position of at least one user further includes: performing a fourth process for multiple users, the fourth process including: obtaining eye-tracking parameters of multiple users by performing eye-tracking on multiple users; determining the user with the highest level of focus associated with the screen among the multiple users based on the eye-tracking parameters of the multiple users; and performing a first process or a second process for the user with the highest level of focus associated with the screen.
[0085] Specifically, in multiple user scenarios, eye-tracking technology can be used to acquire eye-tracking parameters from multiple users. Eye-tracking technology can capture data such as the user's gaze direction, fixation point, and fixation time in real time. These eye-tracking parameters include at least: the location and time of the fixation point, fixation duration, number of fixations, and fixation sequence. These parameters not only reflect the user's current visual interest but also reveal the user's level of focus on the screen content. By analyzing these eye-tracking parameters, it is possible to identify which users exhibit higher levels of focus on the screen content. Once the user with the highest level of focus associated with the screen is identified, the first or second processing described in the previous example will be performed on that user. This example solution enables the user with the highest level of focus to obtain a visual experience with accurate color and appropriate contrast.
[0086] Based on the aforementioned example, for the color shift caused by the significant difference in the horizontal length of the screen's r, g, and b sub-pixels, the corresponding color correction parameters include a first color correction parameter. The method also includes: obtaining a first 3D display image based on the relative position of the color chart 3D display image and the screen depth in spatial coordinates, and obtaining the grayscale value of each sub-pixel in the first 3D display image.
[0087] Capture the screen to obtain a screen simulation image. Fill the screen simulation image with the grayscale value of each sub-pixel in the first 3D display image to obtain the filled screen simulation image.
[0088] Based on the 3D digital model and the filled screen simulation image, screen rendering images are obtained at different viewing positions; the first color correction parameter is calculated based on the screen rendering images at different viewing positions and the 3D display image of the color card.
[0089] In this example, Figure 7 For example, a 3D display image of the color chart. Figure 7As shown, a first 3D display image can be generated by using the relative position of the 3D display image img_24card (D65 color temperature) and the screen depth in spatial coordinates. Using the method described in the previous example, the grayscale value of each sub-pixel within the first 3D display image is obtained. A screen simulation image, ScreenMap, with a resolution of Screen_width_um * Screen_height_um is obtained by photographing the actual screen using a microscope, as shown below. Figure 8 As shown, the screen simulation image is divided into width*height regions (pixels). i i = 0 ~ width * height, where each region has a resolution of Pixel_size * Pixel_size, corresponding to one pixel on the actual screen. This region is further divided into 3 sub-regions. These correspond to the r, g, and b sub-pixels of the actual screen, respectively. Only the effective pixels of each sub-region are assigned values to ensure that their shape, area, center position, and spatial arrangement are the same as those of the actual screen.
[0090] In one example, filling a screen simulation image with the grayscale value of each sub-pixel within the first 3D display image includes: cropping the first pixel from the screen simulation image and separating the sub-pixels of the first pixel;
[0091] Interpolate and scale the first pixel and its sub-pixels to determine the set of valid region coordinates for the sub-pixels of the first pixel;
[0092] For each pixel in the screen simulation image, calculate the center coordinates of each sub-pixel within that pixel;
[0093] Based on the set of effective region coordinates of the sub-pixels of the first pixel and the center coordinates of each sub-pixel, the position of each sub-pixel in the screen simulation image is determined, and the grayscale value of each sub-pixel in the first 3D display image is filled.
[0094] Specifically, based on the effective range of a screen pixel, a block of image with the same width and height is extracted from the screen simulation image (ScreenMap) as a pixel block (i.e., the first pixel), such as... Figure 9 The left-middle pixel is shown. In this image, pixels r, g, and b have the same vertical width and spacing, and their horizontal centers coincide. Then, sub-pixel blocks r, g, and b are separated from this pixel block using an edge-tangential approach, as shown... Figure 9 The three images on the right side of the middle section are r, g, and b. The pixel blocks ( Figure 9The middle pixel is scaled to Pixel_size*Pixel_size through interpolation. The r, g, and b sub-pixel blocks are then interpolated and scaled separately using the same scaling factor. The coordinate set idx of the effective region (grayscale values normalized to 0-1; if a pixel value > 0.2, it is considered to be within the effective region) of each r, g, and b sub-pixel block is then calculated. r idx g idx b coordinate set idx r idx g idx b This reflects the effective area of the r, g, b sub-pixel blocks. For each pixel block in the ScreenMap, calculate the center coordinates of each r, g, b sub-pixel within that pixel block. Based on the coordinate set idx r idx g idx b and center coordinates Determine the effective regions of sub-pixels r, g, b within the screen simulation map (screenMap), and fill in the grayscale values of each sub-pixel r, g, b within the first 3D display map.
[0095] In the example above, by extracting the first pixel from the screen map and separating its sub-pixels, and then interpolating and scaling each sub-pixel to determine its effective area coordinate set, the grayscale value of the sub-pixel is accurately mapped to the screen map, reducing image distortion caused by resolution differences. Next, for each pixel in the screen map, the center coordinates of each sub-pixel are calculated, ensuring that the position of each sub-pixel in the screen map can be precisely located, guaranteeing the accuracy of the filling process. This allows for the reproduction of complex image details on the screen, improving image clarity and sharpness. Based on the effective area coordinate set of the first pixel's sub-pixels and the center coordinates of each sub-pixel, the position of each sub-pixel in the screen map is determined, and the grayscale value of each sub-pixel within the first 3D display image is filled, ensuring consistent color and brightness performance of the image under various conditions.
[0096] More specifically, a 3D digital model is established, which includes, but is not limited to, a Blender model. Taking the Blender model as an example, a cylindrical mirror film is constructed (with parameters such as radius r, period L, refractive index ref_idx, and tilt angle θ consistent with the actual cylindrical mirror film), a silicone OCA layer is constructed (with thickness and refractive index consistent with the actual silicone), a screen cover glass layer is constructed (with thickness and refractive index consistent with the actual screen), a pixel layer is constructed (the pixel layer is the loaded screen simulation image screenMap), and a light-emitting layer (simulating the screen's backlight) is constructed. Then, according to a specific viewing distance L, viewing angle θ, and camera focal length f, the Blender model is set, and the screen simulation image screenMap is rendered to obtain the screen rendering image img_render at different viewing positions, such as... Figure 10 As shown. The screen rendering image `img_render` and the 3D color chart display image `img_24card` are respectively subjected to inverse gamma transformation to the linear domain to obtain `img_render = img_render`. 2.2 ,img_24card=img_24card 2.2 .
[0097] In one example, the first color correction parameters are calculated based on the screen rendering and 3D color chart display at different viewing positions, including:
[0098] The following processing is performed at different observation positions to obtain the first color correction parameter corresponding to each observation position. The processing includes:
[0099] Separate the screen rendering image and the 3D color chart display image from the observation position into color blocks;
[0100] For the same color block in the screen rendering and the 3D color chart display at the observation position, the average value of the pixel value is taken in the pixel value channel to form the first matrix and the second matrix.
[0101] The color gain matrix is calculated based on the first and second matrices.
[0102] The color gain matrix is averaged across the pixel value channels and then normalized to obtain the first color correction parameter corresponding to the observation position.
[0103] In this example, Figure 11 This is a schematic diagram showing different observation positions. For example... Figure 11 As shown, the field of view is The viewing angle interval is 1°, and there are a total of One perspective, Figure 11 One ray represents one viewpoint, and there are a total of A ray is drawn, with black dots at different distances representing observation positions. For a given observation position, color patches are separated from the screen render image `img_render` and the 3D color chart display image `img_24card`. The r, g, and b pixel values of each color patch region are averaged across the r, g, and b channels, respectively, to obtain R_mean. j G_mean j B_mean j j = 1 to 24 and R24_mean j G24_mean j B24_mean j j = 1 to 24, respectively forming the first matrix. Second matrix Calculate the first color correction parameter rgbGains = P j / O j Next, the r, g, and b pixel values in the first color correction parameter rgbGains are averaged across the r, g, and b channels to obtain the color gain matrix [rgain, ggain, bgain]. Then, the g channel is normalized to [rgain, ggain, bgain] = [rgain / ggain, 1, bgain / ggain] to obtain the first color correction parameter corresponding to an observation position. This process is repeated for all observation positions to obtain the first color correction parameter for each observation position. Furthermore, the calculated first color correction parameter for each observation position can be saved as a color correction coefficient lookup table, database, etc., without restriction.
[0104] In the example above, calculating the color correction coefficients using Blender's physical simulation reduces hardware costs, increases efficiency, reduces workload, and maintains sufficient accuracy. Furthermore, Blender's physical simulation uses an ideal camera, avoiding the interference of camera hardware and algorithm settings on color reproduction found in real-world shooting methods.
[0105] In another example, for color cast caused by defects in the screen pixels themselves, the corresponding color correction parameters include a second color correction parameter, and the method further includes:
[0106] Take a 3D display image of the color chart to obtain a real photograph of the color chart;
[0107] The second color correction parameters were calculated based on the 3D display of the color chart and the actual photograph of the color chart at different observation positions.
[0108] In this example, a 3D display image of the color chart, img_24card, is captured using a dedicated camera, resulting in a photographic image of the color chart, img_gap. Both the photographic image img_gap and the 3D display image img_24card are then subjected to an inverse gamma transformation to the linear domain to obtain img_gap = img_gap. 2.2 ,img_24card=img_24card 2.2 .
[0109] In one example, based on the 3D display image and the actual photograph of the color chart, the second color correction parameters are calculated at different viewing positions, including:
[0110] The following processing is performed at different observation positions to obtain the second color correction parameters corresponding to each observation position. The processing includes:
[0111] Separate the color block from the 3D display image of the color card and the actual photograph of the color card;
[0112] For the pixel values corresponding to the same color blocks in the 3D display image and the actual photo of the color card, the average value is taken in the pixel value channel to form the third matrix and the fourth matrix.
[0113] Based on the third and fourth matrices, the second color correction parameters corresponding to the observation position are calculated.
[0114] In this example, refer to Figure 11 The observation position is determined by the color patch in the color chart image (img_gap) and the 3D display image (img_24card). For each observation position, the r, g, and b pixel values of each color patch region are averaged across the r, g, and b channels, respectively, to obtain R_mean. j G_mean j B_mean j j = 1 to 24 and R24_mean j G24_mean j B24_mean j j = 1 to 24, respectively forming the third matrix. and the fourth matrix According to the third matrix O j’ and the fourth matrix P j’ The 3DLUT matrix is calculated using the same method as existing techniques, and will not be explained further here. This yields the second color correction parameter corresponding to a given observation position. The above steps are repeated for all observation positions to obtain the second color correction parameter for each observation position. Furthermore, the calculated second color correction parameter for each observation position can be saved as a color correction coefficient lookup table, database, etc., without restriction.
[0115] In the above example, by separating color blocks, constructing matrices, and calculating 3DLUT matrices, the second color correction parameters can be effectively generated, and the two types of color cast problems can be corrected at the same time.
[0116] The screen color correction method provided in this embodiment first acquires a test image of the screen and the grayscale values of the sub-pixels in the test image; then, it searches for color correction parameters at different observation positions to obtain the color correction parameters at the current observation position; wherein, the color correction parameters at the observation position characterize the difference between the grayscale value of each sub-pixel and the actual pixel value at that observation position; finally, it corrects the grayscale values of the sub-pixels in the test image based on the color correction parameters at the current observation position of at least one user. This solution, by searching for the color correction parameters at the current observation position from the color correction parameters at different observation positions and correcting the grayscale values of the sub-pixels in the screen test image, can effectively correct the color deviation of the screen at different observation positions, thereby achieving the correction of color cast in 3D displays.
[0117] Example 2
[0118] The following is a detailed description of the screen color correction method provided in this application, using a specific embodiment. Figure 12 A flowchart of a screen color correction method provided in Embodiment 2 of this application is shown below. Figure 12 As shown, the process is as follows:
[0119] Step 1201: Obtain the test image of the screen and the grayscale values of the sub-pixels in the test image;
[0120] Step 1202: Find the color correction parameters at different observation positions to obtain the color correction parameters at the current observation position;
[0121] Step 1203: If the current observation position is a single viewpoint, proceed to steps 1204-1207; if the current observation position is a multi-viewpoint, proceed to steps 1208-1210.
[0122] Step 1204: Obtain the emission direction of each sub-pixel in the test image based on the three-dimensional spatial relative position of each sub-pixel in the test image and the lens layer;
[0123] Step 1205: Combine the emission direction of each sub-pixel in the test image with the spatial coordinates of the current human eye's viewpoint to filter out the sub-pixels in the test image that belong to the current viewpoint.
[0124] Step 1206: Convert the grayscale value of the sub-pixel under the current viewpoint to the linear domain to obtain the grayscale value of the sub-pixel in the linear domain under the current viewpoint.
[0125] Step 1207: Correct the grayscale value of the sub-pixel linear domain under the current view according to the color correction parameters under the current view;
[0126] Step 1208: Combine the emission direction of each sub-pixel in the test image with the spatial coordinates of the human eye's viewpoint at each viewpoint to obtain the sub-pixel at each viewpoint;
[0127] Step 1209: Convert the grayscale value of the sub-pixel under each viewpoint to the linear domain to obtain the linear domain grayscale value of the sub-pixel under each viewpoint.
[0128] Step 1210: Correct the grayscale value of the sub-pixel linear domain under each viewpoint according to the color correction parameters under each viewpoint.
[0129] The specific method for screen color correction can be found in the foregoing embodiments. In summary, the screen color correction method provided in this example, by searching for the color correction parameters at the current observation position from the color correction parameters at different observation positions and correcting the grayscale values of sub-pixels in the screen test image, can effectively correct color deviations of the screen at different observation positions, thereby achieving color correction for 3D displays.
[0130] Example 3
[0131] Figure 13 The diagram above exemplarily illustrates the structure of the screen color correction device provided in Embodiment 3 of this application, such as... Figure 13 As shown, the device includes:
[0132] The acquisition module 131 is used to acquire the test image of the screen and the grayscale values of the sub-pixels in the test image;
[0133] The lookup module 132 is used to look up the color correction parameters at different observation positions to obtain the color correction parameters at the current observation position; wherein, the color correction parameters at the observation position represent the difference between the gray value of each sub-pixel and the actual pixel value at that observation position;
[0134] The correction module 133 is used to correct the grayscale values of sub-pixels in the test image based on color correction parameters at the current observation position of at least one user.
[0135] In practical applications, there are various ways to implement the color correction device for this screen. For example, it can be implemented through computer programs, such as application software; or it can be implemented as a medium storing relevant computer programs, such as a USB flash drive or cloud drive; or it can be implemented through a physical device that integrates or installs relevant computer programs, such as a chip.
[0136] The 3D screen in this example comprises a 2D screen and a lens layer. It is assembled from an existing 2D screen by attaching a lens layer, creating a 3D screen for glasses-free 3D display. The lens layer includes, but is not limited to, cylindrical lenses. After assembly, color display deviations occur, necessitating color correction.
[0137] Specifically, the first step is to acquire test images of the 3D screen. These test images include 2D simulation images and 3D spatial point clouds mapped from 2D images. The selection of test images is crucial. In one example, the screen's test images include: planar point clouds, 3D Gaussian spheres, and 4D Gaussian spheres. Specifically, the planar point cloud is a 3D point cloud generated from a 2D image. An algorithm calculates the object's depth position on the Z-axis, adding additional depth information to the 2D image. The depth information of each pixel is combined with its position in the image to calculate its coordinates in 3D space. The 3D Gaussian sphere transforms the point cloud in 3D space into a series of 3D Gaussian distributions. Each Gaussian distribution represents a local surface element, containing position, scale, rotation, and color information. These Gaussian distributions are projected onto the 2D image plane during rendering, forming 2D Gaussian distributions, which are then rasterized to generate the final image. The 4D Gaussian sphere is used to describe and process data distributions in four-dimensional space, where the fourth dimension may represent time, color depth, or other physical properties. A 4D Gaussian sphere can describe variations in color space, helping to correct the screen's display performance under different brightness and color conditions, enabling the screen to more accurately reproduce the colors and brightness of the real world. In other words, planar point clouds provide basic color and brightness information, allowing for the evaluation of the screen's fundamental display performance; 3D Gaussian spheres are used to analyze the screen's performance at different depths and angles, providing a deeper understanding of the screen's spatial response; and 4D Gaussian spheres further extend to the temporal dimension, evaluating the screen's performance in dynamic scenes. These images provide rich color and brightness information, thus comprehensively evaluating the screen's display performance.
[0138] Optionally, taking a planar point cloud as an example, the 2D image is projected into a 3D space to obtain a planar point cloud (i.e., the test image) composed of point cloud data. This planar point cloud (i.e., the test image) is then placed within a preset range of a virtual screen in the 3D space. The preset range is a predetermined distance behind the virtual screen; the specific range needs to be set according to the actual situation and is not limited here. Then, the grayscale values of the sub-pixels in the test image are obtained, i.e., the grayscale value of each sub-pixel within the planar point cloud. The planar point cloud is rectangular, with a width of Screen_width and a height of Screen_height, and the number of spatial points is width * height. The r, g, and b values of each point in the planar point cloud are the grayscale values of each sub-pixel in the test image.
[0139] In one example, the acquisition module 131 is specifically used to: calculate the gray value of the sub-pixel in the test image based on the weighted gray value of the intersection point of the principal ray of each sub-pixel in the test image and the area ratio factor of the sub-pixel; wherein the sub-pixel in the test image includes sub-pixels with at least three color channels.
[0140] Optional, Figure 6 A schematic diagram of a planar point cloud as an example, such as Figure 6 As shown, taking a planar point cloud of a 3D human image (i.e., the test image) as an example, the spatial point cloud of the 3D human image is placed within a preset area of a virtual screen. The virtual screen includes screen glass, cylindrical mirrors, and OCA adhesive. Within the horizontal plane, from the center of the sub-pixel... (Right now Figure 6 The light emitted from the rightmost dot propagates sequentially through optical materials such as screen glass, OCA adhesive, and cylindrical lens film. The light ray that emerges from the apex of the cylindrical lens serves as the principal ray for that sub-pixel. Combined with the planar point cloud, the principal ray is extended backward onto the planar point cloud to obtain a grayscale value. grayscale value The value depends on the weighted grayscale value of the intersection point of the principal ray of the sub-pixel and the planar point cloud. For the grayscale value... Perform an inverse gamma transformation to obtain the grayscale value in the linear domain. Then, based on the area of the effective region of r, g, b, set the scaling factor of the sub-pixel area of r, g, b to fac. r ,fac g ,fac b For gray values in the linear domain Make corrections to obtain Returning to the gamma domain, we get This yields the grayscale values of each sub-pixel r, g, and b.
[0141] In the example above, by calculating the weighted gray value of the intersection of the principal ray and the test image, and combining it with the area ratio factor of the sub-pixels, the gray values of each sub-pixel r, g, and b can be obtained more accurately.
[0142] Specifically, after obtaining the grayscale values of the sub-pixels in the test image, the color correction parameters for the current observation position are searched among the color correction parameters for different observation positions. Due to changes in the screen's lens layer and the viewing angle, color perception may change significantly. The color correction parameters are derived by analyzing the difference between the grayscale value of each sub-pixel and its actual pixel value. These parameters characterize the difference between the grayscale value of the sub-pixel displayed on the screen and the actual pixel value at a specific observation position. Specifically, the current viewing angle can be divided into single-view and multi-view cases, and the user can be divided into single user and multiple users. Considering the two reasons mentioned above, the color correction parameters for different observation positions include a first color correction parameter and a second color correction parameter. The corresponding color correction parameters need to be searched under different conditions. Accordingly, the color correction parameters for the current observation position are applied to adjust the grayscale values of the sub-pixels in the test image. This adjustment process aims to compensate for color deviations caused by changes in observation position, ensuring that the corrected image maintains color consistency and accuracy at any observation angle.
[0143] In the above example, by finding the color correction parameters for the current observation position from the color correction parameters under different observation positions, and correcting the grayscale values of sub-pixels in the screen test image, the color deviation of the screen under different observation positions can be effectively corrected, thereby achieving the correction of color deviation in 3D display.
[0144] Building upon the previous example, for a single user, the current observation position is categorized into single-view and multi-view scenarios. Due to the different observation views, the methods for correcting the grayscale values of sub-pixels in the test image differ. In one example, if the current observation position is single-view, the correction module 133 is specifically used for:
[0145] For a single user, perform the following processing, the first of which includes:
[0146] The emission direction of each sub-pixel in the test image is obtained based on the three-dimensional spatial relative position of each sub-pixel in the test image with the lens layer;
[0147] By combining the emission direction of each sub-pixel in the test image with the spatial coordinates of the current human eye's viewpoint, sub-pixels in the test image belonging to the current viewpoint are selected.
[0148] Convert the grayscale value of the sub-pixel under the current viewpoint to the linear domain to obtain the linear domain grayscale value of the sub-pixel under the current viewpoint;
[0149] The grayscale values of sub-pixels in the linear domain are corrected based on the color correction parameters at the current viewing angle.
[0150] In this example, by analyzing the three-dimensional spatial relative position of each sub-pixel in the test image within the lens layer, its emission direction can be calculated. Then, combining the emission direction of each sub-pixel with the spatial coordinates of the current human eye's viewpoint, sub-pixels belonging to the current viewpoint are selected. This step ensures that only those sub-pixels directly observable from the current viewpoint are selected for correction. The grayscale values of the selected sub-pixels are converted to the linear domain for more accurate color correction. Based on the previous example, the grayscale values corrected according to the r, g, b sub-pixel area factors are... Perform an inverse gamma transformation to obtain the linear domain. Using the color correction coefficients rgain, ggain, and bgain at the current observation position, respectively... Correction Returning to the gamma domain, we get This means completing color cast correction from a single perspective.
[0151] In the example above, based on the emission direction of sub-pixels and viewing angle correction, color deviation correction in a single viewing angle is achieved through precise light control, viewing angle optimization and linearization processing.
[0152] In one example, if the current observation position is multi-view, the correction module 133 is specifically used for:
[0153] For a single user, the following second process is performed, which includes:
[0154] By combining the emission direction of each sub-pixel in the test image with the spatial coordinates of the human eye's viewpoint at each viewpoint, the sub-pixel at each viewpoint is obtained;
[0155] The grayscale value of each sub-pixel under each viewpoint is converted to the linear domain to obtain the linear domain grayscale value of the sub-pixel under each viewpoint.
[0156] The grayscale value of the sub-pixel linear domain is corrected based on the color correction parameters for each viewpoint.
[0157] In this example, for a single viewpoint, the grayscale value is corrected according to the r, g, b sub-pixel area factors. Perform an inverse gamma transformation to obtain the linear domain. Then, find the color correction parameters corresponding to this viewpoint as rgain, ggain, and bgain, and adjust the grayscale values in the linear domain according to these color correction parameters. Correction Returning to the gamma domain, we get This completes the color cast correction for that viewpoint. Iterate through all r, g, and b sub-pixels, repeating the aforementioned steps to complete the color cast correction for all viewpoints.
[0158] In the example above, based on the emission direction of subpixels and viewing angle correction, the color deviation of the display under multiple viewing angles is corrected through precise light control, viewing angle optimization and linearization processing.
[0159] The aforementioned examples illustrate color cast correction for a single user under single-view and multi-view conditions. In addition, examples also include color cast correction for multiple user scenarios. In one example, correction module 133 is further configured to: perform the following third processing for multiple users, the third processing including: determining the correction weight of the color correction parameter corresponding to the current observation position of each user based on the current observation position of the multiple users; calculating the color correction parameter corresponding to the current observation position of each user based on the correction weight to obtain the target color correction parameter corresponding to the current observation position of each user; and correcting the grayscale value of sub-pixels in the test image based on the target color correction parameter corresponding to the current observation position of each user.
[0160] Specifically, for multiple users' current viewing positions, the color correction parameters of the displayed image need to be dynamically adjusted to ensure that each user sees an image with accurate and consistent colors. First, the current viewing position of each user is determined, and the correction weight of the color correction parameters corresponding to that position is calculated. This step needs to consider factors such as the distance and angle between the user and the display screen, as well as ambient lighting, to generate a personalized correction weight for each user. These weights will be used to adjust the color correction parameters to better suit the user's viewing conditions.
[0161] Accordingly, based on the calculated correction weights, color correction parameters corresponding to each user's current observation position are calculated to generate target color correction parameters. These target parameters are optimized to compensate for color distortion caused by different observation positions. Finally, these target color correction parameters are used to correct the grayscale value of each sub-pixel in the test image. In the example above, although multiple users view the same image from different angles and distances, each user can obtain a visual experience with accurate colors and appropriate contrast.
[0162] In one example, the correction module 133 is further configured to: perform the following fourth process for multiple users, the fourth process including: obtaining eye movement parameters of multiple users by performing eye movement tracking on multiple users; determining the user with the highest attention associated with the screen among the multiple users based on the eye movement parameters of the multiple users; and performing a first process or a second process for the user with the highest attention associated with the screen.
[0163] Specifically, in multiple user scenarios, eye-tracking technology can be used to acquire eye-tracking parameters from multiple users. Eye-tracking technology can capture data such as the user's gaze direction, fixation point, and fixation time in real time. These eye-tracking parameters include at least: the location and time of the fixation point, fixation duration, number of fixations, and fixation sequence. These parameters not only reflect the user's current visual interest but also reveal the user's level of focus on the screen content. By analyzing these eye-tracking parameters, it is possible to identify which users exhibit higher levels of focus on the screen content. Once the user with the highest level of focus associated with the screen is identified, the first or second processing described in the previous example will be performed on that user. This example solution enables the user with the highest level of focus to obtain a visual experience with accurate color and appropriate contrast.
[0164] Building upon the aforementioned example, to address the color cast caused by significant differences in the horizontal lengths of the screen's r, g, and b sub-pixels, the corresponding color correction parameters include a first color correction parameter. The device further includes: a first processing module, used for:
[0165] The first 3D display image is obtained based on the relative position of the 3D display image of the color card and the screen depth in the spatial coordinates, and the grayscale value of each sub-pixel in the first 3D display image is obtained.
[0166] Capture the screen to obtain a screen simulation image. Fill the screen simulation image with the grayscale value of each sub-pixel in the first 3D display image to obtain the filled screen simulation image.
[0167] Based on the 3D digital model and the filled screen simulation image, screen rendering images are obtained at different viewing positions; the first color correction parameter is calculated based on the screen rendering images at different viewing positions and the 3D display image of the color card.
[0168] In this example, Figure 7 For example, a 3D display image of the color chart. Figure 7 As shown, a first 3D display image can be generated by using the relative position of the 3D display image img_24card (D65 color temperature) and the screen depth in spatial coordinates. Using the method described in the previous example, the grayscale value of each sub-pixel within the first 3D display image is obtained. A screen simulation image, ScreenMap, with a resolution of Screen_width_um * Screen_height_um is obtained by photographing the actual screen using a microscope, as shown below. Figure 8 As shown, the screen simulation image is divided into width*height regions (pixels). i i = 0 ~ width * height, where each region has a resolution of Pixel_size * Pixel_size, corresponding to one pixel on the actual screen. This region is further divided into 3 sub-regions. These correspond to the r, g, and b sub-pixels of the actual screen, respectively. Only the effective pixels of each sub-region are assigned values to ensure that their shape, area, center position, and spatial arrangement are the same as those of the actual screen.
[0169] In one example, the first processing module is specifically used to: extract a first pixel from the screen simulation image and separate the sub-pixels of the first pixel;
[0170] Interpolate and scale the first pixel and its sub-pixels to determine the set of valid region coordinates for the sub-pixels of the first pixel;
[0171] For each pixel in the screen simulation image, calculate the center coordinates of each sub-pixel within that pixel;
[0172] Based on the set of effective region coordinates of the sub-pixels of the first pixel and the center coordinates of each sub-pixel, the position of each sub-pixel in the screen simulation image is determined, and the grayscale value of each sub-pixel in the first 3D display image is filled.
[0173] Specifically, based on the effective range of a screen pixel, a block of image with the same width and height is extracted from the screen simulation image (ScreenMap) as a pixel block (i.e., the first pixel), such as... Figure 9 The left-middle pixel is shown. The r, g, and b sub-pixels have the same vertical width and spacing, and their horizontal centers coincide. Then, the r, g, and b sub-pixel blocks are separated from this pixel block using an edge-tangential method, as shown... Figure 9 The three images on the right side of the middle section are r, g, and b. The pixel blocks ( Figure 9 The middle pixel is scaled to Pixel_size*Pixel_size through interpolation. The r, g, and b sub-pixel blocks are then interpolated and scaled separately using the same scaling factor. The coordinate set idx of the effective region (grayscale values normalized to 0-1; if a pixel value > 0.2, it is considered to be within the effective region) of each r, g, and b sub-pixel block is then calculated. r idx g idx b coordinate set idx r idx g idx b This reflects the effective area of the r, g, b sub-pixel blocks. For each pixel block in the ScreenMap, calculate the center coordinates of each r, g, b sub-pixel within that pixel block. Based on the coordinate set idx r idx g idx b and center coordinates Determine the effective regions of sub-pixels r, g, and b within the screen simulation map (screenMap), and fill in the grayscale values of each sub-pixel r, g, and b within the first 3D display map.
[0174] In the example above, by cropping the first pixel from the screen simulation map (screenMap) and separating its sub-pixels, and then interpolating and scaling each sub-pixel to determine its effective area coordinate set, the grayscale value of the sub-pixel is accurately mapped to the screen simulation map (screenMap), reducing image distortion caused by resolution differences. Next, for each pixel in the screen simulation map (screenMap), the center coordinates of each sub-pixel are calculated, ensuring that the position of each sub-pixel in the screen simulation map (screenMap) can be precisely located, guaranteeing the accuracy of the filling process. This allows for the reproduction of complex image details on the screen, improving image clarity and sharpness. Based on the effective area coordinate set of the first pixel's sub-pixels and the center coordinates of each sub-pixel, the position of each sub-pixel in the screen simulation map is determined, and the grayscale value of each sub-pixel within the first 3D display image is filled, ensuring consistent color and brightness performance of the image under various conditions.
[0175] More specifically, a three-dimensional digital model is established, which includes, but is not limited to, the Blender model. Taking the Blender model as an example, a cylindrical mirror film is constructed (with parameters such as radius r, period L, refractive index ref_idx, and tilt angle θ consistent with the actual cylindrical mirror film), a silicone OCA layer is constructed (with thickness and refractive index consistent with the actual silicone), a screen covering glass layer is constructed (with thickness and refractive index consistent with the actual screen), a pixel layer is constructed (the pixel layer is the loaded screen simulation map ScreenMap), and a light-emitting layer (simulating the screen's backlight) is constructed. Then, according to a specific viewing distance L, viewing angle θ, and camera focal length f, the Blender model is set, and the screen simulation map ScreenMap is rendered to obtain the screen rendering images img_render at different viewing positions, such as... Figure 10 As shown. The screen rendering image `img_render` and the 3D color chart display image `img_24card` are respectively subjected to inverse gamma transformation to the linear domain to obtain `img_render = img_render`. 2.2 ,img_24card=img_24card 2.2 .
[0176] In one example, the first processing module is specifically used for:
[0177] The following processing is performed at different observation positions to obtain the first color correction parameter corresponding to each observation position. The processing includes:
[0178] Separate the screen rendering image and the 3D color chart display image from the observation position into color blocks;
[0179] For the pixel values corresponding to the same color blocks in the screen rendering and color card 3D display at the observation position, the average value is taken in the pixel value channel to form the first matrix and the second matrix;
[0180] The color gain matrix is calculated based on the first and second matrices.
[0181] The color gain matrix is averaged across the pixel value channels and then normalized to obtain the first color correction parameter corresponding to the observation position.
[0182] In this example, Figure 11 This is a schematic diagram showing different observation positions. For example... Figure 11 As shown, the field of view is The viewing angle interval is 1°, and there are a total of One perspective, Figure 11 One ray represents one viewpoint, and there are a total of A ray is drawn, with black dots at different distances representing observation positions. For a given observation position, color patches are separated from the screen render image `img_render` and the 3D color chart display image `img_24card`. The r, g, and b pixel values of each color patch region are averaged across the r, g, and b channels, respectively, to obtain R_mean. j G_mean j B_mean j j = 1 to 24 and R24_mean j G24_mean j B24_mean j j = 1 to 24, respectively forming the first matrix. Second matrix Calculate the first color correction parameter rgbGains = P j / O j Next, the pixel values of r, g, and b in the first color correction parameter rgbGains are averaged across the r, g, and b channels to obtain the color gain matrix [rgain, ggain, bgain]. Then, the g channel is normalized to [rgain, ggain, bgain] = [rgain / ggain, 1, bgain / ggain] to obtain the first color correction parameter corresponding to an observation position. This process is repeated for all observation positions to obtain the first color correction parameter for each observation position. Furthermore, the calculated first color correction parameter for each observation position can be saved as a color correction coefficient lookup table, database, etc., without restriction.
[0183] In the example above, calculating the color correction coefficients using Blender's physical simulation reduces hardware costs, increases efficiency, reduces workload, and maintains sufficient accuracy. Furthermore, Blender's physical simulation uses an ideal camera, avoiding the interference of camera hardware and algorithm settings on color reproduction found in real-world shooting methods.
[0184] In another example, for color distortion caused by defects in the screen pixels themselves, the corresponding color correction parameters include second color correction parameters, and the device further includes: a second processing module, used for:
[0185] Shoot a 3D display image of the color chart to obtain a real-life image of the color chart;
[0186] The second color correction parameters were calculated based on the 3D display of the color chart and the actual photograph of the color chart at different observation positions.
[0187] In this example, a 3D display image of the color chart, img_24card, is captured using a dedicated camera, resulting in a photographic image of the color chart, img_gap. Both the photographic image img_gap and the 3D display image img_24card are then subjected to an inverse gamma transformation to the linear domain to obtain img_gap = img_gap. 2.2 ,img_24card=img_24card 2.2 .
[0188] In one example, the second processing module is specifically used for:
[0189] The following processing is performed at different observation positions to obtain the second color correction parameters corresponding to each observation position. The processing includes:
[0190] Separate the color block from the 3D display image of the color card and the actual photograph of the color card;
[0191] For the pixel values corresponding to the same color blocks in the 3D display image and the actual photo of the color card, the average value is taken in the pixel value channel to form the third matrix and the fourth matrix.
[0192] Based on the third and fourth matrices, the second color correction parameters corresponding to the observation position are calculated.
[0193] In this example, refer to Figure 11 The observation position is determined by the color patch in the color chart image (img_gap) and the 3D display image (img_24card). The r, g, and b pixel values of each color patch region are averaged across the r, g, and b channels respectively to obtain R_mean. j G_mean j B_mean jj = 1 to 24 and R24_mean j G24_mean j B24_mean j j = 1 to 24, respectively forming the third matrix and the fourth matrix According to the third matrix O j’ and the fourth matrix P j’ The 3DLUT matrix is calculated using the same method as existing techniques, and will not be explained further here. This yields the second color correction parameter corresponding to a given observation position. The above steps are repeated for all observation positions to obtain the second color correction parameter for each observation position. Furthermore, the calculated second color correction parameter for each observation position can be saved as a color correction coefficient lookup table, database, etc., without restriction.
[0194] In the above example, by separating color blocks, constructing matrices, and calculating 3DLUT matrices, the second color correction parameters can be effectively generated, and the two types of color cast problems can be corrected at the same time.
[0195] In the screen color correction device provided in this embodiment, the acquisition module first acquires the test image of the screen and the grayscale values of the sub-pixels in the test image; then, the search module searches for color correction parameters at different observation positions to obtain the color correction parameters at the current observation position; wherein, the color correction parameters at the observation position characterize the difference between the grayscale value of each sub-pixel and the actual pixel value at that observation position; finally, the correction module corrects the grayscale values of the sub-pixels in the test image according to the color correction parameters at the current observation position of at least one user. The solution of this application, by searching for the color correction parameters at the current observation position from the color correction parameters at different observation positions and correcting the grayscale values of the sub-pixels in the screen test image, can effectively correct the color deviation of the screen at different observation positions, thereby achieving the correction of color cast in 3D displays.
[0196] Example 4
[0197] Figure 14 This is a schematic diagram of the structure of the electronic device provided in Embodiment 4 of this application, as shown below. Figure 14 As shown, the electronic device includes:
[0198] The electronic device includes a processor 291 and a memory 292; it may also include a communication interface 293 and a bus 294. The processor 291, memory 292, and communication interface 293 can communicate with each other via the bus 294. The communication interface 293 can be used for information transmission. The processor 291 can invoke logical instructions stored in the memory 292 to execute the methods described in the example above.
[0199] Furthermore, the logic instructions in the aforementioned memory 292 can be implemented as software functional units and, when sold or used as independent products, can be stored in a computer-readable storage medium.
[0200] The memory 292, as a computer-readable storage medium, can be used to store software programs and computer-executable programs, such as program instructions / modules corresponding to the methods in the embodiments of this application. The processor 291 executes functional applications and data processing by running the software programs, instructions, and modules stored in the memory 292, that is, it implements the methods in the above method examples.
[0201] The memory 292 may include a program storage area and a data storage area. The program storage area may store the operating system and application programs required for at least one function; the data storage area may store data created based on the use of the terminal device. Furthermore, the memory 292 may include high-speed random access memory and may also include non-volatile memory.
[0202] This application also provides a computer-readable storage medium storing computer-executable instructions, which, when executed by a processor, are used to implement the method in any of the embodiments.
[0203] This application also provides a computer program product, which, when executed by a processor, implements the method in any of the embodiments.
[0204] Other embodiments of this application will readily occur to those skilled in the art upon consideration of the specification and practice of the invention disclosed herein. This application is intended to cover any variations, uses, or adaptations of this application that follow the general principles of this application and include common knowledge or customary techniques in the art not disclosed herein. The specification and examples are to be considered exemplary only, and the true scope and spirit of this application are indicated by the following claims.
[0205] It should be understood that this application is not limited to the precise structure described above and shown in the accompanying drawings, and various modifications and changes can be made without departing from its scope. The scope of this application is limited only by the appended claims.
Claims
1. A method for color correction of a screen, characterized in that, The screen includes a 2D screen and a lens layer; the method includes: Obtain a test image of the screen and the grayscale values of the sub-pixels in the test image; Find the color correction parameters at different observation positions to obtain the color correction parameters at the current observation position; wherein, the color correction parameters at the observation position characterize the difference between the gray value of each sub-pixel and the actual pixel value at that observation position; The grayscale values of sub-pixels in the test image are corrected based on color correction parameters at the current observation position of at least one user.
2. The method according to claim 1, characterized in that, If the current observation position is a single viewpoint, the step of correcting the grayscale values of sub-pixels in the test image based on color correction parameters at the current observation position of at least one user includes: For a single user, the following first process is performed, the first process including: The emission direction of each sub-pixel in the test image is obtained based on the three-dimensional spatial relative position of each sub-pixel in the test image with respect to the lens layer; By combining the emission direction of each sub-pixel in the test image with the spatial coordinates of the current human eye's viewpoint, sub-pixels in the test image belonging to the current viewpoint are selected. The grayscale value of the sub-pixel under the current viewpoint is converted to the linear domain to obtain the linear domain grayscale value of the sub-pixel under the current viewpoint. The grayscale value of the sub-pixel linear domain under the current viewpoint is corrected according to the color correction parameters under the current viewpoint.
3. The method according to claim 2, characterized in that, If the current observation position is multi-view, the step of correcting the grayscale values of sub-pixels in the test image based on color correction parameters at the current observation position of at least one user includes: For a single user, the following second process is performed, the second process including: By combining the emission direction of each sub-pixel in the test image with the spatial coordinates of the human eye's viewpoint at each viewpoint, the sub-pixel at each viewpoint is obtained; The grayscale value of the sub-pixel under each viewpoint is converted to the linear domain to obtain the linear domain grayscale value of the sub-pixel under each viewpoint; The grayscale value of the sub-pixel linear domain under each viewpoint is corrected according to the color correction parameters under each viewpoint.
4. The method according to claim 3, characterized in that, The step of correcting the grayscale values of sub-pixels in the test image based on color correction parameters at the current observation position of at least one user further includes: For multiple users, the following third process is performed, the third process including: The correction weight of the color correction parameter corresponding to the current observation position of each user is determined based on the current observation position of the multiple users; The color correction parameters corresponding to the current observation position of each user are calculated based on the correction weight to obtain the target color correction parameters corresponding to the current observation position of each user; The grayscale values of sub-pixels in the test image are corrected based on the target color correction parameters corresponding to the current observation position of each user.
5. The method according to claim 4, characterized in that, The step of correcting the grayscale values of sub-pixels in the test image based on color correction parameters at the current observation position of at least one user further includes: For multiple users, the following fourth process is performed, the fourth process including: By performing eye tracking on the multiple users, the eye movement parameters of the multiple users are obtained; Based on the eye-tracking parameters of the multiple users, determine the user with the highest level of focus associated with the screen among the multiple users; The first process or the second process is performed on the user with the highest level of focus associated with the screen.
6. The method according to claim 5, characterized in that, The eye movement parameters include at least: the location and time of fixation, fixation duration, number of fixations, and fixation sequence.
7. The method according to claim 3, characterized in that, The step of obtaining the grayscale value of the sub-pixels in the test image includes: The grayscale value of the sub-pixel in the test image is calculated based on the weighted grayscale value of the intersection point of the principal ray of each sub-pixel with the test image, and the area ratio factor of the sub-pixel; wherein the sub-pixel in the test image includes sub-pixels with at least three color channels.
8. The method according to claim 7, characterized in that, The color correction parameters include a first color correction parameter, and the method further includes: The first 3D display image is obtained based on the relative position of the color card 3D display image and the screen depth in spatial coordinates, and the grayscale value of each sub-pixel in the first 3D display image is obtained. The screen is photographed to obtain a screen simulation image. The screen simulation image is then filled with the grayscale value of each sub-pixel in the first 3D display image to obtain the filled screen simulation image. Based on the 3D digital model and the filled screen simulation image, screen rendering images are obtained at different viewing positions; the first color correction parameter is calculated based on the screen rendering images at different viewing positions and the 3D display image of the color card.
9. The method according to claim 8, characterized in that, The step of filling the screen simulation image according to the grayscale value of each sub-pixel in the first 3D display image includes: The first pixel is extracted from the screen simulation image, and the sub-pixels of the first pixel are separated. Interpolate and scale the first pixel and its sub-pixels to determine the set of valid region coordinates of the first pixel's sub-pixels; For each pixel in the screen simulation image, calculate the center coordinates of each sub-pixel within that pixel; Based on the effective region coordinate set of the sub-pixels of the first pixel and the center coordinates of each sub-pixel, the position of each sub-pixel in the screen simulation image is determined, and the grayscale value of each sub-pixel in the first 3D display image is filled.
10. The method according to claim 9, characterized in that, The calculation of the first color correction parameter based on the screen rendering images at different viewing positions and the 3D display image of the color chart includes: The following processing is performed at different observation positions to obtain the first color correction parameter corresponding to each observation position. The processing includes: The screen rendering image at the observation position and the 3D display image of the color card are separated into color blocks; For the pixel values corresponding to the same color blocks in the screen rendering image and the color card 3D display image at the observation position, the average value is taken in the pixel value channel to form the first matrix and the second matrix; The color gain matrix is calculated based on the first matrix and the second matrix; The color gain matrix is averaged across the pixel value channels and then normalized to obtain the first color correction parameter corresponding to the observation position.
11. The method according to claim 7, characterized in that, The color correction parameters include a second color correction parameter, and the method further includes: Take a 3D display image of the color chart to obtain a real photograph of the color chart; The second color correction parameter is calculated based on the 3D display image of the color chart and the actual photograph of the color chart at different viewing positions.
12. The method according to claim 11, characterized in that, The calculation of the second color correction parameters based on the 3D display image of the color chart and the actual photograph of the color chart at different viewing positions includes: The following processing is performed at different observation positions to obtain the second color correction parameter corresponding to each observation position. The processing includes: Separate the color block from the 3D display image of the color card and the actual photograph of the color card; For the pixel values corresponding to the same color blocks in the 3D display image of the color card and the actual photograph of the color card, the average value is taken in the pixel value channel to form the third matrix and the fourth matrix; The second color correction parameter corresponding to the observation position is calculated based on the third matrix and the fourth matrix.
13. The method according to any one of claims 1-12, characterized in that, The test images on the screen include: planar point clouds, 3D Gaussian spheres, and 4D Gaussian spheres.
14. A screen color correction device, characterized in that, The screen includes a 2D screen and a lens layer; the device includes: The acquisition module is used to acquire a test image of the screen and the grayscale values of the sub-pixels in the test image; The lookup module is used to find the color correction parameters at different observation positions to obtain the color correction parameters at the current observation position; wherein, the color correction parameters at the observation position represent the difference between the gray value of each sub-pixel and the actual pixel value at that observation position; The correction module is used to correct the grayscale values of sub-pixels in the test image based on color correction parameters at the current observation position of at least one user.
15. An electronic device, characterized in that, include: A processor, and a memory communicatively connected to the processor; The memory stores computer-executable instructions; the processor executes the computer-executable instructions stored in the memory to implement the method as described in any one of claims 1-13.
16. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores computer-executable instructions, which, when executed by a processor, are used to implement the method as described in any one of claims 1-13.
17. A computer program product, comprising a computer program, characterized in that, When the computer program is executed by a processor, it implements the method as described in any one of claims 1-13.