This commit is contained in:
@@ -11,12 +11,20 @@ class CoverDetectionConfig(RegisterConfig):
|
||||
self.center_y = 570.0
|
||||
self.scale_x = 1.0
|
||||
self.scale_y = 1.0
|
||||
self.scale_y = 1.0
|
||||
self.threshold = 0.60
|
||||
self.correlation_threshold = 0.60
|
||||
self.diameter_target=95
|
||||
self.diamter_disk=670
|
||||
self.diamter_dewar=1800
|
||||
self.size_mask_disk=0.8
|
||||
self.size_mask_dewar=0.98
|
||||
self.max_detect_offset=10
|
||||
self.open_strategy = "both"
|
||||
|
||||
class CoverCorrelation(ReadonlyAsyncRegisterBase):
|
||||
def __init__(self, name):
|
||||
ReadonlyAsyncRegisterBase.__init__(self, name)
|
||||
self.precision = 3
|
||||
|
||||
def set(self, value):
|
||||
self.onReadout(value)
|
||||
|
||||
@@ -96,7 +104,12 @@ class CoverDetection(ReadonlyAsyncRegisterBase, ReadonlyRegisterArray):
|
||||
ip = integrate(self.images)
|
||||
try:
|
||||
self.error = None
|
||||
x,y = detect(ip)
|
||||
center = (self.config.center_x, self.config.center_y)
|
||||
x,y = detect(ip, center, \
|
||||
diam_target=self.config.diameter_target, diam_disk= self.config.diamter_disk, diam_dewar=self.config.diamter_dewar, \
|
||||
mask_disk=self.config.size_mask_disk, mask_dewar=self.config.size_mask_dewar, \
|
||||
offset_threshold=self.config.max_detect_offset ,open_strategy= self.config.open_strategy)
|
||||
|
||||
except Exception as e:
|
||||
self.error = e
|
||||
x,y = -1, -1
|
||||
@@ -170,7 +183,7 @@ class CoverDetection(ReadonlyAsyncRegisterBase, ReadonlyRegisterArray):
|
||||
|
||||
def set_correlation(self, corr):
|
||||
self.corr = corr
|
||||
error = corr is not None and corr < self.config.threshold
|
||||
error = corr is not None and corr < self.config.correlation_threshold
|
||||
if error != self.correlation_error:
|
||||
self.correlation_error = error
|
||||
if error:
|
||||
|
||||
@@ -80,13 +80,19 @@ class VmbCamera (CameraBase):
|
||||
self.write_parameter("BinningHorizontal", value)
|
||||
|
||||
def getBinningX(self):
|
||||
return self.read_parameter("BinningHorizontal")
|
||||
try:
|
||||
return self.read_parameter("BinningHorizontal")
|
||||
except:
|
||||
return 1
|
||||
|
||||
def setBinningY(self, value):
|
||||
self.write_parameter("BinningVertical", value)
|
||||
|
||||
def getBinningY(self):
|
||||
return self.read_parameter("BinningVertical")
|
||||
try:
|
||||
return self.read_parameter("BinningVertical")
|
||||
except:
|
||||
return 1
|
||||
|
||||
def setROI(self, x, y, w, h):
|
||||
self.write_parameter("OffsetX", 0)
|
||||
|
||||
Reference in New Issue
Block a user