×
OpenCV教程OpenCV简介OpenCV开发环境配置OpenCV存储图像OpenCV读取图像OpenCV写入图像OpenCV用户界面

图像类型

OpenCV MREAD_XXX标记OpenCV将图像读取为灰度OpenCV读取图像为BGR

图像转换

OpenCV彩色图像转为灰度OpenCV彩色图像转为二进制OpenCV灰度转为二进制

绘图函数

OpenCV绘制圆形OpenCV绘制线条OpenCV绘制四方形OpenCV绘制椭圆形OpenCV绘制折线OpenCV绘制凸折线OpenCV绘制箭头线OpenCV添加文本

模糊功能

OpenCV模糊(平滑)OpenCV高斯模糊OpenCV中位模糊

过滤功能

OpenCV双边滤镜OpenCV箱式滤镜OpenCV SQRBox滤镜OpenCV Filter2DOpenCV扩张OpenCV侵蚀OpenCV形态学操作OpenCV图像金字塔

阈值

OpenCV简单阈值OpenCV自适应阈值

索贝尔衍生品

OpenCV添加边框OpenCV索贝尔操作OpenCV Scharr操作

变换操作

OpenCV拉普拉斯变换OpenCV距离转换

相机和人脸检测

OpenCV使用摄像头OpenCV图片人脸检测OpenCV摄像头人脸检测

几何变换

OpenCV仿射转换OpenCV旋转OpenCV缩放OpenCV彩色映射图

杂篇

OpenCV Canny边缘检测OpenCV霍夫线变换OpenCV直方图均衡

OpenCV简单阈值


阈值分割是一种图像分割方法,通常用于创建二值图像。 阈值分为简单阈值和自适应阈值两种类型。

简单阈值

在简单的阈值操作中,其值大于指定阈值的像素被赋予标准值。
可以使用Imgproc类的threshold()方法对图像执行简单的阈值操作,以下是此方法的语法。

threshold(src, dst, thresh, maxval, type)

该方法接受以下参数 -

  • src - 表示源(输入)图像的Mat类的对象。
  • dst - 表示目标(输出)图像的Mat类的对象。
  • thresh - 表示阈值的双重类型的变量。
  • maxval - 一个double类型的变量,表示像素值大于阈值时的值。
  • type - 表示要使用的阈值类型的整数类型变量。

示例

下面的程序演示了如何在OpenCV中的图像上执行简单阈值操作。

package com.yiibai.thresholding;

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

public class Thresh {
    public static void main(String args[]) {
        // Loading the OpenCV core library
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);

        // Reading the Image from the file and storing it in to a Matrix object
        String file = "F:/worksp/opencv/images/sample2.jpg";
        Mat src = Imgcodecs.imread(file);

        // Creating an empty matrix to store the result
        Mat dst = new Mat();
        Imgproc.threshold(src, dst, 50, 255, Imgproc.THRESH_BINARY);

        // Writing the image
        Imgcodecs.imwrite("F:/worksp/opencv/images/sample2thresh_trunc.jpg", dst);

        System.out.println("Image Processed");
    }
}

假定以下是上述程序中指定的输入图像sample2.jpg

执行上面示例代码,得到以下结果 -

其他类型的简单阈值

除前面例子中演示的THRESH_BINARY操作外,OpenCV还可以处理各种其他类型的阈值操作。 所有这些类型都由Imgproc类的预定义静态字段(固定值)表示。

可以通过将其各自的预定义值传递给threshold()方法的名为type的参数来选择所需的阈值操作的类型。

Imgproc.threshold(src, dst, 50, 255, Imgproc.THRESH_BINARY);

其他的固定值有 -

  • Imgproc.THRESH_BINARY
  • Imgproc.THRESH_BINARY_INV
  • Imgproc.THRESH_TRUNC
  • Imgproc.THRESH_TOZERO
  • Imgproc.THRESH_TOZERO_INV

分类导航

关注微信下载离线手册

bootwiki移动版 bootwiki
(群号:472910771)