この記事は Java 環境に基づいており、OpenCV 4.6.0v で Mat オブジェクトを作成するときに渡される CvType パラメーターを紹介します。
CvType.CV_8UCX、CvType.CV_8SCX、CvType.CV_16UCX、CvType.CV_16SCX、およびその他の
パラメーターの役割と意味がよく理解できない場合。
したがって、この記事は、OpenCV Mat におけるチャネルの役割を理解するのに役立ちます。
次のコンテンツは OpenCV SDK 4.6.0v
この型は主に Mat のデータ型を定義するために使用されます。一般的な使用シナリオは、マットの作成時に定義することです。
それでは、CvType タイプではどのようなパラメーターが定義されているのでしょうか?非常に簡単に言うと、Mat 内の画像データの 2 つの基本インジケーターを決定します。
チャネルの概念については、以前の記事 https://zinyan.com/?p=493 で紹介しました。チャネルの概念についてよくわからない場合は、前の記事を読んでください。
CvType ソース コードから、OpenCV が 8 つの深さパラメーターを定義していることがわかります。
public static final int CV_8U = 0, CV_8S = 1, CV_16U = 2, CV_16S = 3, CV_32S = 4, CV_32F = 5, CV_64F = 6, CV_16F = 7;
上記の名前の 8U、8S、16U、16S、32S、64F、16F などの前の数字はビット数を表します
つまり、8bite、 16バイト、32バイト、64バイト。値の範囲を定義するために使用され、次の文字 U、S、F は記号と精度を表します。
したがって、次の定義を組み合わせることで理解できます:
# #CV_8U : パラメータの値の範囲 0 ~ 255 を表す 8 ビットの正の整数です。
OpenCV 定義では、チャネルの最大数は 4 で、最小は 1 です。これはコードに反映されており、これはコードで定義されている C1、C2 です。 CvType クラス。C3、C4。2.2 チャネル
C1: シングル チャネルを表します
//zinyan:创建了一个4*4尺寸的图片。每个像素点存储了一个double[1]的数组,该数组中值的范围为0~255 Mat mat = new Mat(4, 4, CvType.CV_8UC1); //通常用来表示灰度图或黑白图 //zinyan:创建了一个5*5尺寸的图片。每个像素点存储了一个double[3]的数组,该数组中值的范围为0~255 Mat mat1 = new Mat(5, 5, CvType.CV_8UC3); //通常用来表示彩色图 //zinyan:创建了一个6*6尺寸的图片。每个像素点存储了一个double[3]的数组,该数组中值的范围为0~65535 Mat mat1 = new Mat(6, 6, CvType.CV_16UC3); //通常用来表示彩色图,颜色值范围更广。
Mat mat = new Mat(4, 4, CvType.CV_8UC3); int depth = CvType.depth(mat.type()); //输出结果值为 0 == CvType.CV_8U Mat mat1 = new Mat(4, 4, CvType.CV_16SC1); depth = CvType.depth(mat1.type()); //输出结果值为 3 == CvType.CV_16S
CvType.CV_USRTYPE1 の値はすでに CV_16F と同等です。したがって、このパラメータにも @deprecated アノテーションが付けられます。放棄されたことを表します
使用しないことをお勧めします。
CvType の他のメソッドは比較的理解しやすいです。最後に、public static Final int ELEM_SIZE(int type) メソッドがあります。
このメソッドは、型の値を渡します。これは、いわゆる CvType.CV_8UC1 およびその他のパラメーター値です。
この場合、返されるのは int 変数です。
このメソッドによって返される変数は、各チャネルのパラメータのバイト数を表します。 1 バイトは 8 ビットを表し、8 ビットです。
したがって、CV_8U、CV_8S の場合は、チャネル番号を直接返すだけです。
16 ビット データの場合は 2* チャネル、32 ビット データの場合は 4* チャネル、64 ビット データの場合は 8* チャネルを返す必要があります。
これで、OpenCV の CvType の紹介は終わりです。
使用中に CvType に関するエラーが発生した場合。したがって、ほとんどの場合、CvType に慣れていないことが原因です。
または、チャネルと深度の要件を持つアルゴリズムがエラーを引き起こすために使用されます。
以上がOpenCV および関連メソッドの CvType のさまざまなパラメーターの意味を理解するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。