BioImager  3.9.1
A .NET microscopy imaging library. Supports various microscopes by using imported libraries & GUI automation. Supported libraries include PriorĀ® & ZeissĀ® & all devices supported by Micromanager 2.0 and python-microscope.
Loading...
Searching...
No Matches
microscope.gui.CameraWidget Class Reference
Inheritance diagram for microscope.gui.CameraWidget:

Public Member Functions

None __init__ (self, microscope.abc.Camera device, *args, **kwargs)
 
None updateEnableState (self)
 
None displayData (self, numpy.ndarray data)
 

Detailed Description

Display camera

Definition at line 180 of file gui.py.

Constructor & Destructor Documentation

◆ __init__()

None microscope.gui.CameraWidget.__init__ (   self,
microscope.abc.Camera  device,
args,
**  kwargs 
)

Definition at line 183 of file gui.py.

183 def __init__(self, device: microscope.abc.Camera, *args, **kwargs) -> None:
184 super().__init__(*args, **kwargs)
185 self._device = device
186 self._imager = _Imager(self._device)
187 self._imager.imageAcquired.connect(self.displayData)
188
189 self._view = QtWidgets.QLabel(parent=self)
190 self.displayData(
191 numpy.zeros(self._device.get_sensor_shape(), dtype=numpy.uint8)
192 )
193
194 self._enable_check = QtWidgets.QCheckBox("Enabled", parent=self)
195 self._enable_check.stateChanged.connect(self.updateEnableState)
196
197 self._exposure_box = QtWidgets.QDoubleSpinBox(parent=self)
198 self._exposure_box.setSuffix(" sec")
199 self._exposure_box.setSingleStep(0.1)
200 self._exposure_box.valueChanged.connect(self._device.set_exposure_time)
201
202 self._snap_button = QtWidgets.QPushButton("Snap", parent=self)
203 self._snap_button.clicked.connect(self._imager.snap)
204
205 self.updateEnableState()
206
207 layout = QtWidgets.QVBoxLayout()
208 controls_row = QtWidgets.QHBoxLayout()
209 for widget in [
210 self._enable_check,
211 self._exposure_box,
212 self._snap_button,
213 ]:
214 controls_row.addWidget(widget)
215 layout.addLayout(controls_row)
216 layout.addWidget(self._view)
217 self.setLayout(layout)
218

Member Function Documentation

◆ displayData()

None microscope.gui.CameraWidget.displayData (   self,
numpy.ndarray  data 
)

Definition at line 236 of file gui.py.

236 def displayData(self, data: numpy.ndarray) -> None:
237 np_to_qt = {
238 numpy.dtype("uint8"): QtGui.QImage.Format_Grayscale8,
239 numpy.dtype("uint16"): QtGui.QImage.Format_Grayscale16,
240 }
241 qt_img = QtGui.QImage(
242 data.tobytes(), *data.shape, np_to_qt[data.dtype]
243 )
244 self._view.setPixmap(QtGui.QPixmap.fromImage(qt_img))
245
246

◆ updateEnableState()

None microscope.gui.CameraWidget.updateEnableState (   self)
Update UI and camera state after enable check box

Definition at line 219 of file gui.py.

219 def updateEnableState(self) -> None:
220 """Update UI and camera state after enable check box"""
221 if self._enable_check.isChecked():
222 self._device.enable()
223 else:
224 self._device.disable()
225
226 if self._enable_check.isChecked() != self._device.get_is_enabled():
227 self._enable_check.setChecked(self._device.get_is_enabled())
228 _logger.error(
229 "failed to %s camera",
230 "enable" if self._enable_check.isChecked() else "disable",
231 )
232
233 self._snap_button.setEnabled(self._device.get_is_enabled())
234 self._exposure_box.setEnabled(self._device.get_is_enabled())
235

References microscope.gui.DeviceSettingsWidget._device, microscope.gui.ControllerWidget._device, microscope.gui.CameraWidget._device, microscope.gui.DeformableMirrorWidget._device, microscope.gui.FilterWheelWidget._device, microscope.gui.LightSourceWidget._device, microscope.gui.StageWidget._device, microscope.gui.CameraWidget._enable_check, microscope.gui.LightSourceWidget._enable_check, microscope.gui.CameraWidget._exposure_box, microscope.gui.CameraWidget._snap_button, and microscope.gui.CameraWidget._view.


The documentation for this class was generated from the following file: