关系
图像的比较和关系操作。
函数映射
| libvips C | Dart 绑定 | 描述 |
|---|---|---|
vips_relational() | relationalBindings.relational() | 通用关系操作 |
vips_equal() | relationalBindings.equal() | 测试相等 |
vips_notequal() | relationalBindings.notequal() | 测试不等 |
vips_less() | relationalBindings.less() | 测试小于 |
vips_lesseq() | relationalBindings.lesseq() | 测试小于等于 |
vips_more() | relationalBindings.more() | 测试大于 |
vips_moreeq() | relationalBindings.moreeq() | 测试大于等于 |
vips_boolean() | relationalBindings.boolean() | 布尔操作 |
vips_andimage() | relationalBindings.andimage() | 按位与 |
vips_orimage() | relationalBindings.orimage() | 按位或 |
vips_eorimage() | relationalBindings.eorimage() | 按位异或 |
relational
两个图像之间的通用关系比较。
relationalBindings.relational(image1, image2, output, VipsOperationRelational.equal);
操作 (VipsOperationRelational):
equal- 测试相等notequal- 测试不等less- 测试小于lesseq- 测试小于等于more- 测试大于moreeq- 测试大于等于
equal / notequal
测试逐像素相等。
relationalBindings.equal(image1, image2, output);
relationalBindings.notequal(image1, image2, output);
结果:条件为真时为 255,为假时为 0。
less / lesseq / more / moreeq
逐像素比较。
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
boolean
按位布尔操作。
relationalBindings.andimage(image1, image2, output); // 按位与
relationalBindings.orimage(image1, image2, output); // 按位或
relationalBindings.eorimage(image1, image2, output); // 按位异或
用例
阈值化
// 创建像素 > 128 的二值掩码
relationalBindings.moreConst(image, mask, 128);
图像遮罩
// 应用遮罩:保留掩码为 255 的像素
relationalBindings.andimage(image, mask, output);
差异检测
// 找出两个图像之间不同的像素
relationalBindings.notequal(image1, image2, diff);