在 <dependencies> 标签内添加以下依赖:
<!-- OpenCV for图像处理 -->
<dependency>
<groupId>org.openpnp</groupId>
<artifactId>opencv</artifactId>
<version>4.7.0-0</version>
</dependency>
<dependencies>
<!-- 其他已有依赖 -->
<!-- Spring Boot -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- MyBatis-Plus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.1</version>
</dependency>
<!-- OpenCV -->
<dependency>
<groupId>org.openpnp</groupId>
<artifactId>opencv</artifactId>
<version>4.7.0-0</version>
</dependency>
<!-- FastJSON -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.83</version>
</dependency>
<!-- Lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
OpenCV的Java库会自动下载原生库(.dll/.so文件),无需手动安装。
sudo apt-get install libopencv-dev
brew install opencv
添加测试代码验证OpenCV是否正常工作:
@Component
public class OpenCVTest {
static {
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
}
@PostConstruct
public void testOpenCV() {
log.info("OpenCV版本: {}", Core.VERSION);
}
}
本项目使用的OpenCV功能:
Imgcodecs.imread() - 读取图像CvType.CV_64F - 数据类型转换Core.convertScaleAbs() - 数据类型转换Imgproc.threshold() - 图像二值化Imgproc.Canny() - 边缘检测Imgproc.HoughLines/HoughLinesP() - 霍夫直线变换Imgproc.Laplacian() - 拉普拉斯算子Core.meanStdDev() - 均值和标准差计算确保OpenCV原生库正确加载:
static {
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
}
检查图像路径是否正确,支持的格式:jpg, png, bmp, tiff
处理大图像时注意:
mat.release() 方法