検索
ホームページテクノロジー周辺機器AIOpenCV および関連メソッドの CvType のさまざまなパラメーターの意味を理解する

1. はじめに

この記事は 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

2 に基づいています。CvType

この型は主に Mat のデータ型を定義するために使用されます。一般的な使用シナリオは、マットの作成時に定義することです。

それでは、CvType タイプではどのようなパラメーターが定義されているのでしょうか?非常に簡単に言うと、Mat 内の画像データの 2 つの基本インジケーターを決定します。

  1. チャネル: つまり、mat.channels() によって返される値は 3 つのパラメーター 1 ~ 4 のみです。
  2. Depth 深さ: つまり、マット内の各ピクセル パラメーターの格納値の範囲です。値は各チャネルの byte[] 配列に格納され、各配列の値の範囲は深さによって決まります。

チャネルの概念については、以前の記事 https://zinyan.com/?p=493 で紹介しました。チャネルの概念についてよくわからない場合は、前の記事を読んでください。

2.1 深さ-深さ

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 は記号と精度を表します。

  • U: 符号なし整数、符号なし整数、正の整数も
  • #S: 符号付き整数、符号付き整数 (負と正の数を含む、すべての整数)
  • # F:float、単精度浮動小数点型、つまり小数点付き。 (追記: Float 型自体は負の数をサポートしています)

したがって、次の定義を組み合わせることで理解できます:

# #CV_8U : パラメータの値の範囲 0 ~ 255 を表す 8 ビットの正の整数です。

    CV_8S: パラメータの値の範囲 -128 を表す 8 ビットの正および負の数です。 ~127
  • CV_16U : パラメータの値の範囲を表す 16 ビットの正の整数です。 0~65535
  • CV_16S: パラメータの値の範囲を表す 16 ビットの正および負の数値です。パラメータの値の範囲 -32768 ~ 32767
  • CV_16F : パラメータの値の範囲を表す 16 ビット浮動小数点数です -65504 ~ 65504
  • CV_32S: 32 です- パラメーターの値の範囲を表すビット正の整数 2147483648~2147483647
  • CV_32F: パラメーター値の範囲 1.18x10^-38^~3.40x10^38^ を表す 32 ビット浮動小数点数です。
  • CV_64F: これは 64 ビット浮動小数点数で、パラメーター値の範囲 2.23x10^- 308^~1.79x10^308^
  • PS: について浮動小数点数の精度と範囲の問題については、検索して詳細を確認できます。上記のパラメータ範囲は、ネットワーク サマリーを通じて取得されます。

2.2 チャネル

OpenCV 定義では、チャネルの最大数は 4 で、最小は 1 です。これはコードに反映されており、これはコードで定義されている C1、C2 です。 CvType クラス。C3、C4。

C1: シングル チャネルを表します

    C2: デュアル チャネルを表します
  • C3: ティーから
  • C4: 4 つのチャネルを表します
  • OpenCV では、ピクセルのカラー値は double[] 倍精度浮動小数点配列に格納されます。
チャネルは、この double[] 配列の長さを定義します。

たとえば、画像が RGB 形式のカラー画像の場合、画像内のピクセルを R、G、B の 3 つの値と混合して決定する必要があります。特定の色。

ピクセルの下の R、G、B の値を記録するには、double[3] の配列が必要です。

つまり、この図では C3 の 3 つのチャンネルが使用されています。

また、RGB は通常、0 ~ 255 の範囲の整数です。

OpenCV は、上で紹介した深度を使用して色の値の範囲を表します。

この 2 つの組み合わせは次のとおりです:

CvType.CV_8UC3: 3 つのチャネルを表します。各チャネルのパラメータの値の範囲は 8 ビットの正の整数です。これは 0 ~255

最後に、Matt が作成されたときのパラメータを組み合わせて理解します。

//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); //通常用来表示彩色图,颜色值范围更广。

To要約すると、CvType 定義されているのは、Mat 内のデータ ストレージのタイプです。

は、Mat が保存するピクセル値の数と各ピクセル値の範囲を定義します。

Mat のさまざまなアルゴリズムが各ピクセルの値を処理するためです。数値を処理して計算を実行するには、各数値の値の範囲をアルゴリズムに伝える必要があります。

3. その他

外部からマットを渡された場合。 Mat チャンネルの数と各値の値の範囲はどのように決定すればよいでしょうか?

CvType は、型 type を通じて対応する型値に変換できる関連クエリ メソッドを提供します。

例は次のとおりです。

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

さらに、クエリを実行することもできます。チャンネル数。

うわー

3.1 非推奨の CV_USRTYPE1

CvType.CV_USRTYPE1 の値はすでに CV_16F と同等です。したがって、このパラメータにも @deprecated アノテーションが付けられます。放棄されたことを表します

使用しないことをお勧めします。

3.2 ELEM_SIZE メソッド

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* チャネルを返す必要があります。

4. 概要

これで、OpenCV の CvType の紹介は終わりです。

使用中に Cv​​Type に関するエラーが発生した場合。したがって、ほとんどの場合、CvType に慣れていないことが原因です。

または、チャネルと深度の要件を持つアルゴリズムがエラーを引き起こすために使用されます。

以上がOpenCV および関連メソッドの CvType のさまざまなパラメーターの意味を理解するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事は51CTO.COMで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
10生成AIコーディング拡張機能とコードのコードを探る必要があります10生成AIコーディング拡張機能とコードのコードを探る必要がありますApr 13, 2025 am 01:14 AM

ねえ、忍者をコーディング!その日はどのようなコーディング関連のタスクを計画していますか?このブログにさらに飛び込む前に、コーディング関連のすべての問題について考えてほしいです。 終わり? - &#8217を見てみましょう

革新を調理する:人工知能がフードサービスを変革する方法革新を調理する:人工知能がフードサービスを変革する方法Apr 12, 2025 pm 12:09 PM

食品の準備を強化するAI まだ初期の使用中ですが、AIシステムは食品の準備にますます使用されています。 AI駆動型のロボットは、ハンバーガーの製造、SAの組み立てなど、食品の準備タスクを自動化するためにキッチンで使用されています

Pythonネームスペースと可変スコープに関する包括的なガイドPythonネームスペースと可変スコープに関する包括的なガイドApr 12, 2025 pm 12:00 PM

導入 Python関数における変数の名前空間、スコープ、および動作を理解することは、効率的に記述し、ランタイムエラーや例外を回避するために重要です。この記事では、さまざまなASPを掘り下げます

ビジョン言語モデル(VLM)の包括的なガイドビジョン言語モデル(VLM)の包括的なガイドApr 12, 2025 am 11:58 AM

導入 鮮やかな絵画や彫刻に囲まれたアートギャラリーを歩くことを想像してください。さて、各ピースに質問をして意味のある答えを得ることができたらどうでしょうか?あなたは尋ねるかもしれません、「あなたはどんな話を言っていますか?

MediaTekは、Kompanio UltraとDimenity 9400でプレミアムラインナップをブーストしますMediaTekは、Kompanio UltraとDimenity 9400でプレミアムラインナップをブーストしますApr 12, 2025 am 11:52 AM

製品のケイデンスを継続して、今月MediaTekは、新しいKompanio UltraやDimenity 9400を含む一連の発表を行いました。これらの製品は、スマートフォン用のチップを含むMediaTekのビジネスのより伝統的な部分を埋めます

今週のAIで:Walmartがファッションのトレンドを設定する前に設定します今週のAIで:Walmartがファッションのトレンドを設定する前に設定しますApr 12, 2025 am 11:51 AM

#1 GoogleはAgent2Agentを起動しました 物語:月曜日の朝です。 AI駆動のリクルーターとして、あなたはより賢く、難しくありません。携帯電話の会社のダッシュボードにログインします。それはあなたに3つの重要な役割が調達され、吟味され、予定されていることを伝えます

生成AIは精神障害に会います生成AIは精神障害に会いますApr 12, 2025 am 11:50 AM

私はあなたがそうであるに違いないと思います。 私たちは皆、精神障害がさまざまな心理学の用語を混ぜ合わせ、しばしば理解できないか完全に無意味であることが多い、さまざまなおしゃべりで構成されていることを知っているようです。 FOを吐き出すために必要なことはすべてです

プロトタイプ:科学者は紙をプラスチックに変えますプロトタイプ:科学者は紙をプラスチックに変えますApr 12, 2025 am 11:49 AM

今週公開された新しい研究によると、2022年に製造されたプラスチックの9.5%のみがリサイクル材料から作られていました。一方、プラスチックは埋め立て地や生態系に積み上げられ続けています。 しかし、助けが近づいています。エンジンのチーム

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい