[解決済み] OpenCV の Mat::type() を使って,Mat オブジェクトの型が何であるかを調べる方法
2022-05-14 01:29:47
質問
私は
type()
メソッドの
Mat
オブジェクトを生成します.
以下のような行があった場合
mat = imread("C:\someimage.jpg");
type = mat.type();
と
type = 16
. mat matrixの種類を調べるにはどうしたらいいのでしょうか?
そのマニュアルや何冊かの本で答えを探したのですが、無駄でした。
どのように解決するのですか?
ここに、実行時に opencv の行列を識別するのに役立つ便利な関数があります。少なくともデバッグの際には有用だと思います。
string type2str(int type) {
string r;
uchar depth = type & CV_MAT_DEPTH_MASK;
uchar chans = 1 + (type >> CV_CN_SHIFT);
switch ( depth ) {
case CV_8U: r = "8U"; break;
case CV_8S: r = "8S"; break;
case CV_16U: r = "16U"; break;
case CV_16S: r = "16S"; break;
case CV_32S: r = "32S"; break;
case CV_32F: r = "32F"; break;
case CV_64F: r = "64F"; break;
default: r = "User"; break;
}
r += "C";
r += (chans+'0');
return r;
}
もし
M
が
Mat
のように呼び出すことができます。
string ty = type2str( M.type() );
printf("Matrix: %s %dx%d \n", ty.c_str(), M.cols, M.rows );
などのデータが出力されます。
Matrix: 8UC3 640x480
Matrix: 64FC1 3x2
注目すべきは、Matrixメソッドもあることです。
Mat::depth()
と
Mat::channels()
. この関数は、ビットがすべて同じ値に格納されているこれら2つの値の組み合わせから、人間が読み取れる解釈を得るための便利な手段に過ぎません。
関連
-
opencv VideoCaptureの問題。ストリームを停止できない。デバイスに不適切な ioctl
-
OpenCV演習 - 顔検出と顔画像抽出
-
opencv3.0とopencv2.4のガウス混合モデルbackgroundSubtractorMOG2の使い分けについて
-
Opencvにおける矩形関数とRect関数の使用法
-
opencv notes - cvCreateImage 関数の説明
-
OpenCV3.0 cvCvtColor 関数 グレースケール画像で遭遇した問題と解決策
-
OpenCV23 はオブジェクトの周囲に楕円や矩形を描画する_outline
-
[Learn opencv3] 11章を読む
-
[解決済み】画像処理。コカ・コーラ缶」認識のためのアルゴリズム改良
-
[解決済み] 行列の大きさ OpenCV
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
アクセス違反の書き込み位置例外のブラインド解決法
-
OpenCV-DFT の最適サイズ cv::getOptimalDFTSize
-
OpenCV-Butterworth ローパスおよびハイパスフィルタ (C++)
-
C++ベースのOpenCV共通関数
-
OpenCV演習 - 顔検出と顔画像抽出
-
OpenCV-Matrix データ型変換 cv::convertTo
-
opencv3.0とopencv2.4のガウス混合モデルbackgroundSubtractorMOG2の使い分けについて
-
OpenCV - 長方形の境界 cv::boundingRect
-
opencv notes - cvCreateImage 関数の説明
-
OpenCV23 はオブジェクトの周囲に楕円や矩形を描画する_outline