美文网首页android
android opencv之旅(三)灰化和阈值化处理

android opencv之旅(三)灰化和阈值化处理

作者: 风少侠 | 来源:发表于2018-06-22 16:23 被阅读111次

我们知道了灰度图像比彩色图像包含的信息量要小很多,所以很多情况下我们可以把图像灰化以后再处理,可以减小计算量。

灰化

Mat dst = new Mat();
Imgproc.cvtColor(temp, dst, Imgproc.COLOR_BGR2GRAY);

cvtColor函数是opencv中的图片色彩转换的函数,最后一个参数代表转换类型,BGR、BGRA、GRAY等之间的相互转换。

阈值化

阈值化也可以称为二值化,把每个像素值都和一个预定的阈值比较,再根据结果调整像素值。

Imgproc.threshold(src, dst, thresh, maxval, type);

参数列表:

  • src:源Mat,一般传入一个单通道的灰度图像的Mat。
  • dst:目标Mat,二值化后要写入的Mat。
  • thresh:自定义的阈值。
  • maxval:最大值,符合条件的像素将值调整为该值。
  • type:二值化的几种类型。

什么才是符合条件?
首先说一下二值化的几种模式:

type 说明
THRESH_BINARY 超过thresh的像素点值被设置为maxval,反之设为0
THRESH_BINARY_INV 超过thresh的像素点值被设置为0,反之设为maxval
THRESH_TRUNC 超过thresh的像素点值被设置为thresh,反之不变
THRESH_TOZERO 超过thresh的像素点值不变,反之设为0
THRESH_TOZERO_INV 超过thresh的像素点值设为0,反之不变
THRESH_MASK
THRESH_OTSU 使用otsu算法选取一个最优的阈值,配合前五种type使用
THRESH_TRIANGLE 使用triangle算法选取一个最优的阈值,配合前五种type使用

示例代码:

Mat dst = new Mat();
Imgproc.threshold(src, dst, 60, 255, Imgproc.THRESH_BINARY);

这段代码的意思就是将原灰度图中色值大于60的点的色值变成255,小于60的点变成0,使得图片呈明显的黑白化。


二值化.gif

相关文章

  • android opencv之旅(三)灰化和阈值化处理

    我们知道了灰度图像比彩色图像包含的信息量要小很多,所以很多情况下我们可以把图像灰化以后再处理,可以减小计算量。 灰...

  • 阈值化

    OpenCV-图像阈值-简单阈值、自适应阈值、Otsu’s 二值化

  • OpenCV for iOS 学习笔记(十一)—— 基本的阈值操

    环境配置 :OpenCV在xCode中的安装与环境配置 处理效果 说明(来自:OpenCV 中文网站)阈值化主要有...

  • OpenCV 教程 10 : 阈值化

    固定阈值 OpenCV 中提供了阈值化函数 threshold,该函数有 5 种阈值化类型参数: THRESH_B...

  • OpenCV 之ios 基本的阈值操作

    OpenCV 之ios 基本的阈值操作 目标: 本节简介: OpenCV中的阈值(threshold)函数: th...

  • 图片处理-opencv-4.图像阈值化

    图像阈值化 图像的二值化或阈值化(Binarization)旨在提取图像中的目标物体,将背景以及噪声区分开来。通常...

  • openCV:图像的阈值处理

    阈值处理 定义 阈值处理即图像二值化。是图像分割的一种最简单的方法。二值化可以把灰度图像转换成二值图像。把大于某个...

  • OpenCV(iOS)阈值化(15)

    对于各种图形进行处理操作的过程中,我们常常需要对图像中的像素做出取舍与决策,直接剔除一些低于或者是高于一定值得像素...

  • 图像去噪

    图像去噪可以分为固定阈值去噪和自适应阈值去噪 固定阈值去噪 opencv函数(python):cv2.thresh...

  • OpenCV--图像处理 图像阈值

    3、图像处理 图像阈值 thresh 通过对像素点与阈值的比较,当大于阈值或小于阈值时分别进行取值 ret, ds...

网友评论

    本文标题:android opencv之旅(三)灰化和阈值化处理

    本文链接:https://www.haomeiwen.com/subject/gkxisftx.html