2016-09-01 4 views
1

OpenCVでRGBAビットマップをMatに変換する方法を探しています。私はthisを試しましたが、出力イメージの色が間違っていて、上下が逆でした。OpenCVでRGBA配列をMatに変換する方法

私はビットマップを格納するために構造体配列を使用します。

typedef struct { 
    unsigned char r,g,b,a; 
} BITMAP; 
BITMAP* input = (BITMAP*)malloc(width*height*sizeof(BITMAP)); 
... 
Mat image(height, width, CV_8UC4, input); 

誰でもOpenCVでビットマップをMatに変換する便利な方法はありますか?

答えて

2

OpenCVのcv :: Matは、行の主要な順序付け(チャネルに沿って最初にインクリメントし、次に列に沿って、次に行に沿ってインクリメントする)を使用します。したがって、(0、0)のピクセルは、画像の最も左上のピクセルです。 BITMAPの左下が(0、0)の場合、画像は上下逆に表示されます。典型的には、OpenCVはチャネルのBGRA順序付けを好む。チャンネルの並べ替えは色付けを混乱させます。

+0

ありがとうございました!あなたの言ったようにピクセルとチャンネルを再マッピングしました。それは最終的に動作します! – Galaxy