图像灰度变化(OpenCV)

目录

一、图像灰度变化的原理

二、Python代码

三、示例图片

四、获取的图像大小

五、运行效果图


一、图像灰度变化的原理

        彩色图像中的每个像素的颜色由R、G、B三个分量决定,而每个分量的取值范围为0~255。而灰度图像是R、G、B三个分量相同的一种特殊的彩色图像,其算法有以下两种:

        1)求出每个像素点的R、G、B三个分量的平均值,然后将这个平均值赋给这个像素的三个分量。

        2)根据RGB和YUV颜色空间的变化关系,建立亮度Y与R、G、B三个颜色分量的对应关系:Y=0.3R+0.59G+0.11B,以这个亮度值表达图像的灰度值。

扫描二维码关注公众号,回复: 15212737 查看本文章

        OpenCV有相关的函数cvtColor,用它可以直接完成灰度化操作。设img为源图像矩阵,myimg1为灰度化后的目标图像矩阵。myimg2为复制的图像。

二、Python代码

import cv2
import numpy as np
fn = r"C:\Users\LIHAO\Pictures\Saved Pictures\wallhaven-1pdkkw.jpg"
if __name__ == "__main__":
    img = cv2.imread(fn)
    sp = img.shape
    print(sp)
    # 获取图像大小
    # height
    sz1 = sp[0]
    # width
    sz2 = sp[1]
    # 显示图像大小
    print('width:%d\nheight:%d'%(sz2,sz1))
    # 创建一个窗口并显示图像
    cv2.namedWindow('img')
    cv2.imshow('img', img)
    # 复制图像矩阵,生成与源图像一样的图像,并显示
    myimg2 = img.copy()
    cv2.namedWindow('myimg2')
    cv2.imshow('myimg2', myimg2)
    
    # 复制并转换为灰度图像,并显示
    myimg1 = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    cv2.namedWindow('myimg1')
    cv2.imshow('myimg1', myimg1)
    cv2.waitKey()
    cv2.destroyAllWindows()

三、示例图片

四、获取的图像大小

(1080, 1920, 3)
width:1920
height:1080

五、运行效果图

 

猜你喜欢

转载自blog.csdn.net/weixin_51756038/article/details/130046736