图像处理--灰度图

灰度图

灰度图,Gray Scale Image 或是Grey Scale Image,又称灰阶图。把白色与黑色之间按对数关系分为若干等级,称为灰度。灰度分为256阶。

灰度图定义

什么叫灰度图?任何颜色都有红、绿、蓝三原色组成,假如原来某点的颜色为RGB(R,G,B),那么,我们可以通过下面几种方法,将其转换为灰度:
1.浮点算法:Gray=R0.3+G0.59+B0.11
2.整数方法:Gray=(R
30+G59+B11)/100
3.移位方法:Gray =(R76+G151+B*28)>>8;
4.平均值法:Gray=(R+G+B)/3;
5.仅取绿色:Gray=G;
通过上述任一种方法求得Gray后,将原来的RGB(R,G,B)中的R,G,B统一用Gray替换,形成新的颜色RGB(Gray,Gray,Gray),用它替换原来的RGB(R,G,B)就是灰度图了。

import numpy as np
import cv2


def gray(image):
    h,w = image.shape[:2]             				    #获取图片的high和wide
    img = np.zeros([h,w],image.dtype)                   #创建一张和当前图片大小一样的图片
    # print(img)
    for i in range(h):
        for j in range(w):
            m = image[i,j]                              #取出当前high和wide中的BGR坐标
            img[i,j] = int(m[0]*0.11 + m[1]*0.59 + m[2]*0.3)   #将BGR坐标转化为gray坐标并赋值给新图像
    print("image show: %s"%img)
    cv2.imshow("image show",img)


src = cv2.imread("./img/02.jpg")
dst = cv2.cvtColor(src,cv2.COLOR_BGR2GRAY)             #opencv自带RGB转灰度图api
print("gray: %s"%dst)                                  #查看自带api转灰度图结果的数组
cv2.imshow("gray image",dst)
gray(src)
cv2.waitKey(0)
cv2.destroyAllWindows("image")

运行结果:
自带api转换
opencv自带api转换自己手写转换
对比
两者图片对比

  • 7
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值