图像的二值化,在图像处理中是十分重要的一个步骤。是几乎所有后续的图像处理的基础和前提。只有根据不同场景选择不同的二值化处理,才能对一幅图片较好的初始化。(包括灰度值处理,二值化处理,根据噪声类型降噪等等)。
图像的二值化,就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的只有黑和白的视觉效果。
一幅图像包括目标物体、背景还有噪声,要想从多值二值化的数字图像中直接提取出目标物体,最常用的方法就是设定一个阈值T,用T将图像的数据分成两部分:大于T的像素群和小于T的像素群。这是研究灰度变换的最特殊的方法,称为图像的二值化(BINARIZATION)。
二值化是图像处理的基本操作,任何图像处理基本离不开二值化的操作。其应用非常广泛。
下面是写的一段关于图像二值化的代码片段:
import cv2
image = cv2.imread('test.jpg') #读入图片
image = cv2.cvtColor(image, cv2.COLOR_RGB2GRAY) #二值化函数
cv2.threshold(image, 140, 255, 0, image) #二值化函数
cv2.namedWindow("Image") #图片显示框的名字 这行没啥用
cv2.imshow("Image", image) #图片显示
cv2.waitKey(0)
cv2.imwrite('two_result.jpg', image) # 保存当前灰度值处理过后的文件
#图像的二值化,就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的只有黑和白的视觉效果。
#一幅图像包括目标物体、背景还有噪声,要想从多值的数字图像中直接提取出目标物体,常用的方法就是设定一个阈值T,用T将图像的数据分成两部分:大于T的像素群和小于T的像素群。这是研究灰度变换的最特殊的方法,称为图像的二值化(Binarization)。
#Python-OpenCV中提供了阈值(threshold)函数:
#cv2.threshold()
#函数:
#1. src 指原图像,原图像应该是灰度图。
#2. x 指用来对像素值进行分类的阈值。
#3. y 指当像素值高于(有时是小于)阈值时应该被赋予的新的像素值
#4. Methods 指不同的阈值方法,
其中 threshold 函数的参数均可以调节 。
其中,第二个参数是判定像素点的临界值。超过了这个点,将会被划分为255,低于这个点,将会被划分为0。具体的参数0~255可以自行根据需要调节。
代码效果还是比较不错的。