Skip to content

Commit c400bc3

Browse files
authored
Merge pull request #164 from chvmvd/main
Add week6 article
2 parents 86d2144 + d05f66d commit c400bc3

15 files changed

+829
-0
lines changed
6.66 KB
Loading
3.88 KB
Loading

docs/02advanced/02image/gradation.png

12.1 KB
Loading

docs/02advanced/02image/index.mdx

Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
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+
![lattice patter](lattice_pattern.drawio.svg)
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+
![black to red](black_to_red.drawio.png)
66+
67+
<Answer>
68+
<ViewSource path="/image/black_to_red.ipynb" />
69+
</Answer>
70+
71+
## 練習問題
72+
73+
### 練習問題 1
74+
75+
左から右にかけて、黒色から緑色に色が変化するグラデーション画像を作ってみましょう。
76+
77+
![black to green](black_to_green.png)
78+
79+
<Answer>
80+
<ViewSource path="/image/black_to_green.ipynb" />
81+
</Answer>
82+
83+
### 練習問題 2
84+
85+
左から右にかけて、白色から青色に色が変化するグラデーション画像を作ってみましょう。
86+
87+
![white to blue](white_to_blue.png)
88+
89+
<Answer>
90+
91+
加重平均をとると、うまくできます。
92+
93+
<ViewSource path="/image/white_to_blue.ipynb" />
94+
95+
</Answer>
96+
97+
### 練習問題 3
98+
99+
左上が白、右上が赤、左下が緑、右下が青となるようなグラデーション画像を作ってみましょう。
100+
101+
![gradation](gradation.png)
102+
103+
<Answer>
104+
105+
二次元で加重平均をとると、うまくできます。
106+
107+
<ViewSource path="/image/gradation.ipynb" />
108+
109+
</Answer>
Lines changed: 41 additions & 0 deletions
Loading
6.59 KB
Loading

docs/index.mdx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ Python やアルゴリズムについて簡単にまとめていこうかなと
2424

2525
## 更新履歴
2626

27+
1/3 第六週の分を執筆 画像の表現 第九週の分を増訂 計算量
28+
2729
1/1 第九週の分を執筆 モンテカルロ法
2830

2931
12/25 第十週の分を執筆 探索

0 commit comments

Comments
 (0)