WebCFace 2.5.2
Web-based Communication Framework & Dashboard-like UI
Loading...
Searching...
No Matches
ImageFrame Class Reference

(ver1.3から追加) 画像データ More...

#include <webcface/image_frame.h>

Collaboration diagram for ImageFrame:
[legend]

Public Member Functions

 ImageFrame ()
 空の(0x0の) ImageFrameを作成
 
 ImageFrame (const Size &size, const std::shared_ptr< std::vector< unsigned char > > &data, ImageColorMode color_mode=ImageColorMode::bgr, ImageCompressMode cmp_mode=ImageCompressMode::raw)
 
 ImageFrame (const message::ImageFrame &m)
 
message::ImageFrame toMessage () const
 
 ImageFrame (const ImageFrame &)
 
ImageFrameoperator= (const ImageFrame &)
 
 ImageFrame (ImageFrame &&) noexcept
 
ImageFrameoperator= (ImageFrame &&) noexcept
 
 ImageFrame (int rows, int cols, const void *data, ImageColorMode color_mode=ImageColorMode::bgr)
 生画像データの配列からImageFrameを作成
 
 ImageFrame (const Size &size, const void *data, ImageColorMode color_mode)
 生画像データの配列からImageFrameを作成
 
 ImageFrame (const Size &size, ImageColorMode color_mode)
 空のImageFrameを作成
 
bool empty () const
 画像が空かどうかを返す
 
const Sizesize () const
 画像のサイズ
 
int width () const
 画像の幅
 
int height () const
 画像の高さ
 
int rows () const
 画像の高さ
 
int cols () const
 画像の幅
 
int channels () const
 1ピクセル当たりのデータサイズ(byte数)を取得
 
ImageColorMode color_mode () const
 
ImageColorMode colorMode () const
 色の並び順 (生画像データの場合)
 
ImageCompressMode compress_mode () const
 
ImageCompressMode compressMode () const
 画像の圧縮モード
 
std::shared_ptr< std::vector< unsigned char > > dataPtr () const
 
const std::vector< unsigned char > & data () const
 画像データ
 
std::vector< unsigned char > & data ()
 画像データ (非const)
 
const unsigned char & at (int row, int col, int ch=0) const
 画像の要素にアクセス
 
unsigned char & at (int row, int col, int ch=0)
 画像の要素にアクセス
 

Protected Attributes

Size size_
 
std::shared_ptr< std::vector< unsigned char > > data_
 
ImageColorMode color_mode_
 
ImageCompressMode cmp_mode_
 

Detailed Description

(ver1.3から追加) 画像データ

  • 8bitのグレースケール, BGR, BGRAフォーマットのみを扱う
  • 画像受信時にはjpegやpngなどにエンコードされたデータが入ることもある
  • データはshared_ptrで保持され、Imageをコピーしてもコピーされない
  • デフォルトコンストラクタやmoveなど何をしてもdata_がnullになることはないようにする (ABIの後方互換性)

Constructor & Destructor Documentation

◆ ImageFrame() [1/8]

空の(0x0の) ImageFrameを作成

◆ ImageFrame() [2/8]

ImageFrame ( const Size size,
const std::shared_ptr< std::vector< unsigned char > > &  data,
ImageColorMode  color_mode = ImageColorMode::bgr,
ImageCompressMode  cmp_mode = ImageCompressMode::raw 
)

◆ ImageFrame() [3/8]

◆ ImageFrame() [4/8]

ImageFrame ( const ImageFrame m)

◆ ImageFrame() [5/8]

ImageFrame ( ImageFrame &&  m)
noexcept

◆ ImageFrame() [6/8]

ImageFrame ( int  rows,
int  cols,
const void *  data,
ImageColorMode  color_mode = ImageColorMode::bgr 
)
inline

生画像データの配列からImageFrameを作成

dataから rows * cols * channels バイトがコピーされる

Parameters
rows画像の高さ
cols画像の幅
data画像データ
color_modeデータの構造を指定 (デフォルトはOpenCVのBGR, uint8*3バイト)
Deprecated:
ver2.0〜 rows, colsの順番がややこしいので sizeHW() を使ってサイズ指定

◆ ImageFrame() [7/8]

ImageFrame ( const Size size,
const void *  data,
ImageColorMode  color_mode 
)

生画像データの配列からImageFrameを作成

Since
ver2.0

dataから width * height * channels バイトがコピーされる

Parameters
size画像のサイズ (sizeHW または sizeWH)
cols画像の幅
data画像データ
color_modeデータの構造を指定

◆ ImageFrame() [8/8]

ImageFrame ( const Size size,
ImageColorMode  color_mode 
)

空のImageFrameを作成

Since
ver2.0

width * height * channels バイトのバッファが生成されるので、 作成後にdata()またはat()でデータを書き込んで使う

Parameters
size画像のサイズ (sizeHW または sizeWH)
cols画像の幅
color_modeデータの構造を指定

Member Function Documentation

◆ at() [1/2]

unsigned char & at ( int  row,
int  col,
int  ch = 0 
)
inline

画像の要素にアクセス

Since
ver2.0

compress_modeがrawでない場合は正常にアクセスできない。

◆ at() [2/2]

const unsigned char & at ( int  row,
int  col,
int  ch = 0 
) const
inline

画像の要素にアクセス

compress_modeがrawでない場合は正常にアクセスできない。

◆ channels()

int channels ( ) const

1ピクセル当たりのデータサイズ(byte数)を取得

Returns
1, 3, or 4

◆ color_mode()

ImageColorMode color_mode ( ) const
inline
See also
colorMode()

◆ colorMode()

ImageColorMode colorMode ( ) const
inline

色の並び順 (生画像データの場合)

compressModeがrawでない場合意味を持たない。

◆ cols()

int cols ( ) const
inline

画像の幅

◆ compress_mode()

ImageCompressMode compress_mode ( ) const
inline
See also
compressMode()

◆ compressMode()

ImageCompressMode compressMode ( ) const
inline

画像の圧縮モード

◆ data() [1/2]

std::vector< unsigned char > & data ( )
inline

画像データ (非const)

Since
ver2.0
Returns
compress_modeがrawの場合、rows * cols * channels 要素の画像データ。 それ以外の場合、圧縮された画像のデータ

◆ data() [2/2]

const std::vector< unsigned char > & data ( ) const
inline

画像データ

Returns
compress_modeがrawの場合、rows * cols * channels 要素の画像データ。 それ以外の場合、圧縮された画像のデータ (ver2.0〜非const)

◆ dataPtr()

std::shared_ptr< std::vector< unsigned char > > dataPtr ( ) const
inline

◆ empty()

bool empty ( ) const
inline

画像が空かどうかを返す

Returns
dataPtr()->size() == 0

◆ height()

int height ( ) const
inline

画像の高さ

Since
ver2.0

◆ operator=() [1/2]

ImageFrame & operator= ( const ImageFrame m)

◆ operator=() [2/2]

ImageFrame & operator= ( ImageFrame &&  m)
noexcept

◆ rows()

int rows ( ) const
inline

画像の高さ

◆ size()

const Size & size ( ) const
inline

画像のサイズ

Since
ver2.0

◆ toMessage()

message::ImageFrame toMessage ( ) const

◆ width()

int width ( ) const
inline

画像の幅

Since
ver2.0

Member Data Documentation

◆ cmp_mode_

ImageCompressMode cmp_mode_
protected

◆ color_mode_

ImageColorMode color_mode_
protected

◆ data_

std::shared_ptr<std::vector<unsigned char> > data_
protected

◆ size_

Size size_
protected

The documentation for this class was generated from the following files: