# US 12,223,589 B2 · Method of generating a smooth image from point cloud data

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,223,589 B2
- Document ID: US12223589B2
- Status: Granted
- Kind: B2
- Application number: 16/006,534
- Filed: 2018-06-12
- Published: 2019-02-07
- Granted: 2025-02-11
- Earliest claimed: 2012-06-25
- Applicants: Yoldas Askan
- Inventors: Yoldas Askan
- Web page: https://patentgrep.com/patent/US12223589B2

## CPC

- G06T 17/00: Three-dimensional [3D] modelling for computer graphics
- G06T 2200/08: involving all processing steps from image acquisition to 3D model generation
- G06T 2210/56: Particle system, point based geometry or rendering
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL

## Abstract

A method is explained for processing an array of pixels in a point cloud. Local error bars are calculated for each pixel distance value. A difference is calculated between distance values of the pixel being processed and neighboring pixels with distance values within the error bars. If the difference is outside the error bars, the distance value of the pixel being processed is changed by a small fraction while remaining inside the error bars; if the difference is within the error bars, the pixel value is replaced by a weighted average. The neighboring pixels with distance values within the error bars of the pixel are counted and if a predetermined threshold is met, the counted values are averaged and replace the pixel value, but if not met, the pixel value is unchanged. If loop exit criteria have been met, the loop is terminated and if not, looping begins again.

## Claims

### Claim 1

A system for generating a processed point cloud data set comprising:
a scanner operably configured to scan a surface of an object or a portion thereof with a light source so as to generate a first point cloud data set, the first point cloud data set representing a noisy 3D model of the object and including first distance values corresponding to points on the surface of the object; and
a processor operably configured to execute instructions for:
receiving the first point cloud data set;
generating a difference between a distance value, among the distance values, in a pixel of the first point cloud dataset being processed and each neighboring pixel or a most suitable neighboring pixel distance value;
generating second distance values from the first point cloud data set, at least one of the second distance values is based on at least two neighboring points;
generating a second point cloud data set based on the second distance values which are based on the distance value of the at least two neighboring points;
generating said second distance values from the first point cloud data set, at least one of the second distance values is an average distance value or a weighted average distance value of the at least two neighboring points;
performing one or more iterations to generate distance values so as to generate the second point cloud data set representing a noise free and smoothed representation of the noisy 3D model of the scanned object, each of the iteratively generated distance values is based on the distance value of at least two neighboring points of each of the distance values of the previous iteration; and
outputting the processed point cloud data set to any one of a monitor for display, or a file for storage, or a printer.

### Claim 2 (depends on 1)

The system in accordance with claim 1, wherein the processor is further operably configured to execute instructions for:
calculating an error function for each of the first distance values in the first point cloud data set; and
generating the second distance values based on the error function.

### Claim 3 (depends on 1)

The system in accordance with claim 1, wherein the processor is further operably configured to execute instructions for:
calculating an error bar;
calculating a difference between the second distance values and the error bar;
determining whether the difference is within the error bar; and
only if the difference is within the error bar, generate the second distance values.

### Claim 4 (depends on 1)

The system in accordance with claim 1, wherein:
the processor is further operably configured to execute instructions for:
generating the second distance values based on a change by adding or subtracting a predefined fraction.

### Claim 5

A method for generating a processed point cloud data set comprising:
scanning, with a scanner, an object to generate a first point cloud data set, the first point cloud data set representing a noisy 3D model of the scanned object and including first distance values corresponding to points on the surface of the object; and
receiving, by a processor, the first point cloud data set;
generating a difference between a distance value, among the distance values, in a pixel of the first point cloud dataset being processed and each neighboring pixel or a most suitable neighboring pixel distance value;
generating, by the processor, second distance values from the first point cloud data set, at least one of the second distance values is based on at least two neighboring points;
generating, by the processor, second point cloud data set based on the second distance values which are based on the distance value of the at least two neighboring points;
generating, by the processor, second distance values from the first point cloud data set, at least one of the said second distance values is an average distance value or a weighted average distance value of the at least two neighboring points;
performing, by the processor, one or more iterations to generate distance values so as to generate the second point cloud data set representing a noise free and smoothed representation of the noisy 3D model of the scanned object, each of the iteratively generated distance values is based on the distance value of at least two neighboring points of each of the distance values of the previous iteration; and
outputting, by the processor, the processed point cloud data set to any one of a monitor for display, or a file for storage, or a printer.

### Claim 6 (depends on 5)

The method in accordance with claim 5, wherein generating, by the processor, for each of the first distance values in the first point cloud data set:
calculating, by the processor, an error function for each of the first distance values in the first point cloud data set; and
generating, by the processor, the second distance values based on the error function.

### Claim 7 (depends on 6)

The method in accordance with claim 6, wherein generating, by the processor, second distance values based on a change by adding or subtracting a predefined fraction.

### Claim 8 (depends on 5)

The method in accordance with claim 5, wherein:
calculating, by the processor, an error bar;
calculating, by the processor, a difference between the second distance values and the error bar;
determining, by the processor, whether the difference is within the error bar; and
only if the difference is within the error bar, generating the second distance values.
