您当前的位置:首页 > 电脑百科 > 程序开发 > 编程百科

Java,OpenCV,图像阈值分割,阈值化,二值阈值化、截断阈值化等

时间:2022-02-07 10:02:38  来源:  作者:IT小奋斗

图像阈值分割

图像阈值分割,一种广泛应用的分割技术,利用图像中要提取的目标区域与其背景在灰度特性上的差异,把图像看作具有不同灰度级的两类区域(目标区域和背景区域)的组合,选取一个比较合理的阈值,以确定图像中每个像素点应该属于目标区域还是背景区域,从而产生相应的二值图像。

阈值分割法的特点是:适用于目标与背景灰度有较强对比的情况,重要的是背景或物体的灰度比较单一,而且总可以得到封闭且连通区域的边界。

图像分割

图像颜色的零界点,图像的分割基准,基于此可完成图像的二值化,图像二值化可用于OCR成图像的分割(也是最为简单的一种),这种分割是基于图像像素值级别的差异,且一般的对象是灰度图像。

图像阈值的进一步处理就是二值化,二值化包含但不限于“大于阈值为255,小于阈值为0”的处理模式。

OCR (Optical Character Recognition,光学字符识别)

OCR指电子设备(如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程,即:针对印刷体字符,采用光学的方式将纸质文档中的文字转换成为黑白点阵的图像文件,并通过识别软件将图像中的文字转换成文本格式,供文字处理软件进一步编辑加工的技术。如何除错或利用辅助信息提高识别正确率,是OCR最重要的课题,ICR(Intelligent Character Recognition)的名词也因此而产生。衡量一个OCR系统性能好坏的主要指标有:拒识率、误识率、识别速度、用户界面的友好性,产品的稳定性,易用性及可行性等。

阈值化

阈值化是一种将想要在图像中分析的区域分割出来的方法,每个像素值都与一个预设的阈值做比较,再根据比较的结果调整像素值。

1、二值阈值化 -> Imgproc.THRESH_BINARY

2、阈值化到零 -> Imgproc.THRESH_TOZERO

3、截断阈值化 -> Imgproc.THRESH_TRUNC

4、反转二值阈值化 -> Imgproc.THRESH_BINARY_INV

5、反转阈值化到零 -> Imgproc.THRESH_TOZERO_INV

代码案例

package com.what21.opencv01.demo04;

import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;

/**
 * 图像阈值分割(Imgproc.threshold)
 */
public class OpenCVThreshold {

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

    /**
     * -DJAVA.library.path=D:/Apps/MyTool/opencv/build/java/x64
     * @param args
     */
    public static void main(String[] args) {
        Mat src = Imgcodecs.imread("D:/1.jpg");
        Imgcodecs.imwrite("D:/1-1.jpg", src);
        Mat dst = new Mat();
        Imgproc.threshold(src, dst, 100.0, 200.0, Imgproc.THRESH_BINARY_INV);
        Imgcodecs.imwrite("D:/1-threshold_THRESH_BINARY_INV.jpg", dst);
        Imgproc.threshold(src, dst, 100.0, 200.0, Imgproc.THRESH_TRUNC);
        Imgcodecs.imwrite("D:/1-threshold_THRESH_TRUNC.jpg", dst);
        Imgproc.threshold(src, dst, 100.0, 200.0, Imgproc.THRESH_BINARY);
        Imgcodecs.imwrite("D:/1-threshold_THRESH_BINARY.jpg", dst);
        Imgproc.threshold(src, dst, 100.0, 200.0, Imgproc.THRESH_TOZERO);
        Imgcodecs.imwrite("D:/1-threshold_THRESH_TOZERO.jpg", dst);
        Imgproc.threshold(src, dst, 100.0, 200.0, Imgproc.THRESH_TOZERO_INV);
        Imgcodecs.imwrite("D:/1-threshold_THRESH_TOZERO_INV.jpg", dst);
    }

}
Java,OpenCV,图像阈值分割,阈值化,二值阈值化、截断阈值化等

1.jpg


Java,OpenCV,图像阈值分割,阈值化,二值阈值化、截断阈值化等

1-threshold_THRESH_BINARY.jpg


Java,OpenCV,图像阈值分割,阈值化,二值阈值化、截断阈值化等

1-threshold_THRESH_BINARY_INV.jpg


Java,OpenCV,图像阈值分割,阈值化,二值阈值化、截断阈值化等

1-threshold_THRESH_TOZERO.jpg


Java,OpenCV,图像阈值分割,阈值化,二值阈值化、截断阈值化等

1-threshold_THRESH_TOZERO_INV.jpg


Java,OpenCV,图像阈值分割,阈值化,二值阈值化、截断阈值化等

1-threshold_THRESH_TRUNC.jpg



Tags:阈值   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
图像阈值分割图像阈值分割,一种广泛应用的分割技术,利用图像中要提取的目标区域与其背景在灰度特性上的差异,把图像看作具有不同灰度级的两类区域(目标区域和背景区域)的组合,选取...【详细内容】
2022-02-07  Tags: 阈值  点击:(9)  评论:(0)  加入收藏
背景公司营销系统前段时间出了一个问题,名单表主键是INT类型,经过4年的业务发展,名单ID超过了21亿,到达了INT类型的阈值,导致无法接收新的营销名单。自救失败发现问题原因后,第一...【详细内容】
2021-10-18  Tags: 阈值  点击:(55)  评论:(0)  加入收藏
▌简易百科推荐
在我没接触这一行时这个问题困扰了我很长时间,让我十分的不理解到底什么是爬虫,它难道是一种实体工具?,直到我学习python 深入分析了解以后才揭开了它神秘的面纱。 爬虫是什么呢...【详细内容】
2022-02-10  new一个对象    Tags:爬虫   点击:(2)  评论:(0)  加入收藏
图像阈值分割图像阈值分割,一种广泛应用的分割技术,利用图像中要提取的目标区域与其背景在灰度特性上的差异,把图像看作具有不同灰度级的两类区域(目标区域和背景区域)的组合,选取...【详细内容】
2022-02-07  IT小奋斗    Tags:阈值   点击:(9)  评论:(0)  加入收藏
写代码离不开调试,调试离不开断点。IDEA 对于断点的支持非常丰富。掌握这些技巧以后,可以大大的提升开发效率。是帮助程序员保住头发,远离 996 的秘密武器。 断点类型IDEA 支...【详细内容】
2022-02-04  刘水镜    Tags: IDEA   点击:(10)  评论:(0)  加入收藏
结论:当所需的精度由小数点右侧的位数决定时,decimal 类型是合适的。 此类数字通常用于财务应用程序、货币金额(例如 $1.00)、利率(例如 2.625%)等。 精确到只有一个小数用 decim...【详细内容】
2022-02-03  到底想咋样啊    Tags:Decimal   点击:(11)  评论:(0)  加入收藏
一、背景1.1、时间紧任务重在之前开发一套公司内部系统时一方面时间紧前期工作准备不充分,另一方面也在业务对接及编码工作的规范上做得不是很好导致了这套系统仅停留在能用...【详细内容】
2022-02-01  晓掌柜丶韶华    Tags:硬编码   点击:(15)  评论:(0)  加入收藏
最容易引发内存溢出的,就是系统创建出来的对象!1 对象在Eden区分配系统运行时,一直不停创建对象,然后大量对象会填满Eden。Eden满,就会触发一次YGC,然后存活对象进入S区: 2 高并发...【详细内容】
2022-01-31  JavaEdge    Tags:对象   点击:(15)  评论:(0)  加入收藏
本文是“2021 InfoQ 年度技术盘点与展望”系列文章之一,由直播内容整理而成,重点聚焦编程语言领域在 2022 年的核心趋势展望,希望能帮助你准确把握 2022 年编程语言领域的核心...【详细内容】
2022-01-29  InfoQ    Tags:编程语言   点击:(20)  评论:(0)  加入收藏
大多数IT运营专业人员面临的另一个挑战是需要以更快、更高效、更高的工作量执行任务和工作流程。值得庆幸的是,像无代码自动化这样的工具可以提供一个缺失的环节来优化效率,...【详细内容】
2022-01-29  智能协同表格    Tags:无代码   点击:(18)  评论:(0)  加入收藏
while(1) 和 for(;;)它们不都是无限循环吗,作用应该一样啊,它们到底有什么区别?要回答这个问题,其实你各自编写一段while(1) 和 for(;;)的代码,编译对比一下代码大小和汇编文件,你...【详细内容】
2022-01-25  IT三宝    Tags:汇编   点击:(16)  评论:(0)  加入收藏
一、摘要在实际的业务开发过程中,我们常常会碰到需要与第三方互联网公司进行技术对接,例如支付宝支付对接、微信支付对接、高德地图查询对接等等服务,如果你是一个创业型互联网...【详细内容】
2022-01-24  DNF搬砖摸金达人    Tags:API接口   点击:(20)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条