メモリバッファから画像を読み込みます.
パラメタ: |
|
---|
この関数は,指定されたメモリ上のバッファから画像を読み込みます. バッファが小さすぎる,または有効なデータを含んでいない場合,空の行列が返されます.
サポートされるフォーマットの一覧とフラグの説明に関しては, imread を参照してください.
メモリバッファに画像をエンコード(書き出し)します.
パラメタ: |
|
---|
この関数は,画像を圧縮しメモリバッファに格納します.そのバッファは,出力結果にフィットするようにリサイズされます. サポートされるフォーマットの一覧とフラグの説明に関しては, imwrite を参照してください.
ファイルから画像を読み込みます.
パラメタ: |
|
---|
関数 imread は,指定されたファイルから画像を読み込み,それを返します.(ファイルが存在しない,不適切なパーミッション,未サポートまたは無効なフォーマット,などの理由により)画像が読み込めない場合は,この関数は空の行列( Mat::data==NULL )を返します.現在は,以下のファイルフォーマットをサポートしています:
注意1 : この関数は,画像の種類をファイルの拡張子からではなく,その内容から判別します.
注意2 : Windows と MacOSX 環境では,OpenCVで使われる標準の画像コーデック(libjpeg, libpng, libtiff そして libjasper)がデフォルトで利用されます.よって,OpenCVは常に JPEGs, PNGs, TIFFs を読み込むことができます.MacOSXでは,ネイティブなMacOSX画像ローダを利用するためのオプションもあります.しかし現在は,MacOSXに組み込まれたカラーマネジメントにより,これらのネイティブな画像ローダを利用すると,画像のピクセル値が多少異なるものになることに注意してください.
Linux, BSD系,その他のUnix系のオープンソースOS環境では,OpeNCV は OSが提供する画像コーデックを探します.コーデックのサポートを得るために,関連パッケージを(開発ファイル,例えば「libjpeg-dev」など,を忘れずに)インストールするか,あるいは,CMakeで OPENCV_BUILD_3RDPARTY_LIBS を ON にしてください.
指定したファイルに画像を保存します.
パラメタ: |
|
---|
関数 imwrite は,指定したファイルに画像を保存します.画像フォーマットは, filename の拡張子によって決まります.サポートされる拡張子の一覧については imread を参照してください.この関数によって保存できるのは,8ビット(PNG, JPG 2000, TIFF の場合は 16ビット)のシングルチャンネル,または3チャンネル(チャンネルは’BGR’の順序)の画像だけです.フォーマットやビット深度,チャンネル順序が異なる場合は, Mat::convertTo と cvtColor を用いて保存前に画像を変換するか,一般的な XML 入出力関数を用いて,画像を XML や YAML フォーマットで保存します.
ビデオファイルやカメラからキャプチャを行うためのクラス.
class VideoCapture
{
public:
// デフォルトコンストラクタ
VideoCapture();
// ビデオファイルをオープンするコンストラクタ
VideoCapture(const string& filename);
// カメラからのストリーミングを開始するコンストラクタ
VideoCapture(int device);
// デストラクタ
virtual ~VideoCapture();
// 指定されたビデオファイルをオープンします.
virtual bool open(const string& filename);
// ID で指定されたカメラからのストリーミングを開始します.
virtual bool open(int device);
// ファイルのオープンに成功している,またはカメラの初期化に成功
// している場合は, true を返します.
virtual bool isOpened() const;
// カメラのストリームまたはビデオファイルをクローズします.
// (デストラクタによって自動的に呼び出されます)
virtual void release();
// 次のフレーム,マルチカメラの場合は次のフレーム集合,を確定します.
// これ以上のフレームがない場合は,偽値を返します.
virtual bool grab();
// 指定されたビデオストリームからフレームを読み出します.
// (マルチカメラのライブストリームでは,非 0 のチャンネルのみが有効です)
virtual bool retrieve(Mat& image, int channel=0);
// grab() + retrieve(image, 0); と等価です.
virtual VideoCapture& operator >> (Mat& image);
// 指定のプロパティ propId に指定の値 value をセットします.
virtual bool set(int propId, double value);
// 指定のプロパティの値を取得します.
virtual double get(int propId);
protected:
...
};
このクラスは,C++ ビデオキャプチャ API を提供します.このクラスを利用するには,次のようにします:
#include "cv.h"
#include "highgui.h"
using namespace cv;
int main(int, char**)
{
VideoCapture cap(0); // デフォルトカメラをオープン
if(!cap.isOpened()) // 成功したかどうかをチェック
return -1;
Mat edges;
namedWindow("edges",1);
for(;;)
{
Mat frame;
cap >> frame; // カメラから新しいフレームを取得
cvtColor(frame, edges, CV_BGR2GRAY);
GaussianBlur(edges, edges, Size(7,7), 1.5, 1.5);
Canny(edges, edges, 0, 30, 3);
imshow("edges", edges);
if(waitKey(30) >= 0) break;
}
// VideoCapture デストラクタにより,カメラは自動的に終了処理されます
return 0;
}
パラメタ: |
|
---|
VideoCapture コンストラクタ.
パラメタ: |
|
---|
VideoCapture クラスのバックエンドでサポートしていないプロパティが要求されると,値として 0 が返されることに注意してください.
パラメタ: |
|
---|
VideoCapture バックエンドのプロパティを設定します.
ビデオライタクラス.
class VideoWriter
{
public:
// デフォルトコンストラクタ
VideoWriter();
// open を呼び出すコンストラクタ
VideoWriter(const string& filename, int fourcc,
double fps, Size frameSize, bool isColor=true);
// デストラクタ
virtual ~VideoWriter();
// ファイルをオープンし,ビデオライタを初期化します.
// filename - 出力ファイル名
// fourcc - コーデック
// fps - 1 秒あたりのフレーム数
// frameSize - ビデオフレームのサイズ
// isColor - ビデオストリームがカラーか,グレースケールかを指定
virtual bool open(const string& filename, int fourcc,
double fps, Size frameSize, bool isColor=true);
// ビデオライタの初期化に成功している場合には true を返します.
virtual bool isOpened() const;
// ストリームに次のビデオフレームを書き込みます.
virtual VideoWriter& operator << (const Mat& image);
protected:
...
};