メモリバッファから画像を読み込みます.
パラメタ: |
|
---|
この関数は,指定されたメモリ上のバッファから画像を読み込みます. バッファが小さすぎる,または有効なデータを含んでいない場合,空の行列が返されます.
サポートされるフォーマットの一覧とフラグの説明に関しては, 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);
// ファイルのオープンに成功している,またはカメラの初期化に成功
// している場合は,真値を返します.
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:
...
};
The class provides C++ video capturing API. Here is how the class can be used:
#include "cv.h"
#include "highgui.h"
using namespace cv;
int main(int, char**)
{
VideoCapture cap(0); // open the default camera
if(!cap.isOpened()) // check if we succeeded
return -1;
Mat edges;
namedWindow("edges",1);
for(;;)
{
Mat frame;
cap >> frame; // get a new frame from camera
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;
}
// the camera will be deinitialized automatically in VideoCapture destructor
return 0;
}
ビデオライタクラス.
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);
// ビデオライタの初期化に成功している場合には真値を返します.
virtual bool isOpened() const;
// ストリームに次のビデオフレームを書き込みます.
virtual VideoWriter& operator << (const Mat& image);
protected:
...
};