1 Star 0 Fork 0

yanle2026 / ImageProcessing100Wen

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

图像处理 100 问!!

  • 日本语本当苦手,==翻译出错还请在issue指正或直接发起 PR。代码算法方面的问题请往原repo提。==现阶段我并没有做这些题目(捂脸),只是翻译而已,因此算法细节可能没有翻译到位。不太好翻译的地方我也会在一定程度上意译自行发挥,请各位谅解。后续在写代码的途中会对翻译有所更正。我会尽量附上英文术语,有翻译不清楚的地方还请参照原文、英语及代码。

  • 关于$\LaTeX$公式渲染问题:

    • 在线阅读建议安装MathJax Plugin for Github插件获得其实不太良好的公式阅读体验;
    • 离线阅读建议使用可以渲染$\LaTeX$公式的Markdown编辑器/阅读器,如Typora(我是用这个编写和转换PDF的)和MWeb。VSCode使用者建议安装Markdown All in One插件渲染$\LaTeX$公式;
    • 各个README文件在完成基本校对之后会转为PDF文件。PDF文件阅读效果最佳。
  • 有签名戳——gzr的引用部分和脚注都是译注。译注可能会打扰大家阅读,请各位谅解。

感谢!

——gzr

English is here (KuKuXia translates into English)

https://github.com/KuKuXia/Image_Processing_100_Questions

Chinese is here (gzr2017, my ex-colleague, translates into Chinese)

https://github.com/gzr2017/ImageProcessing100Wen

Description

