画像のグレースケール変更(OpenCV)

目次

1. 画像の階調変化の原理

2.Pythonコード

3. サンプル写真

4. 取得した画像サイズ

五、ランニング効果図


1. 画像の階調変化の原理

        カラー画像の各ピクセルの色は、R、G、B の 3 つの成分によって決まり、各成分の値の範囲は 0 ~ 255 です。グレースケール イメージは、R、G、B の同じ 3 つのコンポーネントを持つ特別なカラー イメージです。グレースケール イメージには 2 つのアルゴリズムがあります。

        1) 各ピクセルの R、G、B コンポーネントの平均値を見つけ、この平均値をこのピクセルの 3 つのコンポーネントに割り当てます。

        2) RGB と YUV 色空間間の変化関係に従って、明るさ Y と R、G、B の 3 つの色成分の間に対応関係を確立します: Y=0.3R+0.59G+0.11B、グレー値を表現します。この明るさの値を持つ画像の。

        OpenCV には、グレースケール操作を直接完了するために使用できる関連関数 cvtColor があります。img をソース画像行列、myimg1 をグレースケールされた宛先画像行列とします。myimg2 はコピーされたイメージです。

2.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()

3. サンプル写真

4. 取得した画像サイズ

(1080, 1920, 3)
幅:1920
高さ:1080

五、ランニング効果図

 

おすすめ

転載: blog.csdn.net/weixin_51756038/article/details/130046736