camera
Functions
|
Factory function to initialize a Camera. |
Prints diagnostic information about connected cameras using Picamera2. |
Classes
|
Controls a Picamera2 device, handles recording, and performs real-time detection. |
|
A QPicamera2 subclass that renders frames at a lower frequency. |
- print_info_about_the_connected_cameras() None[source]
Prints diagnostic information about connected cameras using Picamera2.
- class LowFreqQPicamera2(*args: Any, **kwargs: Any)[source]
Bases:
QPicamera2A QPicamera2 subclass that renders frames at a lower frequency.
- _frame_counter
Counter for skipped frames.
- Type:
int
- _good_frame
The interval at which frames should be rendered.
- Type:
int
- render_request(completed_request) None[source]
Renders requests only at the specified subsampled rate.
- Parameters:
completed_request – The completed camera request.
- class Camera(index: int, framerate: int, name: str)[source]
Bases:
CameraBaseControls a Picamera2 device, handles recording, and performs real-time detection.
- width
Frame width.
- Type:
int
- height
Frame height.
- Type:
int
- index
Camera index.
- Type:
int
- name
Camera name (e.g., “BOX”, “CORRIDOR”).
- Type:
str
- framerate
Camera framerate.
- Type:
int
- encoder_quality
Quality setting for H264 encoder.
- encoder
The video encoder instance.
- Type:
H264Encoder
- cam
The Picamera2 instance.
- Type:
Picamera2
- config
The camera configuration.
- path_video
Path to the output video file.
- Type:
str
- path_csv
Path to the output CSV file.
- Type:
str
- path_picture
Path to save snapshots.
- Type:
str
- output
The output handler for recording.
- Type:
FfmpegOutput
- filename
Base filename for recordings.
- Type:
str
- color_areas
Colors for detection areas.
- Type:
list
- thickness_line
Line thickness for drawing.
- Type:
int
- detection_color
Color for detection indicators.
- Type:
tuple
- detection_size
Size of detection indicators.
- Type:
int
- color_rectangle
Color for the status rectangle.
- Type:
tuple
- color_text
Color for text overlays.
- Type:
tuple
- change
Flag to trigger property updates.
- Type:
bool
- annotation
Current annotation text.
- Type:
str
- trial
Current trial number.
- Type:
int
- tracking
Whether position tracking is enabled.
- Type:
bool
- x_position
Centroid X coordinate.
- Type:
int
- y_position
Centroid Y coordinate.
- Type:
int
- frames
List of frame numbers.
- Type:
list[int]
- timings
List of timings.
- Type:
list[int]
- trials
List of trial numbers.
- Type:
list[int]
- annotations
List of annotations.
- Type:
list[str]
- x_positions
List of X positions.
- Type:
list[int]
- y_positions
List of Y positions.
- Type:
list[int]
- camera_timestamps
List of camera sensor timestamps.
- Type:
list[float]
- pre_process_timestamps
List of preprocess timestamps.
- Type:
list[float]
- origin_rectangle
Coordinates for status bar background.
- Type:
tuple
- end_rectangle
Dimensions for status bar background.
- Type:
tuple
- origin_text1
Position for first text line.
- Type:
tuple
- origin_text2
Position for second text line.
- Type:
tuple
- origin_areas
Positions for area status text.
- Type:
list
- font
Font used for overlays.
- scale
Font scale.
- Type:
float
- thickness_text
Font thickness.
- Type:
int
- frame_number
Current frame number.
- Type:
int
- chrono
Chronometer for timing.
- Type:
time_utils.Chrono
- masks
Detection masks for each area.
- Type:
list
- counts
Pixel counts for each area.
- Type:
list[int]
- error
Error message.
- Type:
str
- error_frame
Frame number where error occurred.
- Type:
int
- is_recording
Recording status.
- Type:
bool
- show_time_info
Whether to display time info on frame.
- Type:
bool
- two_mice_detections
Counter for multiple mouse detections.
- Type:
int
- prohibited_detections
Counter for prohibited area detections.
- Type:
int
- area4_alarm_timer
Timer for area 4 alarms.
- Type:
time_utils.Timer
- box_alarm_timer
Timer for box alarms.
- Type:
time_utils.Timer
- pre_process_timestamp
Timestamp of last preprocess call.
- Type:
float
- camera_timestamp
Timestamp of current frame.
- Type:
float
- watchdog_timer
Timer to restart camera if frozen.
- Type:
QTimer
- set_properties() None[source]
Updates camera detection properties from settings.
- start_camera() None[source]
Starts the camera capture.
- stop_camera() None[source]
Stops the camera capture.
- stop_preview_window() None[source]
Stops the preview window and resets preview to NULL.
- start_recording(path_video: str = '', path_csv: str = '') None[source]
Starts recording video and data.
- Parameters:
path_video (str) – Custom video path. Defaults to automatic naming based on settings.
path_csv (str) – Custom CSV path. Defaults to automatic naming based on settings.
- stop_recording() None[source]
Stops recording and saves CSV data.
- reset_values() None[source]
Resets all tracking and recording variables to defaults.
- save_csv() None[source]
Saves the recorded data frames to a CSV file.
- print_info_about_config() None[source]
Prints the current camera configuration to console.
- watchdog_tick() None[source]
Checks if the camera is still producing frames, restarts if frozen.
- restart_camera() None[source]
Restarts the camera subprocess and watchdog.
- pre_process(request: Any) None[source]
Callback for frame processing. Handles detection, drawing, and recording.
- Parameters:
request (Any) – The camera request containing the frame buffer.
- get_gray_frame() None[source]
Converts the current frame to grayscale.
- detect_and_trigger() None[source]
Performs detection based on color settings and position tracking.
- trigger() None[source]
Checks if detection zones are triggered and notifies the manager.
- detect_black() None[source]
Detects black objects in defined areas using thresholding.
- detect_white() None[source]
Detects white objects in defined areas using thresholding.
- detect_black_position_components() None[source]
Detects position of black mouse using connected components.
- detect_white_position_components() None[source]
Detects position of white mouse using connected components.
- detect_black_position_contours() None[source]
Detects position of black mouse using contours.
- detect_white_position_contours() None[source]
Detects position of white mouse using contours.
- draw_detection() None[source]
Draws detection results (thresholded views or position) on the frame.
- draw_rectangles() None[source]
Draws the status bar background and detection area rectangles.
- write_texts() None[source]
Writes status text (filename, trial, timing) onto the frame.
- write_pixel_detection() None[source]
Writes pixel count for each area on the frame.
- draw_thresholded_black() None[source]
Draws the thresholded view for black detection on the frame.
- draw_thresholded_white() None[source]
Draws the thresholded view for white detection on the frame.
- draw_position() None[source]
Draws the current tracked position on the frame.
- write_csv() None[source]
Appends current frame data to internal lists for CSV export.
- start_preview_window() <MagicMock name='mock.QWidget' id='140286155962896'>[source]
Starts a low-frequency preview window for the GUI.
- Returns:
The preview widget.
- Return type:
QWidget
- write_text(text: str) None[source]
Sets the annotation text to be displayed on the frame.
- Parameters:
text (str) – The annotation text.
- areas_corridor_ok() bool[source]
Checks if the corridor areas are in valid states (no unexpected detections).
- Returns:
True if areas are okay, False otherwise.
- Return type:
bool
- areas_box_ok() None[source]
Checks box areas for allowed/prohibited detections and logs alarms if needed.
- area_1_empty() bool[source]
Checks if area 1 is empty.
- area_2_empty() bool[source]
Checks if area 2 is empty.
- area_3_empty() bool[source]
Checks if area 3 is empty.
- area_4_empty() bool[source]
Checks if area 4 is empty.
- take_picture() None[source]
Captures a snapshot from the camera.
- get_camera(index: int, framerate: int, name: str) CameraBase[source]
Factory function to initialize a Camera.
- Parameters:
index (int) – Camera index.
framerate (int) – Framerate.
name (str) – Camera name.
- Returns:
An initialized Camera or base class on failure.
- Return type: