OpenCV

OpenCVを使っていて気づいたことを書いています。
間違い等がありましたら、ぜひ教えて下さい。m(__)m

グレー画像のLoad時の注意

グレー画像(pgm等)をLoadする時には

 IPlImage *iplImage = cvLoadImage("ファイルの名前",0);

と0が必要。

色変換

色変換(cvCvtColor)における色空間は次の7種類
変換例は次のとおり。

 IplImage *IplOrig;
 IplOrig = cvLoadImage("-_-");
 IplImage *IplHSV;
 iplHSV = cvCreateImage(cvSize(iplOrig->width,iplOrig->height),IPL_DEPTH_8U,3);
 cvCvtColor(iplOrig,iplHSV,CV_BGR2HSV);

CV_BGR2HSVのところは、CV_<変換前の色空間>2<変換後の色空間>とする。
(ちなみにcvLoadImageではBGRとなる)

色空間の分離

色空間の分離にはcvCvtPixToPlaneを用いる。

 (iplHSVが24bitであるとする。)
 IplImage *iplH = cvCreateImage(cvSize(iplHSV->width,iplHSV->height),IPL_DEPTH_8U,1);
 IplImage *iplS = cvCreateImage(cvSize(iplHSV->width,iplHSV->height),IPL_DEPTH_8U,1);
 IplImage *iplV = cvCreateImage(cvSize(iplHSV->width,iplHSV->height),IPL_DEPTH_8U,1);
 cvCvtPixToPlane(iplHSV,iplH,iplS,iplV,0);