300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 图像分割 - 阈值处理 - 固定阈值法

图像分割 - 阈值处理 - 固定阈值法

时间:2023-08-16 01:26:09

相关推荐

图像分割 - 阈值处理 - 固定阈值法

目录

1. 介绍

2. 固定阈值处理

1. 介绍

图像分割就是将图像分成不同的区域,每个区域满足相似的条件。通常,都是将图像分为两个区域:前景区域和背景区域。

前景就是人们感兴趣的位置,例如一副Lena图像,我们只对这副图像的人物感兴趣,将它们分为一类,这里不注重对人物的细节,只看重大体的轮廓

背景就是不感兴趣的位置,Lena人物旁边的物体全都是可有可无的,那么这里就认为这些都是背景区域。注意:背景区域里面的细节就表现为强的噪声

通常将前景设置为255,背景设置为0,这样一副图像就只有255和0两个灰度值,那么这就是一副二值图像。

这里没有采用1和0的原因,是1和0区分不大,人眼区别不出

这里的二值图像不是说用1bit保存图像,而是用8bit,也就是灰度级为256的灰度分辨率保存。在256个灰度值中,我们只使用了0(黑色)作为背景,255(白色)作为前景这两个灰度值

根据图像分割的原理可以将图像算法归结为两种:相似性和不连续性

不连续性是根据不同区域之间像素点灰度值差异过大,例如边缘检测

相似性是利用相同区域之间灰度值差别不大,例如阈值分割

之前介绍过,阈值处理其实就是灰度切割的一种特殊使用,具体的可以看之前的文章:

灰度变换 - 灰度切割(灰度级分层)+threshold函数/qq_44886601/article/details/127377121

2. 固定阈值处理

由于图像阈值处理直观、实现简单、计算快等优点,因此在图像分割应用中处于核心的位置

所谓的固定阈值,就是阈值是人为设定的不变的

import cv2import numpy as npimport matplotlib.pyplot as pltimg = cv2.imread('./img.png',0)dst = np.zeros(img.shape,dtype=np.uint8)dst[(img > 150) & (img < 240)] = 255 # 前景区域dst[(img <= 150) | (img >= 240)] = 0 # 背景区域cv2.imshow('img',np.hstack((img,dst)))cv2.waitKey(0)cv2.destroyAllWindows()

处理结果:

这里阈值处理的关键点是如何选取阈值的点

一种方法是通过观察图像的直方图,如果大概的直方图结果有明显的谷点,那么就可以根据谷点将图像进行阈值处理。但是这种方法实现较为困难,一个是具有这种直方图的图像并不常见,一个是这种方法很容易受噪声影响

另一种就是设定一个阈值,然后将图像分类成两个区域,根据算法将两个区域之间的差异保持到最大。例如:Otsu

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。