Discover millions of ebooks, audiobooks, and so much more with a free trial

Only $11.99/month after trial. Cancel anytime.

二次元コンピュータグラフィックス: 視覚領域の探索: コンピューター ビジョンにおける 2 次元コンピューター グラフィックス
二次元コンピュータグラフィックス: 視覚領域の探索: コンピューター ビジョンにおける 2 次元コンピューター グラフィックス
二次元コンピュータグラフィックス: 視覚領域の探索: コンピューター ビジョンにおける 2 次元コンピューター グラフィックス
Ebook203 pages21 minutes

二次元コンピュータグラフィックス: 視覚領域の探索: コンピューター ビジョンにおける 2 次元コンピューター グラフィックス

Rating: 0 out of 5 stars

()

Read preview

About this ebook

2次元コンピュータグラフィックスとは


2 寸法 コンピュータ グラフィックスは、主に 2 次元モデルから、それらに特有の技術によってデジタル画像をコンピュータベースで生成するものです。このような技術を構成するコンピューター サイエンスの分野、またはモデル自体を指すこともあります。


どのようなメリットがあるのか


(I) 以下のトピックに関する洞察と検証:


第 1 章: 2 寸法 コンピュータ グラフィックス


第 2 章: 直交行列


第 3 章: 楕円体


第 4 章: 回転 (数学)


第 5 章: 変換行列


第 6 章: 回転行列


第 7 章: 3 次元での回転形式主義


第 8 章: 軸角度の表現


第 9 章: 運動学


第 10 章: 3次元回転演算子


(II) 2 次元コンピュータ グラフィックスに関する一般のトップの質問に答える。


(III) 多くの分野における 2 次元コンピュータ グラフィックスの使用例。


この本は誰に向けたものなのか


専門家、大学生、大学院生、愛好家、趣味人、あらゆる種類の 2 次元コンピュータ グラフィックスに関する基礎的な知識や情報を超えて学びたい人。

Language日本語
Release dateMay 5, 2024
二次元コンピュータグラフィックス: 視覚領域の探索: コンピューター ビジョンにおける 2 次元コンピューター グラフィックス

Related to 二次元コンピュータグラフィックス

Titles in the series (100)

View More

Related ebooks

Reviews for 二次元コンピュータグラフィックス

Rating: 0 out of 5 stars
0 ratings

0 ratings0 reviews

What did you think?

Tap to rate

Review must be at least 10 words

    Book preview

    二次元コンピュータグラフィックス - Fouad Sabry

    第1章 2次元コンピュータグラフィックス

    通常は 2 次元モデル (2D 幾何学的モデル、テキスト、デジタル画像など) からコンピューター上でデジタル画像を生成し、これらの種類のモデルに合わせて調整された方法を使用することは、2D コンピューター グラフィックスと呼ばれます。モデル自体、またはそれらを含むコンピューターサイエンスの分野のいずれかを意味する可能性があります。

    タイポグラフィ、地図作成、製図、広告などはすべて、2Dコンピューターグラフィックスを基盤として構築されたアプリケーションの例です。このような場合、2 次元モデルは、画像をより直接的に制御できるため、3 次元コンピューター グラフィックスよりも好まれます。これは、2次元画像が現実世界のオブジェクトの単なる表現ではないためです。また、追加のセマンティックな価値もあります(そのアプローチは、タイポグラフィよりも写真に似ています)。

    2D コンピューター グラフィックス技術に基づくドキュメントの説明は、デスクトップ パブリッシング、エンジニアリング、ビジネスなど、多くの分野で対応するデジタル画像よりも大幅に小さくなる可能性があります。この表現は、さまざまな出力デバイスに対応するためにさまざまな解像度でレンダリングできるため、用途も広くなります。これが、ドキュメントや画像のアーカイブと転送に2Dグラフィックファイルが一般的に使用される理由です。

    1950年代のベクターグラフィックスデバイスは、最初の2Dコンピュータグラフィックスへの道を開きました。その後の数十年で、ラスターベースのデバイスが標準になりました。この分野での最も重要なイノベーションの 2 つは、PostScript 言語と X Window System プロトコルです。

    2D グラフィックス モデルでは、ジオメトリック モデル (ベクター グラフィックスとも呼ばれます)、デジタル イメージ (ラスター グラフィックスとも呼ばれます)、組版するテキスト (内容、フォント スタイルとサイズ、色、位置、方向によって記述)、数学関数と方程式、およびその他の種類の情報の組み合わせが可能です。平行移動、回転、スケーリングなどの 2 次元の幾何学的変換により、これらのパーツを簡単かつ正確に操作できます。自己レンダリング方式(画像ピクセルに色を任意に割り当てるプロセス)を持つオブジェクトは、オブジェクト指向グラフィックスで画像を記述します。オブジェクト指向プログラミングのパラダイムでは、複雑なモデルはサブモデルから構築されます。

    ユークリッド幾何学の原則、幾何学では、平行移動はすべての点をある方向に一定の距離だけ移動します。

    「剛体運動」の 1 つのタイプは並進です。その他のタイプには、回転と反射があります。

    平行移動は、各点に一定のベクトルを追加するプロセス、または座標系の原点が移動したプロセスと考えることもできます。

    変換演算子 は、次のような演算子です T_\mathbf{\delta} 。 T_\mathbf{\delta} f(\mathbf{v}) = f(\mathbf{v}+\mathbf{\delta}).

    v が定数ベクトルの場合、平行移動 Tv  は Tv(p) = p + v として機能します。

    理論的には、T が平行移動の場合、A が部分集合であり、T が関数である場合、A の T による平行移動は T の下の A のイメージです。

    Tv による A の翻訳は、多くの場合、A + v と表記されます。

    ユークリッド空間での平行移動もアイソメトリです。すべての並進の集合は平行移動群 T と呼ばれ、それはユークリッド群 E の通常の部分群であり、空間自体 (n ) と同型である。直交群 O は商群 E(n) の同型である。

    E(n ) / T ≅ O(n )です。

    線形変換とは異なり、平行移動はアフィン変換であり、平行移動演算子は通常、行列で表され、同次座標が使用される場合は線形になります。

    したがって、4つの同次座標をw =(wx、wy、wz、1)として使用して、3次元ベクトルw =(wx、wy、wz)を記述します。

    オブジェクトをベクトル v で平行移動する場合、各同次ベクトル p (同次座標内) にこの平行移動行列を乗算する必要があります。

    T_{\mathbf{v}} = \begin{bmatrix} 1 & 0 & 0 & v_x \\ 0 & 1 & 0 & v_y \\ 0 & 0 & 1 & v_z \\ 0 & 0 & 0 & 1 \end{bmatrix}

    乗算の積は、以下の表のようになります。

    T_{\mathbf{v}} \mathbf{p} = \begin{bmatrix} 1 & 0 & 0 & v_x \\ 0 & 1 & 0 & v_y\\ 0 & 0 & 1 & v_z\\ 0 & 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} p_x \\ p_y \\ p_z \\ 1 \end{bmatrix} = \begin{bmatrix} p_x + v_x \\ p_y + v_y \\ p_z + v_z \\ 1 \end{bmatrix} = \mathbf{p} + \mathbf{v}

    平行移動行列の逆行列を見つけるには、ベクトルの方向を反転させるだけです。

    T^{-1}_{\mathbf{v}} = T_{-\mathbf{v}} . \!

    同様に、ベクトルを乗算すると、2つの平行移動行列の積が得られます。

    T_{\mathbf{u}}T_{\mathbf{v}} = T_{\mathbf{u}+\mathbf{v}} . \!

    ベクトル加算は可換であるため、平行移動行列の乗算は可換です (任意の行列の乗算とは異なります)。

    線形代数における回転行列は、ユークリッド空間でオブジェクトを回転させる行列です。

    R={\begin{bmatrix}\cos \theta &-\sin \theta \\\sin \theta &\cos \theta \\\end{bmatrix}}

    は、xy 直交平面内の点を、直交座標系の原点を中心とする角度 θ だけ反時計回りに回転します。

    回転行列 R は、回転に影響を与えるために使用されます。 各点の座標は、点の座標で構成される垂直方向のベクトルとして表す必要があります。

    行列乗算 Rv は、回転したベクトルを生成します。

    明確にするために、ゼロベクトル(つまり、ゼロ度座標に基づく行列乗算の影響を受けません)は、座標系の原点の周りの回転のみが回転行列によって記述できます。

    このような回転は、「回転行列」の助けを借りて代数的に簡単に記述でき、幾何学的計算、物理学、およびグラフィカルインターフェイスで重要な役割を果たします。

    平面の範囲内では、回転は回転の角度θによって簡単に記述でき 、あるいは、22回転行列の4つのエントリを使用してそれを表すことができます。

    3次元に関しては、オイラーの回転定理も参照のこと、これは、任意の回転は、角度と3要素ベクトルに縮小できる単一の不変軸の周りの角回転として再鋳造できると述べています。

    ただし、 あるいは、33回転行列の9つのエントリで表すこともできます。

    3 を超える次元では、回転が使用されることはめったにありません。回転変位は、マトリックスを使用して表すことができるものであり、単一の軸や角度が関連付けられていません。

    回転行列は、エントリがすべて実数である正方行列です。より正確には、行列式 1 の直交行列です。

    R^{T} = R^{-1}, \det R = 1\, .

    すべての n 行 n 列の特殊な直交行列の集合は、SO (n) と呼ばれるグループを形成します。

    以下は、すべての 2 次元回転行列が取る形式です。

    R(\theta )={\begin{bmatrix}\cos \theta &-\sin \theta \\\sin \theta &\cos \theta \\\end{bmatrix}} .

    次の行列を乗算すると、列ベクトルが回転します。

    {\begin{bmatrix}x'\\y'\\\end{bmatrix}}={\begin{bmatrix}\cos \theta &-\sin \theta \\\sin \theta &\cos \theta \\\end{bmatrix}}{\begin{bmatrix}x\\y\\\end{bmatrix}}

    .

    回転後、元の点(x,y)の座標は次のようになります。

    x'=x\cos \theta -y\sin \theta \, 、 y'=x\sin \theta +y\cos \theta \, 。

    ベクトルの回転方向は、θ が正の場合、反時計回りです (例:

    90°)、θが負の場合は時計回り(例:

    -90°).

    R(-\theta )={\begin{bmatrix}\cos \theta &\sin \theta \\-\sin \theta &\cos \theta \\\end{bmatrix}}\,

    .

    右手のデカルト系の場合、x軸に沿って右向き、y軸に沿って上向きに、回転R(θ)は反時計回りです。

    xが右を向いてyが下を向いて左手のデカルト系が機能するためには、R(θ)は時計回りです。

    数学では、このような珍しい視点が採用されることはめったにありませんが、2Dコンピュータグラフィックスでは、通常、左上から始まり、ページを下回りに時計回りに移動するのが一般的です。

    行列によって生成される回転の意味を変更するその他の可能な規則については、以下で説明します。

    特に便利なのは、90°と180°の回転の行列です。

    R(90^\circ) = \begin{bmatrix} 0 & -1 \\[3pt] 1 & 0 \\ \end{bmatrix} (反時計回りに90°回転)

    R(180^\circ) = \begin{bmatrix} -1 & 0 \\[3pt] 0 & -1 \\ \end{bmatrix} (両方向に180°回転 – 半回転)

    R(270^\circ) = \begin{bmatrix} 0 & 1 \\[3pt] -1 & 0 \\ \end{bmatrix} (反時計回りに270°回転、時計回りに90°回転と同じ)

    均一スケーリングは、等方性スケーリング、同次膨張、およびホモセティとも呼ばれ、ユークリッド幾何学における線形変換であり、オブジェクトをすべての方向に同じスケール係数で拡大または縮小します。すべてを同じ係数でスケーリングすると、最終結果は幾何学的に元のものと似ています。ほとんどの場合、合同形状はスケール係数 1 で類似したものとして扱うことができます。(一部の教科書では、正方形が長方形であったり、円が楕円であったりする可能性を除外しているように、これを明示的に除外している教科書もあります。

    より一般的なアプローチは、各軸に異なるスケール係数を使用することです。スケーリング係数の少なくとも1つが他のスケーリングと異なる場合、不均一なスケーリング(異方性スケーリング、不均一な膨張)があります。方向スケーリングまたはストレッチは、これの特殊なケースです (一方向)。オブジェクトを不均等に拡大縮小すると、結果として形状が変化します。たとえば、辺がスケーリング軸に平行でない正方形は、長方形または平行四辺形になります(軸に平行な線間の角度は保持されますが、すべての角度は保持されません)。

    スケーリング行列は、スケーリングの表現です。

    ベクトル v = (vx, vy, vz) でオブジェクトをスケーリングするには、各点 p = (px, py, pz) に次のスケーリング行列を乗算する必要があります。

    S_{v}={\begin{bmatrix}v_{x}&0&0\\0&v_{y}&0\\0&0&v_{z}\\\end{bmatrix}}.

    乗算の積は、以下の表のようになります。

    S_{v}p={\begin{bmatrix}v_{x}&0&0\\0&v_{y}&0\\0&0&v_{z}\\\end{bmatrix}}{\begin{bmatrix}p_{x}\\p_{y}\\p_{z}\end{bmatrix}}={\begin{bmatrix}v_{x}p_{x}\\v_{y}p_{y}\\v_{z}p_{z}\end{bmatrix}}.

    3 係数尺度は、オブジェクトの直径を尺度係数間の係数だけ縮小し、表面積を 2 つの尺度係数の最小積と最大積の間の係数で増加させ、体積を 3 つの尺度係数すべての積分だけ減少させるようにオブジェクトの寸法を変更します。

    スケーリングは、スケーリング係数が等しい (vx = v,y = v, z) 場合にのみ一様です。

    スケール係数の 1 つを除くすべてが 1 の場合、状況は次のようになります。 スケーリングは方向性があります。

    vx = vy = vz = kの場合、係数kによるスケーリングは拡大または膨張とも呼ばれ、面積はk²倍、体積はk3倍に増加します。

    最も広い意味では、「スケーリング」とは、行列を対角化できるアフィン変換を指します。スケーリングの 3 次元が互いに平行でない場合、これもケースと見なされます。また、1 つ以上のスケール係数が 0 (プロジェクションなど) または負のシナリオも含まれます。後者は平面内の反射の一般化に相当し、2本の線がどちらにも垂直である必要のない平面と交差する点での反射を取ることによって実現されます。

    コンピュータグラフィックスの領域に典型的な射影幾何学の領域では、点を表すために同次座標が使用されます。

    ベクトル v = (vx, vy, vz) でオブジェクトをスケーリングするには、各同次座標ベクトル p = (px, py, pz, この射影変換行列に (1, 1) を掛ける必要があります。

    S_{v}={\begin{bmatrix}v_{x}&0&0&0\\0&v_{y}&0&0\\0&0&v_{z}&0\\0&0&0&1\end{bmatrix}}.

    乗算の積は、以下の表のようになります。

    S_{v}p={\begin{bmatrix}v_{x}&0&0&0\\0&v_{y}&0&0\\0&0&v_{z}&0\\0&0&0&1\end{bmatrix}}{\begin{bmatrix}p_{x}\\p_{y}\\p_{z}\\1\end{bmatrix}}={\begin{bmatrix}v_{x}p_{x}\\v_{y}p_{y}\\v_{z}p_{z}\\1\end{bmatrix}}.

    このスケーリング行列を使用すると、同次座標の 4 番目の成分が他の 3 つの成分の分母と見なすことができるため、共通係数 s による均一スケーリング (一様スケーリング) を実現できます。

    S_{v}={\begin{bmatrix}1&0&0&0\\0&1&0&0\\0&0&1&0\\0&0&0&{\frac {1}{s}}\end{bmatrix}}.

    各ベクトルについて 、p =(px、 py、pz、1の場合)

    S_{v}p={\begin{bmatrix}1&0&0&0\\0&1&0&0\\0&0&1&0\\0&0&0&{\frac {1}{s}}\end{bmatrix}}{\begin{bmatrix}p_{x}\\p_{y}\\p_{z}\\1\end{bmatrix}}={\begin{bmatrix}p_{x}\\p_{y}\\p_{z}\\{\frac {1}{s}}\end{bmatrix}}

    これは、次のように標準化されます。

    {\begin{bmatrix}sp_{x}\\sp_{y}\\sp_{z}\\1\end{bmatrix}}.

    空白の「キャンバス」ラスターマップ(ピクセルの配列、ビットマップとも呼ばれます)に単純な色のパッチを正しい順序で描画、ペイント、または貼り付けることは、複雑な画像を作成する簡単な方法です。具体的には、キャンバスはディスプレイのフレーム バッファーを表すことができます。

    ピクセルカラー設定を自分で処理するアプリケーションもありますが、大部分のアプリケーションはマシンのグラフィックカードまたは2Dグラフィックライブラリを使用して次のタスクを実行します。

    キャンバスの指定された座標に画像を挿入します。一連の文字を、指定されたフォントで、指定された場所と角度で入力します。3つの角を持つ三角形、固定中心と指定された半径を持つ円などを描きます。デジタル ペンを使用して、指定した幅の直線、円、またはその他の単純な曲線を描きます。

    ユーザーが選択した色は、図形や線を描画するために使用されます。カラーグラデーションは多くのカードやライブラリで利用でき、グラデーションの背景や影などを作るのに便利です(グーローシェーディングも参照)。デジタル画像などのテクスチャを使用して、ピクセルで使用される色を決定することもできます(したがって、摩擦スクリーントーンや、以前は漫画でしか利用できなかった伝説のチェッカーペイントをエミュレートします)。

    色がピクセルに適用されると、通常、その色はそれまでそこにあった色に置き換わります。ただし、多くのプログラムでは、ペイント時に透明色と半透明色を使用でき、基になる色の値のみが変更されます。2 つの色のビットごとの排他的

    Enjoying the preview?
    Page 1 of 1