我正在尝试在一个集成测试中确定两个图像之间的差异。在网上进行了一些研究后,我偶然发现了MarvinProject并尝试用它创建一个单元测试,如下所示。
据我所知,插件
不幸的是,它没有打印出任何内容。
我编写了其他测试来按字节比较这两个图像,并且测试成功。如果您想尝试这个问题,我已经在GitHub上创建了一个仓库,这里是ImageCompareTest。
据我所知,插件
DifferentRegions
会将传递的ImageMask differenceMask
填充为包含差异的区域。我传递给测试的两张图片确实存在差异,因此应该打印出一些内容。不幸的是,它没有打印出任何内容。
我编写了其他测试来按字节比较这两个图像,并且测试成功。如果您想尝试这个问题,我已经在GitHub上创建了一个仓库,这里是ImageCompareTest。
@Test
public void tryMarvinProject() {
// init images
String root = "src/test/resources/";
MarvinImage assertedImg = MarvinImageIO.loadImage(root + "image1.bmp");
MarvinImage actualImg = MarvinImageIO.loadImage(root + "image2.bmp");
// init diff-regions plugin
DifferentRegions regions = new DifferentRegions();
regions.load();
regions.setAttribute("comparisonImage", assertedImg);
int width = assertedImg.getWidth();
int height = assertedImg.getHeight();
int type = assertedImg.getType();
// process the images and retrieve differences from the ImageMask
MarvinImageMask differenceMask = new MarvinImageMask();
regions.process(
actualImg,
new MarvinImage(new BufferedImage(width, height, type)),
new MarvinAttributes(),
differenceMask,
false);
// should contain the differences, but does not
System.out.println(differenceMask.getMaskArray());
assertNotNull(differenceMask.getMaskArray());
}