首页 > 编程知识 正文

灰度处理与二值化,二值化像是指像灰度级存在

时间:2023-05-04 04:12:42 阅读:189772 作者:3378

图像预处理(灰度、二值化)首先,图像灰度处理图像的灰度是每个像素一个采样彩色的图像,通常,以从最暗的黑色到最亮的白色的灰度显示。

灰度图像与黑白图像不同,在计算机图像领域黑白图像只有黑白两色,一般称为二值图像0or 255,灰度图像在黑白中间有许多水平的色彩深度099Come Come Everybody 255。

在RGB模型中,如果==为yes,则颜色表示灰度颜色。 在此,==的值称为灰度值。

1 .图像灰度方法灰度方法主要有分量法、最大值法、均值法和加权平均法。

平均值法:将彩色图像中三种成分的亮度进行平均,得到灰度。 最大值法:将彩色图像中三分量亮度的最大值作为灰度的灰度值; 色分量法:算法的思想是首先将RGB的各个色分量的值作为原图像的灰度值,由此获得原图像的3个灰度图像,将3个中的1个灰度即RGB的3个色分量的任意一个作为该点的灰度值。 加权平均法:该算法主要根据某些条件,对三个分量按不同权重进行加权平均;

公式如下图所示。

目前,以加权放大的灰度变换为例,对其三个分量按不同的权重进行加权平均,但人眼对绿色最敏感,对蓝色最敏感,因此,对RGB三个分量按下式进行加权平均可以得到合理的灰度图像。

首先,用cv2读取图像,提取其高度、宽度,通过上式对每个通道的每个像素进行加权操作。 使用此表达式的代码是importv2 importnumpyasnpimage=cv2.im read (.(。test1.png ' ) #读取照片像素的美丽鸭子SP=image.shape head NP.uint8(#遍历每个像素)使用加权平均方法进行灰度forinrange(height ) : for内距离(width ) : new[i)、)=0.3*image image,cv2.named window (image ) ) cv2.im show (image ),new ) cv2.cv2.im write ) ) ~~ 33333333333 new ) cv2.waitkey(0)

gray=cv2.cvtcolor(img,cv2.COLOR_BGR2GRAY ) cv2.imread )函数读入图像时,由于读入图像的颜色通道格式为BGR,所以直接使用上述函数但是,使用cv2.imdecode )函数导入图像时,导入的图像格式为RGB,必须使用以下函数转换颜色通道:

cv_img=cv2.im decode (文件路径,cv2.IMREAD_COLOR ) cv_img=cv2.cvtcolor ) cvimg, cv2.colorrg B2B gr cv2.colorbgr2gray (二、图像二值化处理后二值化图像(Binary Image ),是指对于图像上的各个像素只有两种可取的值或灰度状态,是指黑白、BW、单色二值图像是指图像中只有两种灰度级。 也就是说,图像中任何像素点的灰度值都为0或255,分别表示黑色和白色。

使用Opencv附带的函数处理灰度图像,并使用cv.Threshold ()函数进行操作。

在本例中,img_gauss是经过高斯平滑滤波的图像,127和255是用于二值化图像的分割阈值和最大值,即灰度值在12799 Come Come Everybody 255之间的值均设置为1,其馀值设置为0。 二值化图像对车道线的提取比较好,但对天空和白色车辆的提取不太好。

最后cv2.threshbinaryinv对二值化后的图像进行逆操作,得到期望的效果。

返回值ret :暂时设定thresh阈值,binary :认为是二值化的图像

ret,binary=cv2.threshold (imggauss,127,255,cv2.threshbinaryinv ) ) ) ) ) ) )。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。