python图像灰度化

图像灰度化的算法主要有以下3种:

     1)最大值法:使转化后的R,G,B得值等于转化前3个值中最大的一个,即:

                     R=G=B=max(R,G,B)                    (1)

这种方法转换的灰度图亮度很高。

代码实现:

import cv2.cv as cv  
image = cv.LoadImage('11.jpg')  
grayimg = cv.CreateImage(cv.GetSize(image), image.depth, 1)  #第一个参数为图片的宽度和高度,即size(width,height),第二个参数为图片的像素位深度depth,最后一个参数为图像的channel
for i in range(image.height):  
    for j in range(image.width):  
        grayimg[i,j] = max(image[i,j][0], image[i,j][1], image[i,j][2])
cv.ShowImage('srcImage', image)  
cv.ShowImage('grayImage', grayimg)  
cv.WaitKey(0) 

      2)平均值法:是转化后R,G,B的值为转化前R,G,B的平均值。即:

                     R=G=B=(R+G+B)/3                                (2)

这种方法产生的灰度图像比较柔和。

代码实现:

import cv2.cv as cv  
image = cv.LoadImage('11.jpg')  
grayimg = cv.CreateImage(cv.GetSize(image), image.depth, 1)  
for i in range(image.height):  
    for j in range(image.width):  
        grayimg[i,j] = (image[i,j][0] + image[i,j][1] + image[i,j][2])/3  
cv.ShowImage('srcImage', image)  
cv.ShowImage('grayImage', grayimg)  
cv.WaitKey(0) 

      3)加权平均值法:按照一定权值,对R,G,B的值加权平均,即:

                                    (3)

分别为R,G,B的权值,取不同的值形成不同的灰度图像。由于人眼对绿色最为敏感,红色次之,对蓝色的敏感性最低,因此一般情况下得到的灰度图像效果最好。

代码实现:

import cv2.cv as cv  
image = cv.LoadImage('11.jpg')  
grayimg = cv.CreateImage(cv.GetSize(image), image.depth, 1)  
for i in range(image.height):  
    for j in range(image.width):  
        grayimg[i,j] = 0.3 * image[i,j][0] + 0.11 * image[i,j][1] +  0.59 * image[i,j][2]  
cv.ShowImage('srcImage', image)             
cv.ShowImage('grayImage', grayimg)  
cv.WaitKey(0) 


  • 0
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值