实现图像的二值化(java+opencv)
书里的解释:

其他的没找到什么资料,直接参考百度百科
https://baike.baidu.com/item/%E5%9B%BE%E5%83%8F%E4%BA%8C%E5%80%BC%E5%8C%96/1748870?fr=aladdin#2
具体是先实现灰度化,然后实现二值化。
里面提到了opencv里的两个接口
1.Imgproc.threshold(Mat src, Mat dst, double thresh, double maxval, int type)
参数:
src 原图
dst 输入图像
thresh 当前阈值
maxval 最大阈值一般为255
type 阈值类型
2.Imgproc.adaptiveThreshold(Mat src, Mat dst, double maxValue, int adaptiveMethod, int thresholdType, int blockSize, double C)
参数:
src 要二值化的灰度图
dst 二值化后的图
maxValue 二值化后要设置的那个值
adaptiveMethod 块计算的方法
thresholdType 二值化类型
blockSize 块大小(奇数,大于1)
C 差值(负值也可以)
实现代码如下:
package part;
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;
//二值化
public class Threshold { public static void main(String[] args) {
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
// 加载时灰度
Mat src = Imgcodecs.imread("./data/yasuo.png", Imgcodecs.IMREAD_GRAYSCALE);
// 保存灰度
Imgcodecs.imwrite("./data/yasuo_1.png", src);
Mat target = new Mat();
// 二值化处理
Imgproc.threshold(src, target, 0, 255, Imgproc.THRESH_BINARY | Imgproc.THRESH_OTSU);//灰度图像二值化
// 保存二值化后图片
Imgcodecs.imwrite("./data/yasuo_2.png", target);
Imgproc.adaptiveThreshold(src, target, 255, Imgproc.ADAPTIVE_THRESH_MEAN_C, Imgproc.THRESH_BINARY, 5, 0);
// 保存二值化后图片
Imgcodecs.imwrite("./data/yasuo_3.png", target);
} }
这里两个接口的效果都进行了测试:
原图

threshold方法处理:
adaptiveThreshold方法处理:
实现图像的二值化(java+opencv)的更多相关文章
- OpenCV图像的二值化
图像的二值化: 与边缘检测相比,轮廓检测有时能更好的反映图像的内容.而要对图像进行轮廓检测,则必须要先对图像进行二值化,图像的二值化就是将图像上的像素点的灰度值设置为0或255,这样将使整个图像呈现出 ...
- OpenCV中对图像进行二值化的关键函数——cvThreshold()。
函数功能:采用Canny方法对图像进行边缘检测 函数原型: void cvThreshold( const CvArr* src, CvArr* dst, double threshold, doub ...
- python实现超大图像的二值化方法
一,分块处理超大图像的二值化问题 (1) 全局阈值处理 (2) 局部阈值 二,空白区域过滤 三,先缩放进行二值化,然后还原大小 np.mean() 返回数组元素的平均值 np.std() 返回数 ...
- opencv 对RGB图像直接二值化
#include <opencv2/opencv.hpp> #include <iostream> using namespace cv; using namespace st ...
- Java基于opencv实现图像数字识别(三)—灰度化和二值化
Java基于opencv实现图像数字识别(三)-灰度化和二值化 一.灰度化 灰度化:在RGB模型中,如果R=G=B时,则彩色表示灰度颜色,其中R=G=B的值叫灰度值:因此,灰度图像每个像素点只需一个字 ...
- Opencv实现图像的灰度处理,二值化,阀值选择
前几天接触了图像的处理,发现用OPencv处理确实比較方便.毕竟是非常多东西都封装好的.可是要研究里面的东西,还是比較麻烦的,首先,你得知道图片处理的一些知识,比方腐蚀,膨胀,仿射,透射等,还有非常多 ...
- opencv图像二值化的函数cvThreshold()。 cvAdaptiveThreshol
OpenCV中对图像进行二值化的关键函数——cvThreshold(). 函数功能:采用Canny方法对图像进行边缘检测 函数原型: void cvThreshold( const CvArr* sr ...
- opencv python 图像二值化/简单阈值化/大津阈值法
pip install matplotlib 1简单的阈值化 cv2.threshold第一个参数是源图像,它应该是灰度图像. 第二个参数是用于对像素值进行分类的阈值, 第三个参数是maxVal,它表 ...
- python-opencv 图像二值化,自适应阈值处理
定义:图像的二值化,就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的只有黑和白的视觉效果. 一幅图像包括目标物体.背景还有噪声,要想从多值的数字图像中直接提取出目标物体,常用 ...
随机推荐
- 我在 GitHub 上发现了一款骚气满满的字体!
本文转自量子位,作者栗体,如有侵权,则可删除. github字体 这个字体叫 Leon Sans,表面看去平平无奇. 但事实上,它并不是普通的字体,体内蕴藏着魔力. github字体1 Leon Sa ...
- A - New Building for SIS
You are looking at the floor plan of the Summer Informatics School's new building. You were tasked w ...
- BUUCTF-web web1 (无列名注入)
注册并登录后发现,sql注入,注入点在广告申请的界面.加单引号发现报错 先通过insert插入数据,然后再通过id查询相应的数据,所以是二次注入. 常见报错函数updatexml,floor以及ext ...
- format 进阶
'''format(数字,str(算术式)+"d或者f") d 表示 int f 表示 float ''' format(5,str(2*4)+"d") '' ...
- pandas_DateFrame的创建
# DateFrame 的创建,包含部分:index , column , values import numpy as np import pandas as pd # 创建一个 DataFrame ...
- 谁来教我渗透测试——黑客应该掌握的Windows基础
今天我们看看作为一个黑客对于Windows应该掌握哪些基础知识,主要内容包含以下四个方面: 系统目录.服务.端口和注册表: 黑客常用的DOS命令及批处理文件的编写: 黑客常用的快捷键,以及如何优化系统 ...
- luogu P4562 [JXOI2018]游戏 组合数学
LINK:游戏 当L==1的时候 容易想到 答案和1的位置有关. 枚举1的位置 那么剩下的方案为(R-1)! 那么总答案为 (R+1)*R/2(R-1)! 考虑L==2的时候 对于一个排列什么时候会终 ...
- Hibernate Validator校验参数全攻略
1. 前言 数据字段一般都要遵循业务要求和数据库设计,所以后端的参数校验是必须的,应用程序必须通过某种手段来确保输入进来的数据从语义上来讲是正确的. 2. 数据校验的痛点 为了保证数据语义的正确,我们 ...
- ElasticSearch实战系列六: Logstash快速入门和实战
前言 本文主要介绍的是ELK日志系统中的Logstash快速入门和实战 ELK介绍 ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana , 它们都是 ...
- 郭超:阿里云Cassandra背后的故事
大家好,我是阿里云数据库产品事业部的玄陵,真名郭超. 本次的分享大概分三个部分:Cassandra云数据库简介.Cassandra云数据库特性以及Q&A. 我们先了解一下Cassand ...

