class ImageAnnotation extends Annotation

An image annotation is a region of an image that can be labeled by the users.

It consists of one or many points and has a specific shape.

Traits

HasFactory

Properties

protected array<int,string> $hidden

The attributes excluded from the model's JSON form.

from  Annotation
protected array<string,string> $casts

The attributes that should be casted to native types.

int $id from  Annotation
array $points from  Annotation
string $created_at from  Annotation
int $shape_id from  Annotation

Methods

validatePoints(array $points)

Validates a points array for the shape of this annotation.

setPointsAttribute(array $points)

Round the floats of the points array to 2 decimals before saving.

int
countDistinctCoordinates(array $points)

Counts number of distinct points

Builder
scopeVisibleFor(Builder $query, User $user)

Scope a query to only include annotations that are visible for a certain user.

Builder
scopeWithLabel(Builder $query, Label $label)

Scope a query to only include annotations that have a certain label attached.

Builder
scopeAllowedBySession(Builder $query, AnnotationSession $session, User $user)

Scope a query to only include annotations allowed by the session for the user.

file()

The file, this annotation belongs to.

labels()

The labels, this annotation got assigned by the users.

int
getFileIdAttribute()

Get the file_id attribute

Shape,$this>
shape()

The shape of this annotation.

array
getPoints()

Get the points array of the annotation.

getShape()

Get the shape of an annotation.

getFile()

Get the image/video, the annotation belongs to.

Image,$this>
image()

The image, this annotation belongs to.

Details

in HasPointsAttribute at line 16
validatePoints(array $points)

Validates a points array for the shape of this annotation.

Parameters

array $points

Points array like [x1, y1, x2, y2, x3, y3, ...]

Exceptions

Exception

in HasPointsAttribute at line 68
setPointsAttribute(array $points)

Round the floats of the points array to 2 decimals before saving.

This is a more than sufficient precision for annotation point coordinates and saves memory in the DB as well as when processing the annotations in PHP.

Parameters

array $points

in HasPointsAttribute at line 80
private int countDistinctCoordinates(array $points)

Counts number of distinct points

Parameters

array $points

containing the coordinates

Return Value

int

number of distinct points *

in Annotation at line 50
Builder scopeVisibleFor(Builder $query, User $user)

Scope a query to only include annotations that are visible for a certain user.

Parameters

Builder $query
User $user

The user to whom the restrictions should apply ('own' user)

Return Value

Builder

in Annotation at line 83
Builder scopeWithLabel(Builder $query, Label $label)

Scope a query to only include annotations that have a certain label attached.

Parameters

Builder $query
Label $label

Return Value

Builder

in Annotation at line 103
Builder scopeAllowedBySession(Builder $query, AnnotationSession $session, User $user)

Scope a query to only include annotations allowed by the session for the user.

Parameters

Builder $query
AnnotationSession $session
User $user

The user to whom the restrictions should apply ('own' user)

Return Value

Builder

at line 35
file()

The file, this annotation belongs to.

at line 53
labels()

The labels, this annotation got assigned by the users.

at line 45
int getFileIdAttribute()

Get the file_id attribute

Return Value

int

in Annotation at line 184
Shape,$this> shape()

The shape of this annotation.

Return Value

Shape,$this>

in Annotation at line 192
array getPoints()

Get the points array of the annotation.

Return Value

array

in Annotation at line 200
Shape getShape()

Get the shape of an annotation.

Return Value

Shape

in Annotation at line 208
VolumeFile getFile()

Get the image/video, the annotation belongs to.

Return Value

VolumeFile

at line 27
Image,$this> image()

The image, this annotation belongs to.

Return Value

Image,$this>