本节介绍截断阈值化处理、超阈值零处理及低阈值零处理。重点是了解其含义及参数的用法。

截断阈值化处理(cv2.THRESH_TRUNC

截断阈值化处理示意

例1:使用函数cv2.threshold()对数组进行截断阈值化处理,观察处理结果。

import cv2
import numpy as np
img = np.random.randint(0, 256, size=[4, 5], dtype=np.uint8)
t, rst = cv2.threshold(img, 127, 255, cv2.THRESH_TRUNC)
print('img=\n', img)
print('t=\n', t)
print('rst=\n', rst)

实验结果:

img=
 [[124 175 207   8 177]
 [ 31  51 243  23 206]
 [248  17  24 197  66]
 [126 158  66  92  75]]
t=
 127.0
rst=
 [[124 127 127   8 127]
 [ 31  51 127  23 127]
 [127  17  24 127  66]
 [126 127  66  92  75]]

例2:使用截断阈值化处理操作一张图片。

import cv2
img = cv2.imread('boy.png', 0)
t, rst = cv2.threshold(img, 127, 255, cv2.THRESH_TRUNC)
cv2.imshow('IMG', img)
cv2.imshow('RST', rst)
cv2.waitKey()

实验效果

超阈值零处理(cv2.THRESH_TOZERO_INV

超阈值零处理,就是把超过阈值的地方进行零处理。

超阈值零处理基本原理

例:对一幅图像进行超阈值零化处理。

import cv2
img = cv2.imread('boy.png', 0)
t, rst = cv2.threshold(img, 127, 255, cv2.THRESH_TOZERO_INV)
cv2.imshow('IMG', img)
cv2.imshow('RST', rst)
cv2.waitKey()

超阈值零处理

低阈值零处理(cv2.THRESH_TOZERO

低阈值零处理

例:对图片进行低阈值零处理。

import cv2
img = cv2.imread('boy.png', 0)
t, rst = cv2.threshold(img, 127, 255, cv2.THRESH_TOZERO)
cv2.imshow('IMG', img)
cv2.imshow('RST', rst)
cv2.waitKey()

实验效果


博主个人公众号
版权声明 ▶ 本网站名称:陶小桃Blog
▶ 本文链接:https://www.52txr.cn/2021/OpenCV19.html
▶ 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行核实删除。
▶ 转载本站文章需要遵守:商业转载请联系站长,非商业转载请注明出处!!

最后修改:2022 年 05 月 16 日
如果觉得我的文章对你有用,请随意赞赏