OpenCV で RGB から LAB への色空間の変換(OpenCV,Python を使用)
Python と OpenCV を用いて,RGB, LAB 色空間の変換を行う.
【関連する外部ページ】
- OpenCV の公式ページ: https://opencv.org
- GitHub の OpenCV のページ: https://github.com/opencv/opencv/releases
【サイト内の関連ページ】
- OpenCV について [PDF] , [パワーポイント]
- OpenCVとPythonを活用した画像・ビデオ処理プログラム: 別ページ »
前準備
Python のインストール(Windows,Ubuntu 上)
- Windows での Python 3.10,関連パッケージ,Python 開発環境のインストール(winget を使用しないインストール): 別ページ »で説明
- Ubuntu では,システム Pythonを使うことができる.Python3 開発用ファイル,pip, setuptools のインストール: 別ページ »で説明
【サイト内の関連ページ】
- Python のまとめ: 別ページ »にまとめ
- Google Colaboratory の使い方など: 別ページ »で説明
【関連する外部ページ】 Python の公式ページ: https://www.python.org/
Python 開発環境のインストール
- Windows での Python 開発環境として,Jupyter Qt Console, Jupyter ノートブック (Jupyter Notebook), Jupyter Lab, Nteract, spyder のインストール: 別ページ »で説明
- Windows での PyCharm のインストール: 別ページ »で説明
- Windows での PyScripter のインストール: 別ページ »で説明
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 を使用する(謝辞:画像の作者に感謝します)
- Windows の場合
次のコマンドを実行.
cd %LOCALAPPDATA% curl -L https://github.com/opencv/opencv/blob/master/samples/data/fruits.jpg?raw=true -o fruits.jpg curl -O https://raw.githubusercontent.com/opencv/opencv/master/samples/data/home.jpg
- Ubuntu, RaspberryPi の場合
次のコマンドを実行.
sudo mkdir -p /usr/local/image cd /usr/local/image sudo chown -R $USER . curl -L https://github.com/opencv/opencv/blob/master/samples/data/fruits.jpg?raw=true -o fruits.jpg curl -O https://raw.githubusercontent.com/opencv/opencv/master/samples/data/home.jpg
RGB 色空間から LAB 色空間への変換
Python プログラムの実行
- Windows では python (Python ランチャーは py)
- Ubuntu では python3
Python 開発環境(Jupyter Qt Console, Jupyter ノートブック (Jupyter Notebook), Jupyter Lab, Nteract, Spyder, PyCharm, PyScripterなど)も便利である.
Python のまとめ: 別ページ »にまとめ
python
fruits.jpg での実行
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 での実行
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 プログラムの実行
- Windows では python (Python ランチャーは py)
- Ubuntu では python3
Python 開発環境(Jupyter Qt Console, Jupyter ノートブック (Jupyter Notebook), Jupyter Lab, Nteract, Spyder, PyCharm, PyScripterなど)も便利である.
Python のまとめ: 別ページ »にまとめ
python
色空間によるマスク画像
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」をクリックしない.画面の中をクリックしてから,何かのキーを押して閉じる
マスク画像と元画像の重ね合わせ
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」をクリックしない.画面の中をクリックしてから,何かのキーを押して閉じる