画像の色変更について
さて、そろそろOpenCVにも慣れてきて楽しくなってきているところではないでしょうか。今回の記事は画像の色変更についてです。そんなに難しくはないですが卒業研究などの研究には非常に使われる技術なのでしっかりと覚えましょう。
Mark4
# include <opencv2/opencv.hpp>
# include<iostream>
# if _DEBUG
# pragma comment(lib,"opencv_world430d.lib")
# else
# pragma comment(lib,"opencv_world430.lib")
# endif
using namespace cv;
using namespace std;
int main(void) {
Mat img = imread("C:\\opencv\\sources\\samples\\data\\lena.jpg");
cvtColor(img, img, COLOR_BGR2GRAY);
imshow("View", img);
waitKey();
return 0;
}
このように出てくればOKです。
解説①
前回のプログラムと違う点はここです。
cvtColor(img, img, COLOR_BGR2GRAY);
これの引数は
cvtColor(入力画像, 出力画像, グレースケール化);
の意味を持ちます。
解説②
BGRで色を表現できるのは知っていますか。B(Blue),G(Green),R(Red)の三つです。今回はグレースケールの紹介ですが、GBRを入れ替えたりすることも出来ますので、興味がある人
はいろいろしてみて下さい。
解説③
さっきはcvtColorであとでグレースケールにしましたが、次のように画像を読み込んだときにグレースケールにしてもいいです。
Mat img = imread("C:\\opencv\\sources\\samples\\data\\lena.jpg", IMREAD_GRAYSCALE);
cvtColorで可能な変換(例)
COLOR_BGR2RGB //RGBとBGRの色空間を変更する
COLOR_GRAY2RGB //グレースケールをRGBまたはBGR色空間に、もしくはアルファチャンネルを追加する。
最後に
研究ではよく使われる技術なのでしかっり覚えましょう。