Java中使用OpenCV生成灰度图

embedded/2024/9/19 0:42:46/ 标签: opencv, 计算机视觉, java

一、下载OpenCV、

下载链接:Releases - OpenCV

下载到指定目录后双击即可安装(正常下载过程)。

二、查看文件目录

1、找到opencv-4100.jar

找到opencv-4100.jar,这个是我们需要加载的包。

opencv-460.jar是给java操作openvc的程序包
2、找到opencv_java4100.dll

二、Java实现生成灰度图demo

1、建一个maven项目
2、在resources中加入配置

添加依赖进项目中

3、配置maven
        <dependency><groupId>com.opencv</groupId><artifactId>opencv</artifactId><version>4100</version><scope>system</scope><systemPath>${basedir}/src/main/resources/lib/opencv/opencv-4100.jar</systemPath></dependency>

我的配置如下图:

4、编写代码生成灰度图
java">public class test_ikun {public static void main(String[] args) {//加载 opencv_javaXX.dllSystem.loadLibrary(Core.NATIVE_LIBRARY_NAME);//测试图片地址String imgPath = "./src/main/java/com/bluefoxyu/images/ikun.jpg";//读取图片Mat img = Imgcodecs.imread(imgPath);//生成灰度图Mat gray = new Mat();Imgproc.cvtColor(img,gray, Imgproc.COLOR_BGR2GRAY);//保存图片Imgcodecs.imwrite("./src/main/java/com/bluefoxyu/results/images/result.png", gray);}}
5、出现报错

不出意外的话会出现下面的报错,这个报错我也解决了很久。

Exception in thread "main" java.lang.UnsatisfiedLinkError: no opencv_java4100 in java.library.path

报错的大概意思就是opencv_java4100没有在jdk中。

6、解决问题

opencv_java4100.dll 复制到自己下载的jdk的bin目录中

7、生成灰度图

运行demo,成功生成灰度图

 效果如下:

还有一种方式可以将opencv导入项目中不会报错,感兴趣可以参考这个博主的博客:在Java中使用OpenCV_java使用opencv-CSDN博客

opencv新手小白,有大佬有什么资料希望可以在评论区分享分享呀~~~


http://www.ppmy.cn/embedded/93245.html

相关文章

疯狂工牌,打工人最好的“时尚单品”!

打工人哪有不疯的? 最近网络上兴起了一股用姓氏爆改发疯工牌的热潮&#xff0c; 那些看似普通的工作证脑洞大开&#xff0c; 让人忍俊不禁。 就是说这样的时尚“身份”单品&#xff0c; 我们的“聚铭特工团"也得有&#xff0c;安排安排~ 下面就和小编一起&#xff0…

nginx优化日志拒绝特定404请求写入

需求描述 生产环境日志查看到大量的404请求写入。 日志分析 通过日志分析得到结论是 查看日志内存 "agent": "SLBHealthCheck",疑似是alb的健康检查 "0.012","request_GlobalId": "","response_GlobalId": &…

使用 Gunicorn 部署 Flask 项目

使用 Gunicorn 部署 Flask 项目 1. 简介 Flask 自带的 web 服务器仅适用于开发环境&#xff0c;无法满足生产环境的性能需求。在使用 app.run(host0.0.0.0, port5000) 启动时&#xff0c;Flask 会发出警告&#xff1a;WARNING: This is a development server. Do not use it …

每天一个数据分析题(四百七十二)- 业务角度

从业务角度区分&#xff0c;标签可以分为哪两类&#xff1f; A. 分群标签 B. 分层标签 C. 偏好标签 D. 行为标签 数据分析认证考试介绍&#xff1a;点击进入 题目来源于CDA模拟题库 点击此处获取答案 数据分析专项练习题库 内容涵盖Python&#xff0c;SQL&#xff0c;…

vue 附件上传el-upload

废话不多说&#xff0c;直接上代码 <el-upload multiple action"#" list-type"picture-card" :on-preview"handlePictureCardPreview" :on-remove"handleRemove" :on-change"handleChange":on-exceed"(fileList)&g…

WPF使用Iconfont字符串的操作方法

1.下载字体库文件 https://www.bootcss.com/p/font-awesome/ 2.放入Fonts文件夹下 3.文件属性修改为 资源 3.引入 FontFamily字体类型 <Setter Property"FontFamily" Value"../../CommonInMy/Fonts/#iconfont"/>注意这里的地址请填写绝对地址&…

vim编辑器的使用【vim常用指令介绍】

1.1 vim 简介 vim 编辑器最初是 vi 编辑器&#xff0c;vi 编辑器是 Unix 系统最初的编辑器。允许查看文件内容和在文件中移动、插入、编辑和替换文本。后来开发人员对它做了一些改进。并重命名为 vim。 1.2 学习 vim 的理由 因为几乎任何一个发行版都有 vi/vim 编辑器&#xf…

MySQL5.7之数据库初始化过程

