用Java+OpenCV进行图像对比并标出差异区域(支持中文图片路径)
发布时间
阅读量:
阅读量
1、设计方法为:
- 首先对两张图像实施灰度化处理;
- 对所得灰度图像进行比对,其中数值1表示两者完全一致,此时可设定一个阈值用于判断;
- 计算两幅灰度图像之间的绝对差值,并将结果存储于一个新的Mat对象中;
- 对该Mat对象中的数据执行绝对差值运算;
- 提取图像中的轮廓信息,并使用红色进行标注;
- 将最终生成的带有标注信息的图像输出至新的图片文件中;
2、难点说明:
- 在加载图像文件时,OpenCV库默认情况下无法处理包含中文字符的路径,因此需要采用替代方案实现该功能,具体可参考<>里描述的方法来解决该问题,具体代码见代码块中的方法readMat;>。
- 鉴于文件路径中包含中文字符,若直接使用OpenCV内置的图像保存函数,虽然程序执行过程中不会触发错误提示,但最终无法成功生成图像文件。为此,改用ImageIO库中的相关方法进行图像写入操作,具体实现方式可参见writeImage函数中的代码示例。
3、代码块如下所示
package com.dff.test;
import java.awt.HeadlessException;
import java.awt.image.BufferedImage;
import ja
全部评论 (0)
还没有任何评论哟~
