|
| 1 | +--- |
| 2 | +sidebar_position: 2 |
| 3 | +--- |
| 4 | + |
| 5 | +import ViewSource from "@site/src/components/ViewSource"; |
| 6 | +import Answer from "@site/src/components/Answer"; |
| 7 | + |
| 8 | +# 画像の表現 |
| 9 | + |
| 10 | +Python で画像を表現してみましょう。 |
| 11 | + |
| 12 | +## 白黒の表現 |
| 13 | + |
| 14 | +東京大学がアルゴリズム入門の授業用に作った `ita` ライブラリを使えば、簡単に画像を表現できます。 |
| 15 | + |
| 16 | +次のように、0 と 1 が格納された二次元配列を作って、それを `ita` ライブラリの `image_show` 関数に与えれば、白黒の画像を表現できます。0 が黒、1 が白となります。 |
| 17 | + |
| 18 | +<ViewSource path="/image/black_and_white.ipynb" /> |
| 19 | + |
| 20 | +### 練習問題 |
| 21 | + |
| 22 | +`ita` ライブラリを使って次のような画像を作ってみましょう。 |
| 23 | + |
| 24 | + |
| 25 | + |
| 26 | +<Answer> |
| 27 | + <ViewSource path="/image/lattice_pattern.ipynb" /> |
| 28 | +</Answer> |
| 29 | + |
| 30 | +## グレースケール |
| 31 | + |
| 32 | +0 から 1 の間で数値を変化させることで、グレースケールを表現することもできます。 |
| 33 | + |
| 34 | +<ViewSource path="/image/grayscale.ipynb" /> |
| 35 | + |
| 36 | +## カラー画像 |
| 37 | + |
| 38 | +赤、緑、青の順に 0 から 1 の範囲で指定することで、カラー画像を表現することもできます。 |
| 39 | + |
| 40 | +<ViewSource path="/image/color.ipynb" /> |
| 41 | + |
| 42 | +:::tip 光の三原色 |
| 43 | + |
| 44 | +光の三原色は、赤、緑、青です。この 3 つを混ぜることで、すべての色を表現することが可能です。 |
| 45 | + |
| 46 | +これを使ったのが、RGB です。これは、赤(<span style={{color: "red"}}><span style={{fontWeight: "bold"}}>R</span>ed</span>)、緑(<span style={{color: "green"}}><span style={{fontWeight: "bold"}}>G</span>reen</span>)、青(<span style={{color: "blue"}}><span style={{fontWeight: "bold"}}>B</span>lue</span>)の頭文字です。 |
| 47 | + |
| 48 | +コンピューターでは、0 から 255 の 256 段階でそれぞれの色を表すので、$256^3 = 16777216$ 通りの表現が可能です。 |
| 49 | + |
| 50 | +::: |
| 51 | + |
| 52 | +:::tip 色の三原色 |
| 53 | + |
| 54 | +色にも三原色があります。 |
| 55 | +色の三原色は、シアン、マゼンタ、イエローです。 |
| 56 | + |
| 57 | +これを使ったのが、CMYK です。インクなどに使われます。これは、シアン(<span style={{color: "#00ffff"}}><span style={{fontWeight: "bold"}}>C</span>yan</span>)、マゼンタ(<span style={{color: "#ff00ff"}}><span style={{fontWeight: "bold"}}>M</span>agenta</span>)、イエロー(<span style={{color: "#ffff00"}}><span style={{fontWeight: "bold"}}>Y</span>ellow</span>)の頭文字です。K は Blac**K**からだと言われますが、キープレート(**K**ey plate)からだそうです。K が入っているのは、インク代を節約するためと綺麗な黒を表現するためです。 |
| 58 | + |
| 59 | +::: |
| 60 | + |
| 61 | +### 練習問題 |
| 62 | + |
| 63 | +次のような画像を作ってみましょう。 |
| 64 | + |
| 65 | + |
| 66 | + |
| 67 | +<Answer> |
| 68 | + <ViewSource path="/image/black_to_red.ipynb" /> |
| 69 | +</Answer> |
| 70 | + |
| 71 | +## 練習問題 |
| 72 | + |
| 73 | +### 練習問題 1 |
| 74 | + |
| 75 | +左から右にかけて、黒色から緑色に色が変化するグラデーション画像を作ってみましょう。 |
| 76 | + |
| 77 | + |
| 78 | + |
| 79 | +<Answer> |
| 80 | + <ViewSource path="/image/black_to_green.ipynb" /> |
| 81 | +</Answer> |
| 82 | + |
| 83 | +### 練習問題 2 |
| 84 | + |
| 85 | +左から右にかけて、白色から青色に色が変化するグラデーション画像を作ってみましょう。 |
| 86 | + |
| 87 | + |
| 88 | + |
| 89 | +<Answer> |
| 90 | + |
| 91 | +加重平均をとると、うまくできます。 |
| 92 | + |
| 93 | +<ViewSource path="/image/white_to_blue.ipynb" /> |
| 94 | + |
| 95 | +</Answer> |
| 96 | + |
| 97 | +### 練習問題 3 |
| 98 | + |
| 99 | +左上が白、右上が赤、左下が緑、右下が青となるようなグラデーション画像を作ってみましょう。 |
| 100 | + |
| 101 | + |
| 102 | + |
| 103 | +<Answer> |
| 104 | + |
| 105 | +二次元で加重平均をとると、うまくできます。 |
| 106 | + |
| 107 | +<ViewSource path="/image/gradation.ipynb" /> |
| 108 | + |
| 109 | +</Answer> |
0 commit comments