Line Counter Visualization¶
Class: LineCounterZoneVisualizationBlockV1
Source: inference.core.workflows.core_steps.visualizations.line_zone.v1.LineCounterZoneVisualizationBlockV1
Draw a line zone on an image to visualize counting boundaries, displaying a colored line overlay with in/out count labels for line counter workflows that track objects crossing a specified line.
How This Block Works¶
This block takes an image and line zone coordinates (two points defining a line) and draws a visual representation of the counting line with count statistics. The block:
- Takes an image and line zone coordinates (two points: [x1, y1] and [x2, y2]) as input
- Creates a line mask from the zone coordinates using the specified color and thickness
- Overlays the line onto the image with the specified opacity, creating a semi-transparent line visualization
- Displays text labels showing the count_in (objects that crossed into the zone) and count_out (objects that crossed out of the zone) values
- Positions the count text at the starting point of the line (x1, y1) with customizable text styling
- Returns an annotated image with the line zone and count statistics overlaid on the original image
The block visualizes line counting zones used to track object movement across a defined boundary line. The line is drawn between the two specified points with customizable color, thickness, and opacity. Count statistics (in and out) are displayed as text labels, typically connected from a Line Counter block that tracks object crossings. The visualization helps users see the counting boundary and monitor counting results in real-time. Note: This block should typically be placed before other visualization blocks in the workflow, as the line zone provides a background reference layer for object detection visualizations.
Common Use Cases¶
- Line Counter Visualization: Visualize line counting zones for people counting, vehicle counting, or object tracking workflows where objects cross a defined line boundary, displaying the counting line and in/out statistics
- Traffic and Movement Monitoring: Display counting lines for traffic monitoring, pedestrian flow analysis, or entry/exit tracking applications where you need to visualize the counting boundary and current counts
- Checkpoint and Access Control: Visualize counting lines at checkpoints, gates, or access points to show the monitoring boundary and track entry/exit counts for security or access control workflows
- Retail and Business Analytics: Display counting lines for foot traffic analysis, customer flow monitoring, or occupancy tracking in retail, hospitality, or business intelligence applications
- Crowd Management and Safety: Visualize counting lines for crowd management, capacity monitoring, or safety workflows where tracking object movement across boundaries is critical
- Real-Time Counting Dashboards: Create visual overlays for real-time counting dashboards, monitoring interfaces, or live video feeds where the counting line and statistics need to be clearly visible
Connecting to Other Blocks¶
The annotated image from this block can be connected to:
- Line Counter blocks to receive count_in and count_out values that are displayed on the visualization
- Other visualization blocks (e.g., Bounding Box Visualization, Label Visualization, Polygon Visualization) to add object detection annotations on top of the line zone visualization
- Data storage blocks (e.g., Local File Sink, CSV Formatter, Roboflow Dataset Upload) to save images with line zone visualizations for documentation, reporting, or analysis
- Webhook blocks to send visualized results with line zones to external systems, APIs, or web applications for display in dashboards or monitoring tools
- Notification blocks (e.g., Email Notification, Slack Notification) to send annotated images with line zones as visual evidence in alerts or reports
- Video output blocks to create annotated video streams or recordings with line zone visualizations for live monitoring, counting visualization, or post-processing analysis
Type identifier¶
Use the following identifier in step "type" field: roboflow_core/line_counter_visualization@v1to add the block as
as step in your workflow.
Properties¶
| Name | Type | Description | Refs |
|---|---|---|---|
name |
str |
Enter a unique identifier for this step.. | ❌ |
copy_image |
bool |
Enable this option to create a copy of the input image for visualization, preserving the original. Use this when stacking multiple visualizations.. | ✅ |
zone |
List[Any] |
Line zone coordinates in the format [[x1, y1], [x2, y2]] consisting of exactly two points that define the counting line. The line is drawn between these two points, and objects crossing this line are counted. Typically connected from a Line Counter block's zone output.. | ✅ |
color |
str |
Color of the line zone. Can be specified as a color name (e.g., 'WHITE', 'RED'), hex color code (e.g., '#5bb573', '#FFFFFF'), or RGB format (e.g., 'rgb(255, 255, 255)'). The line is drawn in this color with the specified opacity.. | ✅ |
thickness |
int |
Thickness of the line zone in pixels. Controls how thick the counting line appears. Higher values create thicker, more visible lines, while lower values create thinner lines. Typical values range from 1 to 10 pixels.. | ✅ |
text_thickness |
int |
Thickness of the count text labels in pixels. Controls how bold the text appears (line width of text characters). Higher values create thicker, bolder text, while lower values create thinner text. Typical values range from 1 to 3.. | ✅ |
text_scale |
float |
Scale factor for the count text labels. Controls the size of the text displaying count_in and count_out values. Values greater than 1.0 make text larger, values less than 1.0 make text smaller. Typical values range from 0.5 to 2.0.. | ✅ |
count_in |
int |
Number of objects that crossed into the line zone (crossing from one side to the other in the 'in' direction). Typically connected from a Line Counter block's count_in output (e.g., '$steps.line_counter.count_in'). This value is displayed in the visualization text label.. | ✅ |
count_out |
int |
Number of objects that crossed out of the line zone (crossing from one side to the other in the 'out' direction). Typically connected from a Line Counter block's count_out output (e.g., '$steps.line_counter.count_out'). This value is displayed in the visualization text label.. | ✅ |
opacity |
float |
Opacity of the line zone overlay, ranging from 0.0 (fully transparent) to 1.0 (fully opaque). Controls how transparent the counting line appears over the image. Lower values create more transparent lines that blend with the background, while higher values create more opaque, visible lines. Typical values range from 0.2 to 0.5 for balanced visibility.. | ✅ |
The Refs column marks possibility to parametrise the property with dynamic values available
in workflow runtime. See Bindings for more info.
Available Connections¶
Compatible Blocks
Check what blocks you can connect to Line Counter Visualization in version v1.
- inputs:
Keypoint Visualization,Twilio SMS/MMS Notification,OPC UA Writer Sink,Qwen 3.6 API,SIFT Comparison,Grid Visualization,PLC Writer,Llama 3.2 Vision,JSON Parser,Absolute Static Crop,Distance Measurement,Roboflow Visual Search Classifier,Image Threshold,Polygon Zone Visualization,CogVLM,MQTT Writer,Contrast Equalization,Google Gemini,Detections List Roll-Up,OCR Model,GLM-OCR,Background Subtraction,Contrast Enhancement,Reference Path Visualization,Twilio SMS Notification,Google Gemma API,Instance Segmentation Model,PTZ Tracking (ONVIF),VLM As Detector,Florence-2 Model,Dynamic Crop,Halo Visualization,Image Blur,LMM,Ellipse Visualization,OpenAI,Florence-2 Model,Line Counter,LMM For Classification,Event Writer,OpenAI,Google Gemma,Keypoint Detection Model,Buffer,Slack Notification,Heatmap Visualization,Email Notification,Circle Visualization,Perspective Correction,Camera Focus,Crop Visualization,Polygon Visualization,Detections Consensus,Line Counter,Multi-Label Classification Model,Stability AI Inpainting,OpenAI-Compatible LLM,VLM As Classifier,Object Detection Model,PLC ModbusTCP,Image Slicer,Google Gemini,Roboflow Vision Events,Size Measurement,Local File Sink,Dot Visualization,Line Counter Visualization,Depth Estimation,Stitch OCR Detections,PP-OCR,Blur Visualization,Clip Comparison,EasyOCR,Anthropic Claude,PLC EthernetIP,CSV Formatter,Color Visualization,Dynamic Zone,Image Convert Grayscale,Motion Detection,Stitch OCR Detections,Single-Label Classification Model,Qwen 3.5 API,Trace Visualization,Icon Visualization,Current Time,PLC Reader,Model Comparison Visualization,Camera Focus,QR Code Generator,Google Gemini,Image Stack,Qwen-VL,Mask Visualization,MoonshotAI Kimi,Microsoft SQL Server Sink,Text Display,Gaze Detection,Stability AI Image Generation,Google Vision OCR,Webhook Sink,OpenAI,VLM As Detector,Identify Outliers,Cosine Similarity,Pixelate Visualization,Stitch Images,S3 Sink,Classification Label Visualization,MoonshotAI Kimi,Polygon Visualization,Dimension Collapse,Anthropic Claude,Roboflow Dataset Upload,Morphological Transformation,Detection Event Log,Bounding Box Visualization,Template Matching,VLM As Classifier,Image Contours,Image Slicer,Stability AI Outpainting,Anthropic Claude,Roboflow Custom Metadata,Camera Calibration,Roboflow Asset Library Attributes,Morphological Transformation,Relative Static Crop,Background Color Visualization,Model Monitoring Inference Aggregator,Clip Comparison,Corner Visualization,GeoTag Detection,SIFT,Roboflow Visual Search,OpenRouter,Identify Changes,Llama 3.2 Vision,Qwen3.5-VL,Email Notification,Triangle Visualization,OpenAI,Roboflow Dataset Upload,Pixel Color Count,Image Preprocessing,SIFT Comparison,Halo Visualization,Label Visualization - outputs:
Keypoint Visualization,Twilio SMS/MMS Notification,Keypoint Detection Model,Perception Encoder Embedding Model,Qwen 3.6 API,Object Detection Model,SAM 3,Llama 3.2 Vision,Absolute Static Crop,Roboflow Visual Search Classifier,Image Threshold,Polygon Zone Visualization,CogVLM,BoT-SORT Tracker,Contrast Equalization,Google Gemini,OCR Model,GLM-OCR,Background Subtraction,Contrast Enhancement,Reference Path Visualization,Google Gemma API,Instance Segmentation Model,Mask Edge Snap,VLM As Detector,Florence-2 Model,Halo Visualization,Dynamic Crop,SAM 3 Interactive,LMM,Image Blur,Seg Preview,SAM 3,Ellipse Visualization,OpenAI,Florence-2 Model,LMM For Classification,Time in Zone,Semantic Segmentation Model,Instance Segmentation Model,OpenAI,Event Writer,Single-Label Classification Model,Google Gemma,Keypoint Detection Model,Buffer,Heatmap Visualization,Semantic Segmentation Model,SORT Tracker,Email Notification,Circle Visualization,Perspective Correction,Camera Focus,Byte Tracker,Crop Visualization,Keypoint Detection Model,Polygon Visualization,ByteTrack Tracker,Multi-Label Classification Model,Stability AI Inpainting,SAM 3,Object Detection Model,VLM As Classifier,Google Gemini,Image Slicer,Roboflow Vision Events,Multi-Label Classification Model,Qwen3.5,Object Detection Model,SAM3 Video Tracker,Dot Visualization,QR Code Detection,Line Counter Visualization,Instance Segmentation Model,Depth Estimation,PP-OCR,Blur Visualization,EasyOCR,Clip Comparison,Anthropic Claude,Segment Anything 2 Model,Color Visualization,Qwen2.5-VL,Qwen3-VL,Image Convert Grayscale,Motion Detection,Single-Label Classification Model,Qwen 3.5 API,Trace Visualization,Icon Visualization,Model Comparison Visualization,Camera Focus,Google Gemini,Detections Stitch,Image Stack,Instance Segmentation Model,Qwen-VL,Mask Visualization,MoonshotAI Kimi,Text Display,Gaze Detection,Stability AI Image Generation,Google Vision OCR,OpenAI,VLM As Detector,Pixelate Visualization,Stitch Images,Classification Label Visualization,MoonshotAI Kimi,Polygon Visualization,Anthropic Claude,Roboflow Dataset Upload,Morphological Transformation,Bounding Box Visualization,SmolVLM2,Template Matching,VLM As Classifier,Image Contours,Image Slicer,Stability AI Outpainting,Anthropic Claude,Multi-Label Classification Model,SAM2 Video Tracker,Barcode Detection,Camera Calibration,Morphological Transformation,Detections Stabilizer,Relative Static Crop,Background Color Visualization,Clip Comparison,GeoTag Detection,Corner Visualization,SIFT,Track Class Lock,Dominant Color,Moondream2,Roboflow Visual Search,OpenRouter,Qwen3.5-VL,Llama 3.2 Vision,CLIP Embedding Model,Single-Label Classification Model,Triangle Visualization,OpenAI,Pixel Color Count,OC-SORT Tracker,Roboflow Dataset Upload,Image Preprocessing,SIFT Comparison,YOLO-World Model,Halo Visualization,Label Visualization
Input and Output Bindings¶
The available connections depend on its binding kinds. Check what binding kinds
Line Counter Visualization in version v1 has.
Bindings
-
input
image(image): The image to visualize on..copy_image(boolean): Enable this option to create a copy of the input image for visualization, preserving the original. Use this when stacking multiple visualizations..zone(list_of_values): Line zone coordinates in the format [[x1, y1], [x2, y2]] consisting of exactly two points that define the counting line. The line is drawn between these two points, and objects crossing this line are counted. Typically connected from a Line Counter block's zone output..color(string): Color of the line zone. Can be specified as a color name (e.g., 'WHITE', 'RED'), hex color code (e.g., '#5bb573', '#FFFFFF'), or RGB format (e.g., 'rgb(255, 255, 255)'). The line is drawn in this color with the specified opacity..thickness(integer): Thickness of the line zone in pixels. Controls how thick the counting line appears. Higher values create thicker, more visible lines, while lower values create thinner lines. Typical values range from 1 to 10 pixels..text_thickness(integer): Thickness of the count text labels in pixels. Controls how bold the text appears (line width of text characters). Higher values create thicker, bolder text, while lower values create thinner text. Typical values range from 1 to 3..text_scale(float): Scale factor for the count text labels. Controls the size of the text displaying count_in and count_out values. Values greater than 1.0 make text larger, values less than 1.0 make text smaller. Typical values range from 0.5 to 2.0..count_in(integer): Number of objects that crossed into the line zone (crossing from one side to the other in the 'in' direction). Typically connected from a Line Counter block's count_in output (e.g., '$steps.line_counter.count_in'). This value is displayed in the visualization text label..count_out(integer): Number of objects that crossed out of the line zone (crossing from one side to the other in the 'out' direction). Typically connected from a Line Counter block's count_out output (e.g., '$steps.line_counter.count_out'). This value is displayed in the visualization text label..opacity(float_zero_to_one): Opacity of the line zone overlay, ranging from 0.0 (fully transparent) to 1.0 (fully opaque). Controls how transparent the counting line appears over the image. Lower values create more transparent lines that blend with the background, while higher values create more opaque, visible lines. Typical values range from 0.2 to 0.5 for balanced visibility..
-
output
image(image): Image in workflows.
Example JSON definition of step Line Counter Visualization in version v1
{
"name": "<your_step_name_here>",
"type": "roboflow_core/line_counter_visualization@v1",
"image": "$inputs.image",
"copy_image": true,
"zone": [
[
0,
50
],
[
500,
50
]
],
"color": "WHITE",
"thickness": 2,
"text_thickness": 1,
"text_scale": 1.0,
"count_in": "$steps.line_counter.count_in",
"count_out": "$steps.line_counter.count_out",
"opacity": 0.3
}