Skip to content

Commit f4e0f99

Browse files
committed
校对到六十
1 parent 9ed0b74 commit f4e0f99

File tree

4 files changed

+69
-49
lines changed

4 files changed

+69
-49
lines changed

Question_51_60/README.md

Lines changed: 26 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -130,9 +130,9 @@ S最后的范围在$-1\leq S\leq 1$。零均值归一化积相关去掉平均值
130130

131131
答案 >> [answers/answer_57.py](answers/answer_57.py)
132132

133-
## 问题五十八:4邻接连通域标记
133+
## 问题五十八:$4-$邻接连通域标记
134134

135-
`seg.png`进行4邻接连通域标记吧
135+
`seg.png`进行$4-$邻接连通域标记吧
136136

137137
连通域标记(Connected Component Labeling)是将邻接的像素打上相同的标记的作业。
138138

@@ -149,40 +149,50 @@ S最后的范围在$-1\leq S\leq 1$。零均值归一化积相关去掉平均值
149149

150150
像这样的像素组成的被标记的块被称为连通区域(Connected Component)。
151151

152-
在这里我们为4​邻域的像素打上标记。另,在这里我们使用一种被称为Lookup Table(这里我没有找到确切的中文翻译,原文是“ルックアップテーブル”,在[这里](http://imagingsolution.blog.fc2.com/blog-entry-193.html)有对Lookup Table更详尽的解释)的东西。
152+
在这里我们为4邻域的像素打上标记。另,在这里我们使用一种被称为Lookup Table的东西。
153+
154+
> 这里我没有找到“ルックアップテーブル”确切的中文翻译,只是看到有些博客把这个叫“等价对列表”。我也不确定到底应该怎么说,所以就按音译了。另,“distination”好像是笔误,我还没去确认。
155+
>
156+
> ——gzr
153157
154158
Lookup Table是这样的:
155159

156-
```bash
157-
| Source | Distination |
158-
| 1 | 1 |
159-
| 2 | 2 |
160-
| 3 | 1 |
161-
```
160+
| Source | Distination |
161+
| :----: | :---------: |
162+
| 1 | 1 |
163+
| 2 | 2 |
164+
| 3 | 1 |
162165

163166
一开始被打上1标签的像素(即`Source=1`的像素)最终被分配到的标签为1(`Distination=1`);一开始被打上3标签的像素(即`Source =3`的像素)最终被分配的的标签也为1(`Distination=1`)。
164167

165168
算法如下:
166169

167170
1. 从左上角开始进行光栅扫描。
168-
2. 如果当前遍历到的像素`i(x,y)`是黑像素的什么也不干。如果是白像素,考察该像素的上方像素`i(x,y-1)`和左边像素`i(x-1,y)`,如果两个的取值都为0,将该像素分配一个新的标签(在这里我们用数字做标签,即1,2,原文是说“最後に割り当てたラベル + 1 を割り当てる”,直译就是分配给该像素将最后分配的标签加1数值的标签)。
171+
172+
2. 如果当前遍历到的像素`i(x,y)`是黑像素的什么也不干。如果是白像素,考察该像素的上方像素`i(x,y-1)`和左边像素`i(x-1,y)`,如果两个的取值都为0,将该像素分配一个新的标签。
173+
174+
> 在这里我们用数字做标签,即1,2。原文是说“最後に割り当てたラベル + 1 を割り当てる”,直译就是分配给该像素将最后分配的标签加1数值的标签。
175+
>
176+
> ——gzr
177+
169178
3. 如果两个像素中有一个不为0(也就是说已经分配了标签),将上方和左边的像素分配的标签中数值较小的那一个(0除外)分配给当前遍历到的像素`i(x,y)`。在这里,将上方像素和左边像素的标签写入`Lookup Table``Source`,将当前遍历的像素`i(x,y)`分配的标签写入`Distination`
179+
170180
4. 最后,对照`Lookup Table`,对像素分配的标签由`Source`变为`Distination`
171181

172182

173-
像这样的话,邻接像素就可以打上同样的标签了。因为这里是做4邻接连通域标记,所以我们只用考察上方像素和左边像素。
183+
像这样的话,邻接像素就可以打上同样的标签了。因为这里是做$4-$邻接连通域标记,所以我们只用考察上方像素和左边像素。
174184

175185
| 输入 (seg.png) | 输出(answers/answer_58.png) |
176186
| :------------: | :-------------------------: |
177187
| ![](seg.png) | ![](answers/answer_58.png) |
178188

179189
答案 >> [answers/answer_58.py](answers/answer_58.py)
180190

181-
## 问题五十九:8邻接连通域标记
191+
## 问题五十九:$8-$邻接连通域标记
182192

183-
在这里我们将问题58变为8邻接连通域标记
193+
在这里我们将问题58变为$8-$邻接连通域标记
184194

185-
要进行8邻接连通域标记,我们需要考察`i(x-1,y-1)``i(x, y-1)``i(x+1,y-1)``i(x-1,y)`这4个像素。
195+
要进行$8-$邻接连通域标记,我们需要考察`i(x-1,y-1)``i(x, y-1)``i(x+1,y-1)``i(x-1,y)`这4个像素。
186196

187197
| 输入 (seg.png) | 输出(answers/answer_59.png) |
188198
| :------------: | :-------------------------: |
@@ -192,9 +202,9 @@ Lookup Table是这样的:
192202

193203
## 问题六十: 透明混合(Alpha Blending)
194204

195-
`imori.jpg``thorino.jpg`按照6:4的比例透明混合吧
205+
`imori.jpg``thorino.jpg`按照$6:4$的比例透明混合吧
196206

197-
透明混合即通过设定透明度(Alpha值)来设定图像透明度的方法。在 OpenCV 中虽然没有透明度这个参数,但在PIL等库中有。在这里我们手动设定透明度。
207+
透明混合即通过设定透明度(Alpha值)来设定图像透明度的方法。在OpenCV中虽然没有透明度这个参数,但在PIL等库中有。在这里我们手动设定透明度。
198208

199209
将两张图片重合的时候,这个方法是有效的。
200210

Question_51_60/README.pdf

760 KB
Binary file not shown.

Question_61_70/README.md

Lines changed: 42 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,47 +1,45 @@
1-
# Q. 61 - 70
1+
# 问题六十一至七十
22

3-
## Q.61. 4-邻接的连接数
3+
## 问题六十一:$4-$邻接的连接数
44

55
> [参考](http://ftp.gongkong.com/UploadFile/datum/2008-10/2008101416013500001.pdf)
66
>
77
> 关于这个我没有找到什么中文资料,只有两个差不多的 PPT 文档。下面的译法参照这个 PPT。
88
>
99
> ——gzr
1010
11-
请根据4-邻接的连接数将`renketsu.png`上色。
11+
请根据$4-$邻接的连接数将`renketsu.png`上色。
1212

1313
4连接数可以用于显示附近像素的状态。通常,对于所关注像素x0(x,y)不为零的情况,邻域定义如下:
14-
15-
```bash
16-
x4(x-1,y-1) x3(x,y-1) x2(x+1,y-1)
17-
x5(x-1,y) x0(x,y) x1(x+1,y)
18-
x6(x-1,y+1) x7(x,y+1) x8(x+1,y+1)
19-
```
20-
21-
这里,4-邻接的连接数通过以下等式计算:
22-
23-
```bash
24-
S = (x1 - x1 x2 x3) + (x3 - x3 x4 x5) + (x5 - x5 x6 x7) + (x7 - x7 x8 x1)
25-
```
26-
27-
S的取值范围为[0,4]
28-
- S = 0: 内部点
29-
- S = 1:端点
30-
- S = 2​:连接点
31-
- S = 3​:分支点
32-
- S = 4:交叉点
14+
$$
15+
\begin{matrix}
16+
x_4(x-1,y-1)& x_3(x,y-1)& x_2(x+1,y-1)\\
17+
x_5(x-1,y) & x_0(x,y) & x_1(x+1,y)\\
18+
x_6(x-1,y+1)& x_7(x,y+1)& x_8(x+1,y+1)
19+
\end{matrix}
20+
$$
21+
这里,$4-$邻接的连接数通过以下等式计算:
22+
$$
23+
S = (x_1 - x_1\ x_2\ x_3) + (x_3 - x_3\ x_4\ x_5) + (x_5 - x_5\ x_6\ x_7) + (x_7 - _x7\ x_8\ x_1)
24+
$$
25+
$S$的取值范围为$[0,4]$:
26+
- $S = 0$: 内部点
27+
- $S = 1$:端点
28+
- $S = 2$​:连接点
29+
- $S = 3$​:分支点
30+
- $S = 4$:交叉点
3331

3432
| 输入 (renketsu.png) | 输出(answers/answer_61.png) |
3533
| :-----------------------------------: | :--------------------------------------------: |
3634
| <img src="renketsu.png" width="50px"> | <img src="answers/answer_61.png" width="50px"> |
3735

3836
答案 >> [answers/answer_61.py](answers/answer_61.py)
3937

40-
## Q.62. 8-邻接的连接数
38+
## 问题六十二:$8-$邻接的连接数
4139

42-
请根据8-邻接的连接数将`renketsu.png`上色。
40+
请根据$8-$邻接的连接数将`renketsu.png`上色。
4341

44-
这里,8-邻接的连接数通过以下等式计算:
42+
这里,$8-$邻接的连接数通过以下等式计算:
4543

4644
```bash
4745
S = (x1 - x1 x2 x3) + (x3 - x3 x4 x5) + (x5 - x5 x6 x7) + (x7 - x7 x8 x1)
@@ -54,17 +52,17 @@ S = (x1 - x1 x2 x3) + (x3 - x3 x4 x5) + (x5 - x5 x6 x7) + (x7 - x7 x8 x1)
5452

5553
答案 >> [answers/answer_62.py](answers/answer_62.py)
5654

57-
## Q.63. 细化处理
55+
## 问题六十三:细化处理
5856

5957
`gazo.png`进行细化处理吧!
6058

6159
细化是将线条宽度设置为1的过程,按照下面的算法进行处理:
6260

6361
1. 从左上角开始进行光栅扫描;
64-
2. 如果x0(x,y)=0,不处理。如果x0=(x,y)=1,满足下面三个条件时,x0=0
65-
遍历到的像素4近邻像素的取值有一个以上的0
66-
x0的4连接数有1;
67-
x0的8近邻像素中有三个以上取值为1
62+
2. 如果$x_0(x,y)=0$,不处理。如果$x_0(x,y)=1$,满足下面三个条件时,令$x_0=0$
63+
* 遍历到的像素$4-$近邻像素的取值有一个以上的0
64+
* x0的4连接数有1;
65+
* x0的$8-$近邻像素中有三个以上取值为1
6866
3. 重复光栅扫描,直到步骤2中像素值改变次数为0。
6967

7068
用于细化的算法有 Hilditch 算法(问题64),Zhang-Suen 算法(问题65),田村算法等。
@@ -75,10 +73,22 @@ S = (x1 - x1 x2 x3) + (x3 - x3 x4 x5) + (x5 - x5 x6 x7) + (x7 - x7 x8 x1)
7573

7674
答案 >> [answers/answer_63.py](answers/answer_63.py)
7775

78-
## Q.64. Hilditch 细化算法
76+
## 问题六十四:Hilditch 细化算法
7977

78+
`gazo.png`进行 Hilditch 细化算法处理吧!算法如下:
79+
80+
1. 从左上角开始进行光栅扫描;
8081

81-
`gazo.png`进行 Hilditch 细化算法处理吧!
82+
1. x0(x,y)=0ならば、処理なし。x0(x,y)=1ならば次の5条件を満たす時にx0=-1に変える。
83+
1. 注目画素の4近傍に0が一つ以上存在する
84+
2. x0の8-連結数が1である
85+
3. x1〜x8の絶対値の合計が2以上
86+
4. x0の8近傍に1が1つ以上存在する
87+
5. xn(n=1〜8)全てに対して以下のどちらかが成り立つ
88+
- xnが-1以外
89+
- xnを0とした時、x0の8-連結数が1である
90+
2. 各画素の-1を0に変える
91+
3. 一回のラスタスキャンで3の変更数が0になるまで、ラスタスキャンを繰り返す。
8292

8393
## Q.65. Zhang-Suen 细化算法
8494

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
>
1111
> * 各个README文件在完成基本校对之后会转为PDF文件。PDF文件阅读效果最佳。当前进度:
1212
>
13-
> ⣿⣿⣿⣿⣿⣀⣀⣀⣀⣀ 50%
13+
> ⣿⣿⣿⣿⣿⣀⣀⣀⣀ 60%
1414
>
1515
> 感谢!
1616
>

0 commit comments

Comments
 (0)