Every structured-light 3D camera can decode depth on every sensor pixel, or on every second or fourth pixel of that grid. The control is usually called sampling, and it is the cheapest speed upgrade on a 3D station: 2x2 sampling returns one quarter of the points, roughly quarters the per-point work in transfer and processing, and leaves the depth of every remaining point as precise as it was. What you spend is lateral point spacing — doubled at 2x2, quadrupled at 4x4. The arithmetic below lets you make that trade deliberately: point spacing from the field of view, the effect on depth precision, the cycle-time budget, and the feature-size rule that settles the setting. The last section lists the checks that prove the change did what you expected.
What does subsampling change in a 3D point cloud?
Subsampling changes exactly two things: the number of points and the lateral distance between them — 2x2 keeps one pixel in every 2 × 2 block, so the cloud has one quarter of the points at twice the spacing, and 4x4 keeps one in sixteen at four times the spacing.
The projector still fires the same pattern sequence either way; the camera simply decodes depth on a coarser grid. The divisor applies along each axis separately: a 2448-point-wide grid becomes 1224 points wide at 2x2 and 612 at 4x4. Depth at each kept pixel is still computed from the full pattern sequence projected onto that pixel, which is why per-point quality survives. For how projected pixels become XYZ values in the first place, see structured light 3D cameras: projector pixel mapping to 3D points.
Projected structured-light cameras such as the MV-DPS200P-02 decode on their full sensor grid by default; subsampling is a capture-time switch you set before you trigger, stored with the capture settings.
- Type
- Stereo / structured light
How do I calculate point spacing at my working distance?
Point spacing is the lateral field of view divided by the number of sampled points across it, so a 783 mm-wide field sampled by 2448 points comes to 0.32 mm per point at a 1300 mm working distance.
Worked example, a large-field structured-light camera. The sampling grid is 2448 × 2048 and the lateral field at a 1300 mm working distance is 783 mm × 655 mm.
| Sampling | Sampled grid | Points | Spacing at 1300 mm |
|---|---|---|---|
| Full | 2448 × 2048 | 5,013,504 | 0.32 mm |
| 2x2 | 1224 × 1024 | 1,253,376 | 0.64 mm |
| 4x4 | 612 × 512 | 313,344 | 1.28 mm |
The arithmetic: 783 / 2448 = 0.32 mm, 783 / 1224 = 0.64 mm and 783 / 612 = 1.28 mm. Point count is the grid product — 2448 × 2048 = 5,013,504 — and each doubling of the factor on each axis divides it by four.
Spacing tracks the field of view, and on a triangulation camera the field tracks the working distance, so the numbers scale: the same head at 650 mm gives about 0.16 mm per point at full sampling. Pull the field of view at your mount height from the camera's specification and divide; the worked example's spacing belongs to its own field and distance.
Does subsampling make depth measurements worse?
No: depth precision is set by the camera's point precision — a fraction of a millimeter at a meter of standoff on a good structured-light camera — and subsampling thins the grid those depths sit on without changing any of them.
Depth at a pixel comes from the phase of the projected fringes, estimated to sub-pixel accuracy, so the Z of a kept point is as good at 2x2 as at full sampling. The controls that do move your depth numbers are the depth unit and precision settings; depth unit and precision settings on 3D cameras covers those.
The one indirect effect is averaging. If your measurement smooths a neighborhood before quoting a height, nine points at 0.64 mm spacing span twice the physical area they span at 0.32 mm, so on a surface that is not flat at that scale the averaged height shifts a little. Per-point noise is unchanged; the footprint of your average grows.
And if your Z scatter is dominated by frame-to-frame jitter rather than by sampling, fix the capture side first — stereo camera depth jitter and drift troubleshooting runs through that failure mode.
How much cycle time does subsampling actually save?
The per-point part of the cycle — transfer, unpacking, normals, transforms, CAD matching — scales with point count, so 2x2 makes those steps roughly four times faster, while pattern-projection time is fixed because the camera projects the same patterns either way.
Worked example. A station runs 700 ms per part: 400 ms of pattern projection and exposure, 100 ms of transfer and 200 ms of processing. At 2x2, transfer drops to 25 ms and processing to 50 ms, so the cycle becomes 400 + 25 + 50 = 475 ms — a 32% saving, not a 4x saving. At 4x4 you reach 400 + 6 + 13 = 419 ms, because 100 / 16 is about 6 and 200 / 16 is about 13. The further you push, the more the fixed pattern time dominates.
When is full resolution the only right answer?
Go full resolution whenever the smallest feature you must detect is narrower than twice the full spacing — under about 0.64 mm in the worked example — and whenever the measurement locates an edge, a corner or a small radius rather than an average height.
Edges are the classic trap. A subsampled grid can step over the pixel pair that defines an edge, and the fitted edge then moves by up to one full spacing — a silent error that no noise metric flags. Form callouts on radii smaller than about ten point spacings fail the same way: the arc is rebuilt from too few points to hold its shape.
Stay at full resolution, too, when you plan to crop later: a region of interest drops area but keeps density, so ROI versus binning versus subsampling for faster acquisition — written for 2D cameras, same trade — is the fuller comparison. Cameras that expose per-axis output resolution add one more interaction, covered in 3D point cloud x y z resolution settings without distortion.
Is subsampling at capture better than thinning the cloud afterwards?
At capture is better when speed, file size and repeatability are what you are buying: the camera never computes the extra points, so nothing is transferred, stored or thrown away, and the kept points sit exactly on the sensor grid.
Thinning afterwards wins when one capture must feed several consumers at different densities, or when you do not yet know the density you need. But keep-every-nth-point decimation is the wrong thinner: it breaks the structured grid and can shift fine edges, which point cloud downsampling distortion: why decimation shifts points works through in detail. A voxel-grid thin at the same target count keeps more points along z, so vertical structure survives where a 2D grid thin flattens it.
How do I choose the sampling for my inspection?
Pick the coarsest sampling whose spacing stays at or below half your smallest detect-feature and a quarter of your smallest measured feature: with 0.32 mm full spacing, detecting a 1.5 mm scratch allows 2x2, while measuring a 1.3 mm width needs full resolution.
Half for detection is the sampling theorem talking — two points across a feature is the minimum that resolves it. The quarter rule for measured widths adds margin for edge location, since a width is the difference of two edge positions.
| Task | Rule | Spacing allowed | Setting in the worked example |
|---|---|---|---|
| Detect a feature of 2.6 mm or more | at most feature / 2 | 1.3 mm or coarser | 4x4 (1.28 mm) |
| Detect a 1.3–2.6 mm feature | at most feature / 2 | 0.65–1.3 mm | 2x2 (0.64 mm) |
| Measure a feature of 2.6 mm or more | at most feature / 4 | 0.65 mm or coarser | 2x2 (0.64 mm) |
| Measure a 1.3–2.6 mm feature | at most feature / 4 | 0.33–0.65 mm | full (0.32 mm) |
| Any detail under 1.3 mm | below what full gives | tighter than 0.32 mm | move closer or change head |
When even full spacing is too coarse, close the distance rather than fight the grid: spacing tracks the field of view, so the head moved from 1300 mm to 650 mm delivers about 0.16 mm per point on the same part. The capture-side controls for that are covered in change 3D camera depth resolution and field of view at capture time.
If you start from the field of view and the feature size instead, the resolution calculator runs the same sum from the far end — field and smallest feature in, minimum points across out.
What about laser profilers and ToF cameras?
On a laser profiler there is no sampling switch along the scan axis; spacing is mechanical. Spacing along travel equals conveyor speed divided by profile rate — 250 mm/s at 1000 profiles per second is 0.25 mm per profile — and binning points across the profile coarsens the line the way 2x2 coarsens an area grid. Depth-array cameras usually expose one output resolution rather than a subsample factor, and on time-of-flight heads range ambiguity binds before spacing does; see choosing a time-of-flight unambiguous range for depth capture.
The same speed-versus-density trade lives on scan-style heads, under different controls — for example a laser-galvanometer stereo camera and a single-line laser profiler:
- Type
- Stereo / structured light
- Type
- Laser profiler
How do I check the setting took effect?
Count the points, measure the spacing and fit a plane: at 2x2 the count should be exactly one quarter of the full-grid figure, the mean nearest-neighbor distance exactly double, and the plane-fit scatter unchanged to within run-to-run noise.
Fit a plane to a flat patch of the part before and after the switch — 3D flatness inspection: fitting a plane to a point cloud gives the method — and compare the residual spread. If the scatter doubles, something other than sampling changed; go back through exposure, gain and the depth unit before touching the sampling factor again.
Before you commit the setting to the production profile:
- Smallest detect-feature divided by two, smallest measured feature divided by four — both at or above the spacing you are about to set?
- Point count after capture: exactly one quarter at 2x2, one sixteenth at 4x4?
- Edges or small radii in the tolerance stack: if yes, full resolution.
- Cycle-time claim: fixed pattern time budgeted before quoting the saving?
- A downsampling step later in the pipeline that this change can delete?
Set sampling the way you set exposure: from the feature size, once, then leave it in the capture profile. When the feature rule pushes you past what your current head delivers at full sampling, the 3D sensors category lists structured-light heads and laser profilers by type, and the camera finder filters them by interface and format; the 3D vision topic page collects the capture-side guides. For a station budget, send the part and the cycle target through the contact page and we will size head, sampling and cycle together.
Laser profilers and stereo 3D cameras
170 models · from $699.00Sorular
Does 2x2 subsampling halve my depth accuracy?
No. It halves the point density on each axis, so lateral spacing doubles (0.32 mm to 0.64 mm in the worked example) while each remaining point carries the same depth precision, because depth comes from the phase of the projected patterns at that pixel, not from its neighbors. What can change is lateral detail: features narrower than about two point spacings may drop out.
How many points does a 2448 x 2048 camera return at each sampling level?
5,013,504 points at full resolution (2448 x 2048), 1,253,376 at 2x2 (1224 x 1024) and 313,344 at 4x4 (612 x 512). Each factor of two on each axis divides the count by four, so 4x4 returns one sixteenth of the full cloud. Count the points in your viewer right after switching: an exact quarter is the fastest confirmation that the setting took, and a count that is not an exact fraction means something else, such as an ROI, is also active.
Should I subsample in the camera or thin the point cloud afterwards?
Subsample in the camera when the goal is speed and smaller files: the extra points are never computed, transferred or stored, and the grid positions stay exact. Thin afterwards when one capture must serve several consumers at different densities, and prefer a voxel-grid thin over keeping every nth point, because a voxel grid preserves height structure along z while decimation can shift fine edges.
Does subsampling shrink the stored file?
Yes, in proportion to point count. A binary point of three 32-bit floats is 12 bytes, so the full 5,013,504-point cloud is about 60 MB, the 2x2 cloud about 15 MB and the 4x4 cloud about 3.8 MB. Text formats such as ASCII XYZ cost three to six times that per point, which is why capture-time subsampling pays off fastest on stations that log every capture.
Can I combine subsampling with an ROI or a smaller field of view?
Yes, and they solve different problems. An ROI drops points outside a region but keeps full density inside it; subsampling keeps the whole field and coarsens it everywhere. Shrinking the field by moving closer also tightens spacing directly, because spacing scales with field of view: halve the field and you halve the distance between points.
Why does my camera's sampling list color options?
On some structured-light cameras the sampling control also selects the projected color channel, blue or red, each with its own 2x2 and 4x4 options. Blue patterns usually give lower-noise depth on dark or textured surfaces; red can win on warm-toned or translucent material. Set the color for noise first, then pick the coarsest factor your feature size allows, so one choice settles both noise and spacing.


