画像データをディスクに保存する標準的な (推奨される) 方法は、ピクセルを画像コンテナー (jpg/png/bmp/tiff/...) に入れ、それをファイルに保存することです。OpenCV はこのプロセスを非常に簡単に処理しますimg
。これは、ファイルの名前をIplImage*
呼び出して指定するだけでよいためです。cvSaveImage()
if (!cvSaveImage("output.png", img))
{
// print cvSaveImage failed and deal with error
}
次に、このファイルをディスクから読み取るには、cvLoadImage()
おそらく既に使用している を使用できます。
IplImage
なんらかの不可解な理由で、実際にピクセルだけをファイルに保存している場合、それらを構造体に読み戻したいと思うことは完全に理解できます。この目的のために、探している関数は次のcvCreateImage()
とおりです。
IplImage* new_img = cvCreateImage(cvSize(width, height), /*img depth*/, /* nChannels*/);
作成後、ピクセルを に読み込むnew_image
必要があります。mempcy()
new_image->imageData
ただし、このアプローチを使用するには、画像の実際のサイズを事前に知っておく必要があります。ファイル内に画像のピクセルを保存するだけの場合は、画像のサイズをファイル名の一部として保存することをお勧めします。
OpenCV 関数を使用して画像を処理する利点の 1 つは、システムがそれらを認識して表示できることです (これは、デバッグ目的で非常に重要です)。