opencv: 阈值处理(cv2.threshold) 探究(图示+源码)

cv2.threshold 探究

API定义:

OpenCV 3.2.0 中,阈值处理的 api 定义如下:

cv2.threshold (src, thresh, maxval, type)

即:

cv2.threshold (源图片, 阈值, 填充色, 阈值类型)

Args:

  1. src:源图片,必须是单通道
  2. thresh:阈值,取值范围0~255
  3. maxval:填充色,取值范围0~255
  4. type:阈值类型,具体见下表

阈值类型表:

阈值

小于阈值的像素点

大于阈值的像素点

0

置0

置填充色

1

置填充色

置0

2

保持原色

置灰色

3

置0

保持原色

4

保持原色

置0

图示:

左半边为(单通道)源图片; 右半边为(阈值设为150,填充色设为100)在 不同阈值类型 的取值下生成的(单通道)阈值处理图片。

type = 0 :此时小于阈值的像素点置0,大于阈值的像素点置填充色

type = 1 :此时小于阈值的像素点置填充色,大于阈值的像素点置0

type = 2 :此时小于阈值的像素点保持原色,大于阈值的像素点置灰色

type = 3 :此时小于阈值的像素点置0,大于阈值的像素点保持原色

type = 4 :此时小于阈值的像素点保持原色,大于阈值的像素点置0

完整源码

附上我自己写的实验源码:

# coding=utf-8

origin_pic = './pic/1.jpg'
save_folder = './generated_pics'

# 新建文件夹,用于存放新生成的阈值图片
import shutil
try:
    shutil.rmtree(save_folder)
except OSError:
    pass
import os
os.makedirs(save_folder)

# 读取待处理图片,并转换成单通道图片
import cv2
img = cv2.imread(origin_pic)
imgray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

# 对 cv2.threshold 的 type 参数进行 0~6 的实验
import numpy as np
for type in range(0, 5, 1):
    _, thresh = cv2.threshold(src=imgray, thresh=150, maxval=100, type=type)
    concat_pic = np.concatenate([imgray, thresh], axis=1)
    cv2.imwrite('./generated_pics/type={}.jpg'.format(type), concat_pic)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏深度学习思考者

一文搞懂Matlab画图那些事(上篇)

题记:临时需要Matlab画个曲线图,突然发现有些命令竟然忘掉了,于是各种查。这里博主整理合并关于画图那些命令,只为让你轻松搞定Matlab画图这些琐事,那么,...

3527
来自专栏ml

初学java之(盒子分布)

1 import javax.swing.*; 2 3 import java.awt.*; 4 class WinGrid extends JFr...

52710
来自专栏python读书笔记

python 数据分析基础 day14-matplotlib模块概括条形图直方图折线图散点图箱线图

今天是读《pyhton数据分析基础》的第14天,今天读书笔记的内容为使用matplotlib模块绘制常用的统计图。 模块概括 matplotlib 是最基础的绘...

3104
来自专栏谦谦君子修罗刀

ios约束

一、苹果的VFL语法约束 在使用约束之前,要先将没有设置frame的view添加到父视图上。如何将view设置为使用AutoLayout约束,取消默认约束。 ...

3215
来自专栏移动端周边技术扩展

Masonry横向纵向排列多个控件

1673
来自专栏柠檬先生

grid 布局的使用

grid 布局的使用    css 网格布局,是一种二维布局系统。    浏览器支持情况:老旧浏览器不支持,    概念: 网格容器。元素应用dispalay:...

2347
来自专栏calmound

CSS继承特殊

继承 CSS的某些样式具有继承性。 继承是一种规则,它允许样式不仅作用于某个特定html标签元素,而且应用于其后代    如:在p中的所有字体都为红色     ...

2765
来自专栏贾志刚-OpenCV学堂

OpenCV中泛洪填充算法解析与应用

泛洪填充(Flood Fill)很多时候国内的开发者称它为漫水填充,该算法在图形填充与着色应用程序比较常见,属于标配。在图像处理里对二值图像的Hole可以通过泛...

48010
来自专栏数据小魔方

散点图分割不同象限的技巧

今天跟大家聊一聊散点图中分割不同象限的辅助线制作技巧! ▽ 分割象限 在做完散点图之后 通常我们都很想知道这些点的分布是否存在某种趋势 如果趋势比较明显 用肉眼...

4057
来自专栏SHERlocked93的前端小站

CSS 中重要的层叠概念

最近在项目的过程中遇到了一个问题,menu-bar希望始终显示在最上面,而在之后的元素都显示在它之下,当时设置了 z-index 也没有效果,不知道什么原因,因...

1032

扫码关注云+社区

领取腾讯云代金券