首页 > 编程语言 >java opencv 去噪+动态自适应二值化

java opencv 去噪+动态自适应二值化

时间:2024-08-16 11:49:42浏览次数:13  
标签:binary HighGui java Mat img gray Imgproc opencv 二值化

// 连接opencv
System.setProperty("java.awt.headless", "false");
System.out.println(System.getProperty("java.library.path"));
URL url = ClassLoader.getSystemResource("lib/opencv/opencv_java4100.dll");
System.load(url.getPath());

Mat img = Imgcodecs.imread("src/main/resources/img/1.jpg");  // 双引号中的地址就是你要做处理的图像地址
Mat gray = new Mat();
Imgproc.cvtColor(img, gray, Imgproc.COLOR_RGB2GRAY);  // 也可以直接对原图 img做灰度,这样最后可以少 release一个 Mat,看实际使用

Mat binary = new Mat();

Photo.fastNlMeansDenoising(gray, gray);    // 去噪声

Imgproc.adaptiveThreshold(gray, // 输入灰度图像
binary, // 输出的二值化图像
255, // 阙值超过的像素值
Imgproc.ADAPTIVE_THRESH_GAUSSIAN_C, // 自适应阙值算法类型,还有 ADAPTIVE_THRESH_MEAN_C
Imgproc.THRESH_BINARY, // 阙值类型,还有 THRESH_BINARY_INV
11, // 领域大小,必须是奇数且大于 1
2); // 从平均值或加权平均值中减去的常数,即 mean(x)-C


// 窗口显示
HighGui.namedWindow("binary", HighGui.WINDOW_NORMAL);
HighGui.resizeWindow("binary",1600,900);
HighGui.imshow("binary", binary);
HighGui.waitKey(0);

// 保存结果图片
Imgcodecs.imwrite("src/main/resources/img/result.png", binary);


//释放 Mat
img.release();
gray.release();
binary.release();

// 关闭窗口退出
HighGui.destroyAllWindows();
System.exit(0);

标签:binary,HighGui,java,Mat,img,gray,Imgproc,opencv,二值化
From: https://www.cnblogs.com/Lee597/p/18362573

相关文章

  • Java学习笔记5--关键字和保留字
    一、概念Java关键字(KeyWord):对Java的编译器有特殊的意义,他们用来表示一种数据类型或者表示程序的结构.保留字(ReserveWord):即它们在Java现有版本中没有特殊含义,以后版本可能会作为有特殊含义的词,或者该词虽然在Java中没有特殊含义,以后版本也不打算使用,但在其它语言中有特殊含义......
  • SSM-国外鞋服代购平台-97782(免费领源码+开发文档)可做计算机毕业设计JAVA、PHP、爬虫、
    SSM国外鞋服代购平台摘 要随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,鞋服代购平台当然也不例外。代购平台是以实际运用为开发背景,运用软件工程原理和开发方法,采用Java技术构建的一个管理系统。整个开发过......
  • 基于 Java 的雷电(飞机大战)游戏
    点击下载源码基于java的雷电(飞机大战)游戏摘要电脑游戏,是指在计算机上能够运转的游戏软件。这种软件具有较强的娱乐性。电脑游戏的创新和发展与硬件、软件的发展紧密相关。它能够给玩家提供一个虚拟的环境,使游戏带给了人们很多的享受和欢乐。雷电游戏因为操作简单,节奏明......
  • JAVA面向对象思想
    封装一、概念封装(英语:Encapsulation)是指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法。封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。要访问该类的代码和数据,必须通过严格的接口控制。封装最主要的功能在于我们能修改自己的实现代......
  • java opencv 图像匹配识别
    //region图像匹配3.0privateMatimageMatch(Imageori,Imagetbi){System.setProperty("java.awt.headless","false");System.out.println(System.getProperty("java.library.path"));URLurl=ClassLoader.getSystem......
  • JavaScript判断系统和浏览器
    在做项目的时候,Web端需要适配移动端,且部分参数需要判断对应系统或浏览器。在IOS中,因为高版本的系统Safari浏览器采用了Mac的内核,所以导致普通的判断无法识别到对应系统。(userAgent.match(/(Macintosh)/)&&navigator.maxTouchPoints>=1)能有效识别是apple端,且是触屏的,通过......
  • 如何使用Java CompletableFuture
    Java的CompletableFuture是处理异步编程的利器。它不仅简化了异步任务的执行,还提供了丰富的API来支持任务的组合、异常处理、以及多任务并行。1.CompletableFuture的基础概念CompletableFuture是Java8中引入的,属于java.util.concurrent包。它实现了Future接口,允......
  • opencv
    一、读取视频读取视频文件与在OpenCV中读取图像文件非常相似,区别在于我们使用了cv2.videocapture。1.1读取视频需要用到的函数视频写入函数cv.VideoWriter()读取视频cv.VideoCapture.read()写入视频cv.VideoWriter.write(frame)打开,判断是否打开isOpene......
  • 基于Java中的SSM框架实现智慧医疗预约挂号管理系统项目【项目源码+论文说明】计算机毕
    基于Java中的SSM框架实现智慧医疗预约挂号管理系统演示摘要伴随着人们对医疗的关注度越来越高,对于信息化就医的发展也是当今社会发展的最为重要的问题之一。为了进一步的促进医疗事业的信息化发展工作,许多的大型的医院或者是医疗机构也在逐步的开展了信息化的就医和信息化......
  • 基于Java中的SSM框架实现在线订花系统项目【项目源码+论文说明】计算机毕业设计
    基于Java中的SSM框架实现在线订花系统演示摘要近年来,随着人们对于生活品质的重视度日益提升,鲜花的需求量也在不断增加同时带动了鲜花电商的飞速发展和应用,平台化的鲜花交易模式也逐渐从传统的鲜花销售转型为个性化鲜花定制。同时随着鲜花速递行业的不断成熟很多传统零售花......