本文将介绍使用Java操作Opencv进行行大图找小图测试!

1、OpenCV简介

OpenCV是一个开源计算机视觉库,提供了丰富的图像处理和计算机规觉算法。它支持多种编程语言,包括Java本文将介绍如何在Java中使用OpenCV进行图像处理和计算机视觉任务。


2、引入安装

直接maven引入:

<dependency>
    <groupId>org.openpnp</groupId>
    <artifactId>opencv</artifactId>
    <version>3.4.2-1</version>
</dependency>

3、 算法

Java中进行大图找小图主要如下步骤:
1.导入Opencv库
2.加载图像
3.进行模板匹配
4.获取匹配结果
5.绘制匹配结果
6.显示结果

 4、代码

import java.net.URL;

import nu.pattern.OpenCV;
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.Point;
import org.opencv.core.Scalar;
import org.opencv.highgui.HighGui;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;

public class TestPicFind {

    public static void main(String[] args) {
        String sourceImg = "D:/source.png";
        String targetImg = "D:/target.png";
        new TestPicFind().testMatching(sourceImg, targetImg);
    }

    public void testMatching(String sourceImg,String targetImg) {

        // 1.导入Opencv库
        OpenCV.loadShared();
        // 2.加载图像
        Mat src = Imgcodecs.imread(sourceImg);// 待匹配图片
        Mat template = Imgcodecs.imread(targetImg);// 获取匹配模板

        // 3.进行模板匹配
        // 创建一个输出图像
        Mat outputImage = new Mat(src.rows(), src.cols(), src.type());
        Imgproc.matchTemplate(src, template, outputImage, Imgproc.TM_CCOEFF_NORMED);

        // 4.获取匹配结果,查找最大匹配值
        Core.MinMaxLocResult result = Core.minMaxLoc(outputImage);
        Point matchLoc = result.maxLoc;
        double similarity = result.maxVal; //匹配度
        int x = (int) matchLoc.x; //小图大大图中的x坐标
        int y = (int) matchLoc.y; //小图大大图中的y坐标
        System.out.println(x + "," + y + " similarity: " + similarity);
        //将查找到的结果标上框框
        Imgproc.rectangle(src,new Point(x,y),new Point(x+template.cols(),y+template.rows()),
                new Scalar( 0, 0, 255),2);

        //5.显示结果
        HighGui.imshow("模板匹配", src);
        HighGui.waitKey();

    }
}
图片如下:
1.target.png

 2.source.png

 运行结果:

1597,649 similarity: 0.9999993443489075

5、其他

OpenCV其他使用方式请见:OpenCV从入门到精通-CSDN博客

GitHub 加速计划 / opencv31 / opencv
149
15
下载
OpenCV: 开源计算机视觉库
最近提交(Master分支:4 个月前 )
96d6395a Add include chrono gstreamersource.cpp 3 天前
fe649f4a - 3 天前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