Advertisement

用Java+OpenCV进行图像对比并标出差异区域(支持中文图片路径)

阅读量:

1、设计方法为:

  1. 首先对两张图像实施灰度化处理;
  2. 对所得灰度图像进行比对,其中数值1表示两者完全一致,此时可设定一个阈值用于判断;
  3. 计算两幅灰度图像之间的绝对差值,并将结果存储于一个新的Mat对象中;
  4. 对该Mat对象中的数据执行绝对差值运算;
  5. 提取图像中的轮廓信息,并使用红色进行标注;
  6. 将最终生成的带有标注信息的图像输出至新的图片文件中;

2、难点说明:

  1. 在加载图像文件时,OpenCV库默认情况下无法处理包含中文字符的路径,因此需要采用替代方案实现该功能,具体可参考<>里描述的方法来解决该问题,具体代码见代码块中的方法readMat;>。
  2. 鉴于文件路径中包含中文字符,若直接使用OpenCV内置的图像保存函数,虽然程序执行过程中不会触发错误提示,但最终无法成功生成图像文件。为此,改用ImageIO库中的相关方法进行图像写入操作,具体实现方式可参见writeImage函数中的代码示例。

3、代码块如下所示

复制代码
    package com.dff.test;
    
    import java.awt.HeadlessException;
    import java.awt.image.BufferedImage;
    import ja

全部评论 (0)

还没有任何评论哟~