一、画像階調アルゴリズム

10513 ワード

文書ディレクトリ
  • 階調アルゴリズム概要
  • 1.Opencv階調実現
  • 2.階調アルゴリズム手動実装
  • 階調アルゴリズムの概要
    コンピュータ分野では、グレースケールデジタル画像は、画素ごとに1つのサンプリング色しかない画像である.このような画像は、理論的には、このサンプリングは、任意の色の異なる深さ、さらには異なる輝度の異なる色であってもよいが、最も暗い黒から最も明るい白までの階調として表示されることが多い.階調画像は白黒画像とは異なり、コンピュータ画像の分野では白黒画像は白黒の2色しかなく、階調画像は黒と白の間に多くのレベルの色深さがある.
    一.Opencv階調実装
  • 読取時実現:
  • import cv2
    # picture type 0:gray   1 color
    img = cv2.imread("    .jpg", 0)
    cv2.imshow("image", img)
    cv2.waitKey(0)
    
    
  • リアルタイムで階調
  • に移行する.
    import cv2
    img1 = cv2.imread("image0.jpg", 1)
    #        , bgr       
    dst = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY)
    cv2.imshow("dst", dst)
    cv2.waitKey(0)
    

    二.階調アルゴリズム手動実装
  • 階調アルゴリズム有名な心理学公式:
  • Gray = R0.299 + G0.587 + B*0.114
    心理学の公式に基づいてpythonは次のコードを生成します.
    import cv2
    import numpy as np
    img = cv2.imread("image0.jpg", 1)
    imgInfo = img.shape
    height = imgInfo[0]
    width = imgInfo[1]
    mode = imgInfo[2]
    dst = np.zeros((height, width, 3), np.uint8)
    for i in range(0, height):
        for j in range(0, width):
            (b, g, r) = img[i, j]
            b = int(b)
            g = int(g)
            r = int(r)
            gray = b*0.114 + g*0.587 + r*0.299
            dst[i, j] = np.uint8(gray)
    cv2.imshow("dst", dst)
    cv2.waitKey(0)
    

    アルゴリズム最適化提案:b 0.114 + g0.587 + r0.299は、小数1000を先に加算し、合計を1000で除算して精度損失を回避することができます.
  • 非心理学公式:
  • import cv2
    import numpy as np
    img = cv2.imread("image0.jpg", 1)
    imgInfo = img.shape
    height = imgInfo[0]
    width = imgInfo[1]
    mode = imgInfo[2]
    dst = np.zeros((height, width, 3), np.uint8)
    for i in range(0, height):
        for j in range(0, width):
            (b, g, r) = img[i, j]
            gray = (int(b) + int(g) + int(r)) / 3 #(r+g+b)/3  
            dst[i, j] = np.uint8(gray)
    cv2.imshow("dst", dst)
    cv2.waitKey(0)
    

    ブロガーが開発したサードパーティCSDNクライアント.体験は素晴らしいですよ、早くダウンロードを体験しましょう.