java 调用 opencv 识别图片

这篇具有很好参考价值的文章主要介绍了java 调用 opencv 识别图片。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

opencv 的 github 地址
opencv 官网

本文介绍如何使用 java 来调用 opencv

下载opencv

opencv下载 页面根据自己电脑操作系统下载最新的安装包,我这里下载的是 4.7.0 版本。

(4.7.0 版本里的 opencv-470.jar 包是使用 jdk11 编译的,所以需要安装 jdk11 后面测试时才不会报错)

java 调用 opencv 识别图片

下载后运行文件,开始抽取文件

java 调用 opencv 识别图片

调用opencv

1.idea 的 resource 文件夹下新建个 lib 文件夹。

2.opencv 抽取文件目录下的 opencv\build\javaopencv\build\java\x64 这两个目录下,分别把 opencv-470.jar 和 opencv_java470.dll 动态库复制一份到 lib 文件夹下。

3.idea 的 File ——> Project Structure ——> Modules ——> Dependencis ——> 加号 ,把 lib 目录下的 opencv-470.jar 依赖上。

java 调用 opencv 识别图片

java 调用 opencv 识别图片

3.测试

package com.hai.tang;

import org.opencv.core.Mat;
import org.opencv.core.MatOfPoint;
import org.opencv.core.Scalar;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;

import java.net.URL;
import java.util.ArrayList;
import java.util.List;

import static org.opencv.highgui.HighGui.imshow;
import static org.opencv.highgui.HighGui.waitKey;

public class MainServer {
    public static void main(String[] args) throws Exception {
        //加载opencv的动态库
        initOpenCv();
        //加载图片并描绘外形
        drawAllArea();
    }

    public static String filePath = "F:\\opencv\\aaa.jpeg";

    //加载动态库
    public static void initOpenCv() {
        URL url = ClassLoader.getSystemResource("lib/opencv_java470.dll");
        System.load(url.getPath());
    }

    public static Mat getImageMat(String path) throws Exception {
        Mat mat = Imgcodecs.imread(path);
        if (mat.empty()) {
            throw new Exception("image is empty");
        } else {
            return mat;
        }
    }

    //在图片上绘制图形外形
    private static void drawAllArea() throws Exception {
        Mat src = getImageMat(filePath);
        Mat gary = new Mat();
        Imgproc.cvtColor(src, gary, Imgproc.COLOR_BGR2GRAY);
        //图像边缘处理
        Mat edges = new Mat();
        Imgproc.Canny(gary, edges, 200, 500, 3, false);
        List<MatOfPoint> list = new ArrayList<MatOfPoint>();
        Mat hierarchy = new Mat();
        //发现轮廓
        Imgproc.findContours(edges, list, hierarchy, Imgproc.RETR_TREE, Imgproc.CHAIN_APPROX_NONE);
        //画出轮廓
        Imgproc.drawContours(src, list, -1, new Scalar(255, 0, 0), Imgproc.LINE_4, Imgproc.LINE_4);
        imshow("drawAllArea", src);
        waitKey();
    }
}

4.效果
java 调用 opencv 识别图片

上面代码 initOpenCv 方法里使用了 System.load 去加载 dll 动态链接库,除了使用代码去加载还有其他方式。

比如:

(1) 把 dll 文件路径配置到环境变量;
(2) 把dll文件放到其他系统文件夹或者 jdk/jre 文件夹下;
(3) 把 dll 文件路径加到 JVM参数里;


参考:

Java调用OpenCV
JAVA调用C/C++动态库 开发笔记文章来源地址https://www.toymoban.com/news/detail-497857.html

