Peak extraction

Peak extraction

Zebra Rapixo CoF100 can perform on-board laser line (peak) extraction, needed for 3D profiling. For 3D profiling, a laser plane (sheet of light) is projected on an object. By extracting the position of the laser line as it deforms when striking the object’s surface, depth information can be established for that slice of the object. By grabbing a sequence of images as the object moves underneath the laser plane, and extracting the position of the laser line on the object, you can generate an uncorrected depth map of the exposed topography of the object.
To perform laser line extraction on-board, the laser line must appear horizontally in the image. The CoF100 can record the position and intensity of up to 3 peaks in each column. Extracting more than one peak is useful if the object (or background) is reflective or the image is noisy. Only the subpixel Y-coordinate and intensity of the peak(s) from each column are transmitted for each frame, lightening the load of the PCIe bus and Host CPU. Each frame is used to establish one row (Y-axis) in the uncorrected depth map and intensity map of the object in the scene.
To perform peak extraction on-board, you need to grab into an on-board buffer, and then call MimLocatePeak1d() with this buffer as the source and an image processing result buffer (MimAllocResult()) as the destination. MimLocatePeak1d() will perform that operation on-board without Host intervention if the specified buffer is an on-board 8-bit buffer. The buffer can be a single frame or a multi-frame on-board image buffer. Typically, when performing a laser line extraction for 3D profiling, many small frames are grabbed; to reduce the number of end-of-frame events sent to the Host, enable multi-burst technology and grab into a multi-frame buffer. Specify the Y-size of each individual frame using MimControl() with M_FRAME_SIZE. For on-board laser line extraction, the maximum frame size is 8192 columns with 512 rows, and the minimum frame size is 128 columns with 16 rows.