Relational
Comparison and relational operations on images.
Function Mapping
| libvips C | Dart Binding | Description |
|---|---|---|
vips_relational() | relationalBindings.relational() | General relational operation |
vips_equal() | relationalBindings.equal() | Test equality |
vips_notequal() | relationalBindings.notequal() | Test inequality |
vips_less() | relationalBindings.less() | Test less than |
vips_lesseq() | relationalBindings.lesseq() | Test less than or equal |
vips_more() | relationalBindings.more() | Test greater than |
vips_moreeq() | relationalBindings.moreeq() | Test greater than or equal |
vips_relational_const() | relationalBindings.relationalConst() | Compare with constant |
vips_equal_const() | relationalBindings.equalConst() | Test equality with constant |
vips_boolean() | relationalBindings.boolean() | Boolean operation |
vips_andimage() | relationalBindings.andimage() | Bitwise AND |
vips_orimage() | relationalBindings.orimage() | Bitwise OR |
vips_eorimage() | relationalBindings.eorimage() | Bitwise XOR |
relational
General relational comparison between two images.
relationalBindings.relational(image1, image2, output, VipsOperationRelational.equal);
Operations (VipsOperationRelational):
equal- Test equalitynotequal- Test inequalityless- Test less thanlesseq- Test less than or equalmore- Test greater thanmoreeq- Test greater than or equal
equal / notequal
Test pixel-wise equality.
// Compare two images
relationalBindings.equal(image1, image2, output);
relationalBindings.notequal(image1, image2, output);
Result: 255 where condition is true, 0 where false.
less / lesseq / more / moreeq
Pixel-wise comparison.
relationalBindings.less(image1, image2, output); // image1 < image2
relationalBindings.lesseq(image1, image2, output); // image1 <= image2
relationalBindings.more(image1, image2, output); // image1 > image2
relationalBindings.moreeq(image1, image2, output); // image1 >= image2
relational_const
Compare image with a constant value.
relationalBindings.equalConst(image, output, 128); // pixels == 128
relationalBindings.moreConst(image, output, 128); // pixels > 128
boolean
Bitwise boolean operations.
relationalBindings.andimage(image1, image2, output); // Bitwise AND
relationalBindings.orimage(image1, image2, output); // Bitwise OR
relationalBindings.eorimage(image1, image2, output); // Bitwise XOR
Use Cases
Thresholding
// Create binary mask where pixels > 128
relationalBindings.moreConst(image, mask, 128);
Image Masking
// Apply mask: keep pixels where mask is 255
relationalBindings.andimage(image, mask, output);
Difference Detection
// Find pixels that differ between two images
relationalBindings.notequal(image1, image2, diff);