文章目录 参考在执行这条命令后mysqld做了什么&#xff1f; 参考 本文章参考 https://dev.mysql.com/doc/refman/5.7/en/data-directory-initialization.htmlMySQL5.7源码安装 当通过tar包或者源码包安装完MySQL之后&#xff0c;需要执行数据目录初始化操作 ## 如果不指定--…

Vue 路由的hash模式和history模式有什么区别

在Vue.js框架中&#xff0c;路由管理是单页面应用&#xff08;SPA&#xff09;不可或缺的功能。Vue 路由提供了两种模式&#xff1a;hash模式和history模式&#xff0c;这两种模式主要负责处理URL的变更而无需重新加载整个页面&#xff0c;实现前端路由的功能。尽管它们的基本职…

什么是Docker | Docker入门及应用

1 Docker简介 1.1 什么是Docker Docker 是一个开源项目&#xff0c;诞生于 2013 年初&#xff0c;最初是 dotCloud 公司内部的一个业余项目。它基于 Google 公司推出的 Go 语言实现。 项目后来加入了 Linux 基金会&#xff0c;遵从了 Apache 2.0 协议&#xff0c;项目代码在 …

golang使用channel实现读写锁

package mainimport ("fmt""sync""time" )// RWLock 实现一个简单的读写锁 type RWLock struct {readerCount int // 当前正在读取的读者数量writerCount int // 当前正在写的写者数量readerChan chan struct{} // 用于控制读…

跟《经济学人》学英文:2024年08月03日这期 Britain’s railways go from one extreme to another

Britain’s railways go from one extreme to another Departing: privatisation. Destination: centralisation 出发:私有化。目的地:集中化 depart&#xff1a;出发 privatisation&#xff1a;美 [ˌpraɪvətaɪ’zeɪʃən] 私有化&#xff1b;民营化&#xff1b;私营化…

我在高职教STM32——I2C通信入门(3)

大家好,我是老耿,高职青椒一枚,一直从事单片机、嵌入式、物联网等课程的教学。对于高职的学生层次,同行应该都懂的,老师在课堂上教学几乎是没什么成就感的。正是如此,才有了借助CSDN平台寻求认同感和成就感的想法。在这里,我准备陆续把自己花了很多心思设计的教学课件分…

【LeetCode】组合

目录 一、题目二、解法完整代码 一、题目 给定两个整数 n 和 k&#xff0c;返回范围 [1, n] 中所有可能的 k 个数的组合。 你可以按 任何顺序 返回答案。 示例 1&#xff1a; 输入&#xff1a;n 4, k 2 输出&#xff1a; [ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4], ] …

【网络安全】玲珑安全第四期

鉴于玲珑安全漏洞挖掘前三期课程取得的优异成绩和获得的强烈反响,我们决定启动玲珑安全第四期漏洞挖掘培训计划。 文章目录 往期学员收获基础学员报喜(部分)课程反馈第四期课程课程内容免费课程往期学员收获 第一期课程总结及学员收获:->点我查看第一期学员收获<- …

Java学习篇(一)| 如何生成分布式全局唯一ID

Java学习篇&#xff08;一&#xff09;| 如何生成分布式全局唯一ID 一、使用场景二、常用方法1、UUID &#xff08;尽量不要用&#xff09;2、数据库自增 &#xff08;用的最多-只适合小规模或数据库单一节点的系统&#xff09;3、Redis 生成ID &#xff08;可用&#xff09;1、…

为什么golang不支持可重入锁

java中的可重入锁 熟悉java的朋友都知道&#xff0c;在java中不管是synchronized还是ReentrantLock都是可重入锁,使用起来也非常简单 synchronized 同步实例方法 public synchronized void instanceMethod() {// 同步方法的代码 }同步静态方法 public static synchronized…

python字符使用vscode运行中文为乱码

python代码如下 def square_sum(numbers):print("求和 ")sum 0for num in numbers:sum num ** 2return sum print(square_sum([1,2,3,4]))import xlrd dataxlrd.open_workbook("./1.xls") data.sheet_names() print(data.sheet_names())输出结果为乱码 …

flink1.18 编译遇到的问题

1. flink-runtime-web编译失败 源码编译时一直卡在 [INFO] Running ‘npm ci --cache-max0 --no-save’ in 处理方法&#xff1a; 修改flink-runtime-web/pom.xml文件 将<arguments>ci --cache-max0 --no-save ${npm.proxy}</arguments> 替换为&#xff1a;<a…

IoTDB 入门教程 基础篇②——IoTDB 企业版比开源版本值在哪?

文章目录 一、前文二、功能对比三、可视化控制台四、白名单五、审计日志六、数据备份七、机器学习八、总结 一、前文 IoTDB入门教程——导读 二、功能对比 由天谋科技官网得知&#xff0c;IoTDB&#xff08;开源版&#xff09;与TimechoDB&#xff08;企业版&#xff09;的功能…