为图像处理初学者设计的100个问题完成了啊啊啊啊啊(´;ω;`)

和蝾螈一起学习基本的图像处理知识,理解图像处理算法吧!解答这里的提出的问题请不要调用OpenCVAPI自己动手实践吧!虽然包含有答案,但不到最后请不要参考。一边思考,一边完成这些问题吧!

  • 问题不是按照难易程度排序的。虽然我尽可能地提出现在流行的问题,但在想不出新问题的情况下也会提出一些没怎么听说过的问题(括弧笑)。

  • **这里的内容参考了各式各样的文献,因此也许会有不对的地方,请注意!**如果发现了错误还请发起PR ,帮助我改正!!

  • 【注意】使用这个页面造成的任何事端,本人不负任何责任。请您自担风险。

    俺也一样。使用这个页面造成的任何事端,本人不负任何责任。

    ——gzr

喜欢Python和C++的人来试试吧♡(最近新加了JavaScript呢)

2019.5.14. これ金にならんかなぁ…

如果有什么意见或者成绩的话也请一并告诉我!

如果这对大家有用的话,我们也将接受捐赠(括弧笑)

Related

★追記 2019.11.7

Study-AI株式会社様 http://kentei.ai/ のAI実装検定のシラバスに使用していただくことになりました!(ディープラーニング無限ノックも)Study-AI株式会社様ではAIスキルを学ぶためのコンテンツを作成されており、AIを学ぶ上でとても参考になります!

検定も実施されてるので、興味ある方はぜひ受けることをお勧めします!

深度学习无限问请点击这里

Recent

我也在Twitter上发布更新信息。

  • 2019.11.22 [C++] Q.49~50 モルフォロジー処理(オープンイング、クロージング)を追加
  • 2019.11.21 [C++] Q.48 モルフォロジー処理(収縮)を追加
  • 2019.11.20 [C++] Q.47 モルフォロジー処理(膨張)を追加
  • 2019.10.27 [C++] Q.44~46 Hough直線検出を追加、[Python]の解答を修正
  • 2019.10.22 [C++] Q.41~43 Cannyのエッジ検出を追加, [Python] の解答を修正
  • 2019.9.3 [Python] Q.81~100のAnswerコードをメソッド化
  • 2019.9.2 [Python] Q.61~80のAnswerコードをメソッド化
  • 2019.8.28 [Python] Q.51~60のAnswerコードをメソッド化
  • 2019.8.18 [Python] Q.50までのAnswerコードをメソッド化
  • 2019.8.12 [C++]Q.36-40の解答追加
  • 2019.7.32 [C++]Q.32-35の解答追加
  • 2019.7.23 [C++]Q.30-31の解答追加
  • 2019.7.22 [C++]Q.25-29の解答追加
  • 2019.6.30 Q.21-24のC++の解答追加
  • 2019.6.8 JavaScriptのチュートリアルを追加
  • 2019 Q.11-20 C++ を追加 Q.15 Sobelを修正
  • 2019.3.25 Q.31 フーリエ系 Q.36 DCT, Q.47,48 トップハット変換系を修正
  • 2019.3.13 Q95-100 Neural Networkを修正
  • 2019.3.8 Questions_01_10 にC++の解答を追加!
  • 2019.3.7 TutorialにC++用を追加 そろそろC++用の答えもつくろっかなーと
  • 2019.3.5 各Questionの答えをanswersディレクトリに収納
  • 2019.3.3 Q.18-22. 一部修正
  • 2019.2.26 Q.10. メディアンフィルタの解答を一部修正
  • 2019.2.25 Q.9. ガウシアンフィルタの解答を一部修正
  • 2019.2.23 Q.6. 減色処理のREADMEを修正
  • 2019.1.29 HSVを修正

首先

打开终端,输入以下指令。使用这个命令,你可以将整个目录完整地克隆到你的计算机上。

$ git clone https://github.com/yoyoyo-yo/Gasyori100knock.git

然后,选择你喜欢的 Python 或者 C++,阅读下一部分——Tutorial!

Tutorial

内容 Python C++ JavaScript
1 安装
2 读取、显示图像
3 操作像素
4 拷贝图像
5 保存图像
6 练习问题

Matplotlib和OpenCV的Tips

请在这之后解答提出的问题。问题内容分别包含在各个文件夹中。请使用示例图片assets/imori.jpg。在各个文件夹中的README.md里有问题和解答。运行答案,请使用以下指令(自行替换文件夹和文件名):

python answers/answer_@@.py

问题

详细的问题请参见各页面下的README文件(各个页面下滑就可以看见)。

  • 为了简化答案,所以没有编写main()函数。
  • 虽然我们的答案以numpy为基础,但是还请你自己查找numpy的基本使用方法。

问题1 - 10

序号 问题 Python C++ 翻译一校
1 通道替换
2 灰度化(Grayscale)
3 二值化(Thresholding)
4 大津二值化算法(Otsu's Method)
5 $\text{HSV}$变换
6 减色处理
7 平均池化(Average Pooling)
8 最大池化(Max Pooling)
9 高斯滤波(Gaussian Filter)
10 中值滤波(Median Filter)

问题11 - 20

序号 内容 Python C++ 翻译一校
11 均值滤波器
12 Motion Filter
13 MAX-MIN滤波器
14 差分滤波器(Differential Filter)
15 Sobel滤波器
16 Prewitt滤波器
17 Laplacian滤波器
18 Emboss滤波器
19 LoG滤波器
20 直方图

问题21-30

序号 内容 Python C++ 翻译一校
21 直方图归一化(Histogram Normalization)
22 直方图操作
23 直方图均衡化(Histogram Equalization)
24 伽玛校正(Gamma Correction)
25 最邻近插值(Nearest-neighbor Interpolation)
26 双线性插值(Bilinear Interpolation)
27 双三次插值(Bicubic Interpolation)
28 仿射变换(Afine Transformations)——平行移动
29 仿射变换(Afine Transformations)——放大缩小
30 仿射变换( Afine Transformations )——旋转

问题31-40

序号 内容 Python C++ 翻译一校
31 仿射变换(Afine Transformations)——倾斜
32 傅立叶变换(Fourier Transform)
33 傅立叶变换——低通滤波
34 傅立叶变换——高通滤波
35 傅立叶变换——带通滤波
36 JPEG 压缩——第一步:离散余弦变换(Discrete Cosine Transformation)
37 峰值信噪比(Peak Signal to Noise Ratio)
38 JPEG 压缩——第二步:离散余弦变换+量化
39 JPEG 压缩——第三步:YCbCr 色彩空间
40 JPEG 压缩——第四步:YCbCr+DCT+量化

问题41-50

序号 内容 Python C++ 翻译一校
41 Canny边缘检测:第一步——边缘强度
42 Canny边缘检测:第二步——边缘细化
43 Canny边缘检测:第三步——滞后阈值
44 霍夫变换(Hough Transform)/直线检测——第一步:霍夫变换
45 霍夫变换(Hough Transform)/直线检测——第二步:NMS
46 霍夫变换(Hough Transform)/直线检测——第三步:霍夫逆变换
47 形态学处理:膨胀(Dilate)
48 形态学处理:腐蚀(Erode)
49 开运算(Opening Operation)
50 闭运算(Closing Operation)

问题51-60

序号 内容 Python C++ 翻译一校
51 形态学梯度(Morphology Gradient)
52 顶帽(Top Hat)
53 黑帽(Black Hat)
54 使用误差平方和算法(Sum of Squared Difference)进行模式匹配(Template Matching)
55 使用绝对值差和(Sum of Absolute Differences)进行模式匹配
56 使用归一化交叉相关(Normalization Cross Correlation)进行模式匹配
57 使用零均值归一化交叉相关(Zero-mean Normalization Cross Correlation)进行模式匹配
58 $4-$邻域连通域标记
59 $8-$邻域连通域标记
60 透明混合(Alpha Blending)

问题61-70

序号 内容 Python C++ 翻译一校
61 $4-$连接数
62 $8-$连接数
63 细化处理
64 Hilditch 细化算法
65 Zhang-Suen 细化算法
66 方向梯度直方图(HOG)第一步:梯度幅值・梯度方向
67 方向梯度直方图(HOG)第二步:梯度直方图
68 方向梯度直方图(HOG)第三步:直方图归一化
69 方向梯度直方图(HOG)第四步:可视化特征量
70 色彩追踪(Color Tracking)

问题71-80

序号 内容 Python C++ 翻译一校
71 掩膜(Masking)
72 掩膜(色彩追踪(Color Tracking)+形态学处理)
73 缩小和放大
74 使用差分金字塔提取高频成分
75 高斯金字塔(Gaussian Pyramid)
76 显著图(Saliency Map)
77 Gabor 滤波器(Gabor Filter)
78 旋转 Gabor 滤波器
79 使用 Gabor 滤波器进行边缘检测
80 使用 Gabor 滤波器进行特征提取

问题81-90

序号 内容 Python C++ 翻译一校
81 Hessian 角点检测
82 Harris 角点检测第一步:Sobel + Gausian
83 Harris 角点检测第二步:角点检测
84 简单图像识别第一步:减色化+直方图
85 简单图像识别第二步:判别类别
86 简单图像识别第三步:评估
87 简单图像识别第四步:k-NN
88 k-平均聚类算法(k -means Clustering)第一步:生成质心
89 k-平均聚类算法(k -means Clustering)第二步:聚类
90 k-平均聚类算法(k -means Clustering)第三步:调整初期类别

问题91-100

序号 内容 Python C++ 翻译一校
91 利用 k-平均聚类算法进行减色处理第一步:按颜色距离分类
92 利用 k-平均聚类算法进行减色处理第二步:减色处理
93 准备机器学习的训练数据第一步:计算 IoU
94 准备机器学习的训练数据第一步:随机裁剪(Random Cropping)
95 神经网络(Neural Network)第一步:深度学习(Deep Learning)
96 神经网络(Neural Network)第二步:训练
97 简单物体检测第一步----滑动窗口(Sliding Window)+HOG
98 简单物体检测第二步----滑动窗口(Sliding Window)+ NN
99 简单物体检测第三步----非极大值抑制(Non-Maximum Suppression)
100 简单物体检测第三步----评估 Precision, Recall, F-score, mAP

TODO

adaptivebinalizatino, poison image blending

Citation

@article{yoyoyo-yoGasyori100knock,
    Author = {yoyoyo-yo},
    Title = {Gasyori100knock},
    Journal = {https://github.com/yoyoyo-yo/Gasyori100knock},
    Year = {2019}
}

License

© Yoshito Nagaoka All Rights Reserved.

This is under MIT License.

https://github.com/yoyoyo-yo/Gasyori100knock/blob/master/LICENSE

MIT License Copyright (c) 2019 Yoshito Nagaoka Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

「画像処理100本ノック」中文版本!为图像处理初学者设计的 100 个问题。 展开 收起
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/yanle2026/ImageProcessing100Wen.git
git@gitee.com:yanle2026/ImageProcessing100Wen.git
yanle2026
ImageProcessing100Wen
ImageProcessing100Wen
master

搜索帮助