OpenCV で RGB から LAB への色空間の変換(OpenCV,Python を使用)

Python と OpenCV を用いて,RGB, LAB 色空間の変換を行う.

【関連する外部ページ】

【サイト内の関連ページ】

前準備

Python のインストール(Windows,Ubuntu 上)

サイト内の関連ページ

関連する外部ページPython の公式ページ: https://www.python.org/

Python 開発環境のインストール

OpenCV Python のインストール

Python で OpenCV を動かすためのもの.

OpenCV Python のインストールは:別ページ »で説明1~2 コマンドの実行でインストールできる.

画像ファイル fruits.jpg, home.jpg のダウンロード

https://github.com/opencv/opencv/tree/master/samples/data で公開されている fruits.jpg, home.jpg を使用する(謝辞:画像の作者に感謝します)

RGB 色空間から LAB 色空間への変換

  • Python プログラムの実行

    Python プログラムの実行

    Python 開発環境(Jupyter Qt Console, Jupyter ノートブック (Jupyter Notebook), Jupyter Lab, Nteract, Spyder, PyCharm, PyScripterなど)も便利である.

    Python のまとめ: 別ページ »にまとめ

    python
    

    fruits.jpg での実行

    Ubuntu, RaspberryPi のときは,「IMROOT=os.environ['LOCALAPPDATA'] + '/'」の行を,「IMROOT="/usr/local/image/"」のように書き換える.
    import os
    import cv2
    IMROOT=os.environ['LOCALAPPDATA'] + '/'
    bgr = cv2.imread(IMROOT + "fruits.jpg")
    lab = cv2.cvtColor(bgr, cv2.COLOR_BGR2LAB)
    cv2.imshow("", lab)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
    

    画像が表示されるので確認. このあと,ウインドウの右上の「x」をクリックしない.画面の中をクリックしてから,何かのキーを押して閉じる

    home.jpg での実行

    Ubuntu, RaspberryPi のときは,「IMROOT=os.environ['LOCALAPPDATA'] + '/'」の行を,「IMROOT="/usr/local/image/"」のように書き換える.
    import os
    import cv2
    IMROOT=os.environ['LOCALAPPDATA'] + '/'
    bgr = cv2.imread(IMROOT + "home.jpg")
    lab = cv2.cvtColor(bgr, cv2.COLOR_BGR2LAB)
    cv2.imshow("", lab)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
    

    画像が表示されるので確認. このあと,ウインドウの右上の「x」をクリックしない.画面の中をクリックしてから,何かのキーを押して閉じる

    LAB 色空間でのしきい値処理

  • Python プログラムの実行

    Python プログラムの実行

    Python 開発環境(Jupyter Qt Console, Jupyter ノートブック (Jupyter Notebook), Jupyter Lab, Nteract, Spyder, PyCharm, PyScripterなど)も便利である.

    Python のまとめ: 別ページ »にまとめ

    python
    

    色空間によるマスク画像

    Ubuntu, RaspberryPi のときは,「IMROOT=os.environ['LOCALAPPDATA'] + '/'」の行を,「IMROOT="/usr/local/image/"」のように書き換える.
    import os
    import numpy as np
    import cv2
    IMROOT=os.environ['LOCALAPPDATA'] + '/'
    bgr = cv2.imread(IMROOT + "fruits.jpg")
    lab = cv2.cvtColor(bgr, cv2.COLOR_BGR2LAB)
    cv2.imshow('mask', cv2.inRange(lab, np.array([50,50,50]), np.array([130,255,255])))
    cv2.waitKey(0)
    cv2.destroyAllWindows()
    

    画像が表示されるので確認. このあと,ウインドウの右上の「x」をクリックしない.画面の中をクリックしてから,何かのキーを押して閉じる

    マスク画像と元画像の重ね合わせ

    Ubuntu, RaspberryPi のときは,「IMROOT=os.environ['LOCALAPPDATA'] + '/'」の行を,「IMROOT="/usr/local/image/"」のように書き換える.
    import os
    import numpy as np
    import cv2
    IMROOT=os.environ['LOCALAPPDATA'] + '/'
    bgr = cv2.imread(IMROOT + "fruits.jpg")
    lab = cv2.cvtColor(bgr, cv2.COLOR_BGR2LAB)
    cv2.imshow('res', cv2.bitwise_and(bgr, bgr, mask=cv2.inRange(lab, np.array([50,50,50]), np.array([130,255,255]))))
    cv2.waitKey(0)
    cv2.destroyAllWindows()
    

    画像が表示されるので確認. このあと,ウインドウの右上の「x」をクリックしない.画面の中をクリックしてから,何かのキーを押して閉じる