2015年10月25日日曜日

基本 - Mat

MatとはOpenCV上で画像(動画のフレーム含む)を扱うための格納庫みたいなものです. 

行列で表されますが,任意次元であるためユーザや目的によっては変化に富みます.

以下は公式ポータルサイトにあるCookBookからの引用です. 


OpenCVの構造には,次元とチャンネルの概念があります. 
  • チャンネル(channel):要素の次元 
  • 次元(dimension):複数の要素からなる配列の次元 
マルチチャンネル多次元配列の例 :
  (Dim=2 Ch=2, Dim=2 Ch=1, Dim=2 Ch=3, Dim=3 Ch=4)


上図のように 1*x の行列でも x*1 の行列でも次元は2以上となることに注意すれば,

扱ううちに慣れてくるはずです.


まだ自分も慣れてませんけど←



さて型の概念も重要だったり. 

ビット深度といい,その(x,y)の画素がどのような型式かを表します.

cv::Mat temp; 
std::cout << temp.depth() << std::endl; 

のように確認することができます(tempの中に何か画像を入れてからw) 

型の種類について詳しくはこちら >> OpenCV入門 


処理によっては8UC3型の画像を引数にもつ前提の関数に

8UC1型で読み込んだ画像を渡せません,ってことです!


逆に渡した画像は8UC3でも処理された画像は8UC1なんてこともあるので注意です.

0 件のコメント:

コメントを投稿