到了这里,关于java 调用 opencv 识别图片的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • h5调用手机摄像头获取图片用于人脸识别

    1、安卓手机获取前置摄像头,并在video标签显示 注:navigator.mediaDevices.getUserMedia文档说明兼容Safari11,实测不好用 2、苹果手机获取前置摄像头拍照上传,用于人脸识别 注:该方法在安卓手机也可使用 3、附件 //exif.js exif.js //rotate-photo.js rotate-photo.js

    2024年02月11日
    浏览(51)
  • 基于opencv的图片文字识别实战

    1. 图像边缘检测。 2. 获取轮廓信息。 3. 透视变换,经过旋转、平移等操作对文档图片进行处理。 4. OCR识别图片当中每一个字符。 图片展示:    我们这里以一个英文的文件,一个自己用中文的一首诗来去做这个项目。因为怕其他东西干扰边缘,于是自己画了个框把边缘圈起

    2024年02月08日
    浏览(38)
  • OpenCV 人脸识别、图片相似度检测

    识别出人脸后会得到两个人脸的 Rect 数组,然后比较这两个 Rect 数组的相似度即可! 实现步骤 ==== 工程目录准备 新建 Android Studio 项目  OpenCVCheck 导入 OpenCVLibrary320 在 module 下的 build.gradle 中引入 OpenCVLibrary 的编译: compile project(‘:openCVLibrary320’) 检测任意两张图片的相似度的

    2024年04月16日
    浏览(31)
  • 利用OpenCV实现图片中导线的识别

    下面是一个需求,识别图片中的导线,要在图像中检测导线,我们需要采用不同于直线检测的方法。由于OpenCV没有直接的曲线检测函数,如同它对直线提供的 HoughLines 或 HoughLinesP ,检测曲线通常需要更多的图像处理步骤和算法: 边缘检测 :首先使用Canny边缘检测器检测图像

    2024年02月03日
    浏览(41)
  • 使用OpenCV调用摄像头和读取视频图片

    要捕获视频,你需要创建一个 VideoCapture 对象。它的参数是设备索引的名称。设备索引就是指定哪个摄像头的数字。正常情况下,内部摄像头可以通过传入0来调用,传递1来选择外置的第二个相机,以此类推。在此之后,你可以逐帧捕获。但是在最后,不要忘记释放俘虏。 直

    2024年02月08日
    浏览(51)
  • Python+OpenCV 调用手机摄像头并实现人脸识别

    文章内容 : 1、windows 环境下安装 OpenCV 机器视觉环境搭建; 2、基于通过 Python+OpenCV 调用 手机摄像头 并实现人脸检测识别。 操作环境:Windows 10 64位 开发 IDE:Spyder 4.2.5 Python:3.8 OpenCV:OpenCv-Python 4.5.3 硬件需要:PC(win10)、手机 主要介绍使用 pip 安装 OpenCV(使用.whl文件安装

    2024年02月09日
    浏览(54)
  • Python Opencv 图片识别表格:边框线检测

    Python数据开发工作需求对图片做边框线检查和图片中的直线,非常实用建议收藏 下面需要用模块,先安装一下: 该示例代码使用边缘检测和霍夫变换提取图片中的直线,然后根据直线数量来判断是否有表格。这只是一个简单的示例,具体的判断方法和算法需要根据具体情况

    2024年02月16日
    浏览(39)
  • 使用opencv+tesseract识别图片中的表格

    在java环境中使用opencv和tesserac识别一个图片表格 环境:opencv和tesseract安装在linux环境下,docker将运行springboot服务 opencv和tesseract的安装和docker加载可参考之前的文章 将图片进行预处理,过滤掉颜色等干扰元素 提取图片的水平线和垂直线,并进行重叠过滤 得到水平线和垂直线

    2024年02月21日
    浏览(36)
  • 使用C++和OpenCV进行人脸识别,包含模型训练与调用过程

    人脸识别是计算机视觉领域的一个重要应用,可以用于安全系统、人脸解锁和人脸表情分析等方面。本教程将向您展示如何使用C++和OpenCV库实现基本的人脸识别功能。我们将分为两部分,首先是模型训练过程,然后是调用过程。 安装OpenCV和C++开发环境: 在开始之前,请确保

    2024年02月09日
    浏览(43)
  • 16- 图片转文字识别实操 (OpenCV系列) (项目十六)

    项目要点 读取图片 :  image = cv2.imread (\\\'./images/page.jpg\\\') 调整图片尺寸 :  resized = cv2.resize (image, (width, height), interpolation = cv2.INTER_AREA) 灰度化处理 :  gray = cv2.cvtColor (image, cv2.COLOR_BGR2GRAY ) 高斯模糊 去噪点:  gray = cv2.GaussianBlur (gray, (5,5), 0) 边缘检测 :  edged = cv2.Canny (gray, 75, 200) c

    2024年01月19日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包