opencv_setup_guide.md 3.0 KB

添加OpenCV依赖到项目

1. 在 pom.xml 中添加依赖

<dependencies> 标签内添加以下依赖:

<!-- OpenCV for图像处理 -->
<dependency>
    <groupId>org.openpnp</groupId>
    <artifactId>opencv</artifactId>
    <version>4.7.0-0</version>
</dependency>

2. 完整的 pom.xml dependencies 示例

<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>

3. 安装OpenCV

OpenCV的Java库会自动下载原生库(.dll/.so文件),无需手动安装。

Windows

  • 原生库会自动配置到Maven本地仓库
  • 确保系统有Visual C++ Redistributable

Linux

sudo apt-get install libopencv-dev

macOS

brew install opencv

4. 验证安装

添加测试代码验证OpenCV是否正常工作:

@Component
public class OpenCVTest {
    static {
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
    }

    @PostConstruct
    public void testOpenCV() {
        log.info("OpenCV版本: {}", Core.VERSION);
    }
}

5. OpenCV功能说明

本项目使用的OpenCV功能:

1. 图像读取和基本操作

  • Imgcodecs.imread() - 读取图像
  • CvType.CV_64F - 数据类型转换
  • Core.convertScaleAbs() - 数据类型转换

2. 图像处理

  • Imgproc.threshold() - 图像二值化
  • Imgproc.Canny() - 边缘检测
  • Imgproc.HoughLines/HoughLinesP() - 霍夫直线变换
  • Imgproc.Laplacian() - 拉普拉斯算子
  • Core.meanStdDev() - 均值和标准差计算

3. 质控分析算法

  • 检查范围:二值化 + 有效区域占比
  • 体位分析:边缘检测 + 对称性判断
  • 伪影检测:清晰度 + 亮度 + 噪声分析
  • 中心线检测:霍夫直线变换
  • 质量等级:清晰度 + 对比度 + 动态范围 + 信噪比

6. 常见问题

UnsatisfiedLinkError

确保OpenCV原生库正确加载:

static {
    System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
}

图像读取失败

检查图像路径是否正确,支持的格式:jpg, png, bmp, tiff

内存不足

处理大图像时注意:

  • 使用适当的图像尺寸
  • 及时释放Mat资源
  • 使用 mat.release() 方法