2011年7月7日木曜日

CGImageをIplImageに変換する

久しぶりの投稿。

OpenCVをつかったiPhoneのカメラアプリを作成しているのですが、
OpenCVで扱える画像はIplImageという型なのでCGImageをそれに変換する必要があります。

そのサンプルが以下の部分。
(まぁ、本来はもっと色々と実装があるのですが。)

IplImage *ret = cvCreateImage(cvGetSize(iplimage), IPL_DEPTH_8U, 3);
cvCvtColor(iplimage, ret, CV_RGBA2BGR);
cvReleaseImage(&iplimage);


どのサンプルを見てもこうなんですよね。


ただ、私の環境でこの実装をすると、黄色が青色に変換されるんですよね。
どう考えてもRGBの値がおかしい感じ。

アバターカメラ って名前で出すのであればこれでいいかもって写真になるんですよねー









 











なんでこうなるのか悩んだんですが、

結局
「CV_RGBA2BGR」の箇所を「CV_RGBA2RGB

にしないとダメみたいなんですよ。


というのも、「iPhoneデジカメプログラミング」って本を見ると
やっぱり
「CV_RGBA2BGR」
ってなってるワケですが、サンプルのXCodeプロジェクトをDLして見てみると

「CV_RGBA2RGB

ってなってたわけで。

ただ、他のサイトが書いている事が間違いとは思えないので
iphone用にコンパイル済みのOpenCVを使ってるのが原因かも。。。

詳細知っている方は教えてください。

0 件のコメント:

コメントを投稿