赞
踩
不点赞白嫖的都是流氓
本文从一个简单的例子进行扩展解释opencv实现的基础阈值处理的所有方式,用的图片是三通道彩色图片,单通道当然也可以进行阈值处理,很多教程都是处理单通道彩色图片,所以我给大家换个口味
原图
请看代码
import cv2
img = cv2.imread("../data/1.jpg")
t, dst = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY) # t表示返回的阈值
# 这个函数的使用关键是第四个参数的理解上面,第四个参数表示阈值分割的类型,
# 不同的方式有不同的分割效果,接下来会一一解释
cv2.imshow('img', img)
cv2.imshow('dst', dst)
cv2.waitKey()
cv2.destroyAllWindows()
cv2.imwrite('../data/thre.jpg', dst)
方式一,二值化阈值处理(cv2.THRESH_BINARY),定义如下
将图像内所有像素值大于阈值的像素点的值设为255;将图像内所有像素值小于或等于阈值的像素点的值设为0
示例结果
方式二,反二值化阈值处理(cv2.THRESH_BINARY_INV),定义如下
将图像内所有像素值大于阈值的像素点的值设为0;将图像内所有像素值小于或等于阈值的像素点的值设为255
示例结果
方式三,截断阈值化处理(cv2.THRESH_TRUNC),定义如下
将图像中大于阈值的像素点的值设定为阈值,小于或者等于该阈值的像素点的值保持不变
效果图
方式四,超阈值零处理(cv2.THRESH_TOZERO_INV),定义如下
将图像中大于阈值的像素点的值设定为0,小于或者等于该阈值的像素点的值保持不变
效果图
方式五,低阈值零处理(cv2.THRESH_TOZERO),定义如下
将图像中大于阈值的像素点的值保持不变,小于或者等于该阈值的像素点的值设定为0
效果图如下
该阈值处理的方式就有这五种,知道这些只是你进入图像处理领域的入门而已,要做到灵活使用还需要继续学习,做到融会贯通才行,好啦,拜拜
我们总会说自己是为了未来,那么未来又在多远的未来?
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。