Includes updated functions for:
Thresholding -- Otsu thresholding for sideview loop alignment
Inputs:
x_min, x_max, y_min, y_max determine the bounding box
Outputs:
h_min, h_max of the threshold region in that box
Canny edge detection -- simultaneous rotation axis, face-on crystal loop centering used by pseudo fly scanning top alignment
also used for focus scan in rotation axis measurement
Inputs:
- threshold value
- threshold ratio
- blur degree
- kernel size
- threshold value mask (global threshold value used for face on angle calc.)
- threshold max (used for face on angle calc.)
Outputs:
- Horizontal Center
- Horizontal Size
- Vertical Center
- Vertical Size
- Top Pixel
- Bottom Pixel
- Left Pixel
- Right Pixel
- Y value of rightmost pixel (for rotation axis measurement)
- thresholded sum (global threshold used for face on angle calc.)
User function -- used for rotation axis alignment
The rotation axis alignment pin used to calibrate rotation axis has some varied lighting effects around edges. Detect contour of ~2 min tip and use pixel height of this contour for rotation axis measurement. Use very similar parameters to edge detection since the contours are determined from Canny edges. Also, prior to implementation of loop detection model, added experimental feature for finding neck of loop objects; this feature did not work well and will be removed in the next tag.
Inputs:
- Thresh val
- Thresh ratio
- blur degree
- max allowed gap
- excess pixels for resetting max gap
Outputs:
- left edge x pixel
- left edge y pixel
- high gap col
- high gap center
- low gap col
- low gap center
Update instructions:
- Log in to IOC machine running camera IOCs
- Stop camera IOC
- run:
cd <ADCompVision root path>
make
- If successful, then
cd /epics/iocs/prosilica
make
- Start camera IOC
- Start camera acquire
Note: may need to refresh CSS OPI or restart CSS client