diff --git a/docs/101.md b/docs/101.md index fd48045454e7d3a6fe44ff09071b779ab124e695..ea8e42289473e82d4ba2563c66c693261d5c5c4a 100644 --- a/docs/101.md +++ b/docs/101.md @@ -6,7 +6,7 @@ 使用 OpenCV 进行汽车追踪 -在本教程中,我们将研究使用 [haar 功能](https://en.wikipedia.org/wiki/Haar-like_features)的车辆跟踪。 我们有一个经过训练的 haar 级联文件。 +在本教程中,我们将研究使用 [haar 特征](https://en.wikipedia.org/wiki/Haar-like_features)的车辆跟踪。 我们有一个经过训练的 haar 级联文件。 该程序将检测感兴趣的区域,将其分类为汽车,并在其周围显示矩形。 @@ -187,4 +187,4 @@ detectCars('road.avi') * [机器人技术,计算机视觉,语音识别等](https://pythonspot.com/robotics/) -[下载计算机视觉示例+课程](https://pythonspot.com/download-vision-examples/) \ No newline at end of file +[下载计算机视觉示例和课程](https://pythonspot.com/download-vision-examples/) \ No newline at end of file diff --git a/docs/102.md b/docs/102.md index b604b239fb568430d1ab660d30a7fb8b2fb11613..f16b07ffd6c3a6f174ba1340c8b7c7569c0de5c1 100644 --- a/docs/102.md +++ b/docs/102.md @@ -4,7 +4,7 @@ 在本教程中,您将学习如何在 Python 中应用人脸检测。 作为输入视频,我们将使用 Google Hangouts 视频。 网路上有大量的 Google Hangouts 视讯,在这些视讯中,人脸通常大到足以让软体侦测到人脸。 -使用 OpenCV(Open Computer Vision)库实现面部检测。 最常见的面部检测方法是[提取级联](https://docs.opencv.org/modules/objdetect/doc/cascade_classification.html#haar-feature-based-cascade-classifier-for-object-detection)。 已知该技术可以很好地与人脸检测配合使用。 您需要将级联文件(包含在 OpenCV 中)放在程序所在的目录中。 +使用 OpenCV(Open Computer Vision)库实现面部检测。 最常见的面部检测方法是[ haar 级联](https://docs.opencv.org/modules/objdetect/doc/cascade_classification.html#haar-feature-based-cascade-classifier-for-object-detection)。已知该技术可以很好地与人脸检测配合使用。 您需要将级联文件(包含在 OpenCV 中)放在程序所在的目录中。 ## Python OpenCV 和视频 @@ -32,7 +32,7 @@ while rval: ``` -执行后,您将看到没有声音播放的视频。 (OpenCV 不支持声音)。 在 while 循环内,我们将每个视频帧包含在可变帧内。 +执行后,您将看到没有声音播放的视频。(OpenCV 不支持声音)。在 while 循环内,我们将每个视频帧包含在可变帧内。 ## 使用 OpenCV 进行人脸检测 diff --git a/docs/103.md b/docs/103.md index ec04461d043c7cd89c3f2ea1b31136d08515d6fa..dd293609594d15c829f8de87f0521b59391c5464 100644 --- a/docs/103.md +++ b/docs/103.md @@ -3,6 +3,7 @@ > 原文: [https://pythonspot.com/object-detection-with-templates/](https://pythonspot.com/object-detection-with-templates/) **模板匹配**是一种用于查找与补丁(模板)相似的图像区域的技术。 + 它的应用可以是[机器人](https://pythonspot.com/robotics)或制造业。 ## 简介 @@ -17,9 +18,9 @@ 要找到它们,我们都需要: -* **源图像(S)**:在其中查找匹配项的空间 +* **源图像(`S`)**:在其中查找匹配项的空间 -* **模板图像(T)**:模板图像 +* **模板图像(`T`)**:模板图像 模板图像`T`在源图像`S`上滑动(在源图像上移动),并且程序尝试使用统计信息查找匹配项。 @@ -76,13 +77,14 @@ templateGray = cv2.cvtColor(template, cv2.COLOR_BGR2GRAY) ``` -我们使用 **cv2.matchTemplate** (图像,模板,方法)方法查找图像中最相似的区域。 第三个参数是[统计方法](https://docs.opencv.org/modules/imgproc/doc/object_detection.html?highlight=matchtemplate#matchtemplate)。 +我们使用`cv2.matchTemplate(image, template, method)`方法查找图像中最相似的区域。第三个参数是[统计方法](https://docs.opencv.org/modules/imgproc/doc/object_detection.html?highlight=matchtemplate#matchtemplate)。 ![Template Matching](img/671697da89293504fef04cfadad29c6b.jpg) 为您的应用选择正确的统计方法。`TM_CCOEFF`(右),`TM_SQDIFF`(左) -此方法具有六个匹配方法:CV_TM_SQDIFF,CV_TM_SQDIFF_NORMED,CV_TM_CCORR,CV_TM_CCORR_NORMED,CV_TM_CCOEFF 和 CV_TM_CCOEFF_NORMED。 +此方法具有六个匹配方法:`CV_TM_SQDIFF`,`CV_TM_SQDIFF_NORMED`,`CV_TM_CCORR`,`CV_TM_CCORR_NORMED`,`CV_TM_CCOEFF`和`CV_TM_CCOEFF_NORMED`。 + 这是完全不同的[统计比较方法](https://docs.opencv.org/modules/imgproc/doc/object_detection.html?highlight=matchtemplate#matchtemplate) 最后,我们获得矩形变量并显示图像。 @@ -91,6 +93,6 @@ templateGray = cv2.cvtColor(template, cv2.COLOR_BGR2GRAY) 模板匹配不是比例不变的,也不是旋转不变的。 这是一种非常基本和直接的方法,可在其中找到最相关的区域。 因此,这种对象检测方法取决于您要构建的应用程序的类型。 对于非比例和旋转变化的输入,此方法效果很好。 -您可能会喜欢:[机器人技术](https://pythonspot.com/robotics)或[具有级联](https://pythonspot.com/car-tracking-with-cascades/)的汽车跟踪。 +您可能会喜欢:[机器人技术](https://pythonspot.com/robotics)或[使用级联](https://pythonspot.com/car-tracking-with-cascades/)的汽车跟踪。 -[下载计算机视觉示例+课程](https://pythonspot.com/download-vision-examples/) \ No newline at end of file +[下载计算机视觉示例和课程](https://pythonspot.com/download-vision-examples/) \ No newline at end of file diff --git a/docs/104.md b/docs/104.md index a3e56c6b61c6e0a3ad5dc6be9c7c702ee1a2fba7..f29080047581daead998be23b31d28bcde25026a 100644 --- a/docs/104.md +++ b/docs/104.md @@ -1,8 +1,9 @@ -# Python 和 Netflix 点赞图标 +# Python 和 Netflix 点赞缩略图 > 原文: [https://pythonspot.com/netflix-like-thumbnails-with-python/](https://pythonspot.com/netflix-like-thumbnails-with-python/) 受 [Netflix](https://techblog.netflix.com/2016/03/extracting-image-metadata-at-scale.html) 的启发,我们决定实施对焦点算法。 如果您在移动网站上使用生成的缩略图,则可能会增加 YouTube 视频的点击率(CTR)。 + 无论如何,这是一个有趣的实验。 ## 焦点 @@ -14,14 +15,14 @@ ![Netflix like Thumbnails Python](img/4ff0874e193357fd06d6aca13d7dc8c4.jpg) -Netflix like Thumbnails Python. Source: Google videos. +Python Netflix 点赞缩略图。来源:Google 视频。 从要用作缩略图的快照图像开始。 我们使用 Haar 功能查找图像中最有趣的区域。 Haar 级联文件可以在以下位置找到: * [https://raw.githubusercontent.com/Itseez/opencv/master/data/lbpcascades/lbpcascade_frontalface.xml](https://raw.githubusercontent.com/Itseez/opencv/master/data/lbpcascades/lbpcascade_frontalface.xml) * [https://github.com/adamhrv/HaarcascadeVisualizer](https://github.com/adamhrv/HaarcascadeVisualizer) -将这些文件下载到/ data /目录中。 +将这些文件下载到`/data/`目录中。 ```py @@ -41,9 +42,9 @@ cv2.waitKey(0); ``` -我们使用 **cv2.CascadeClassifier()**加载 haar 级联文件,并使用 **cv2.imread()** -加载图像,然后 **bodyCascade.detectMultiScale()** 使用已加载的 Haar 功能检测感兴趣的区域。 -使用 **cv2.imwrite()**将图像另存为缩略图,最后显示图像并用矩形突出显示感兴趣的区域。 运行后,您将获得用于移动网页或应用程序的漂亮缩略图。 +我们使用`cv2.CascadeClassifier()`加载 haar 级联文件,并使用`cv2.imread()`加载图像,然后`bodyCascade.detectMultiScale()`使用已加载的 Haar 功能检测感兴趣的区域。 + +使用`cv2.imwrite()`将图像另存为缩略图,最后显示图像并用矩形突出显示感兴趣的区域。 运行后,您将获得用于移动网页或应用程序的漂亮缩略图。 如果您还想同时检测身体和面部,可以使用: diff --git a/docs/106.md b/docs/106.md index f0d4d60f97920635e1752b7d520d152b4a8e6eb5..7b7c8eb0e0777ff032de6fbafa5a4512183fd615 100644 --- a/docs/106.md +++ b/docs/106.md @@ -24,7 +24,7 @@ x = randint(1,9) ``` -randint()函数将选择一个介于 1 到 10 之间的伪随机数。然后,我们必须继续直到找到正确的数字为止: +`randint()`函数将选择一个介于 1 到 10 之间的伪随机数。然后,我们必须继续直到找到正确的数字为止: ```py guess = -1 diff --git a/docs/107.md b/docs/107.md index 05596fed2f9c73189b8071ca8239d0807398abc6..479fadbb6a7e8e3cc8241a54be10730aede06a45 100644 --- a/docs/107.md +++ b/docs/107.md @@ -14,7 +14,7 @@ Pygame Python 您将得到一个与右边的程序相似的程序: -游戏总是以与此类似的顺序( _**伪代码**_ )开始: +游戏总是以与此类似的顺序(**伪代码**)开始: ```py initialize() @@ -83,7 +83,7 @@ if __name__ == "__main__" : ``` -Pygame 程序以构造函数 **init** ()开始。 完成后,将调用 on_execute()。 此方法运行游戏:更新事件,更新屏幕。 最后,使用 on_cleanup()对游戏进行初始化。 +Pygame 程序以构造函数`__init__()`开始。完成后,将调用`on_execute()`。此方法运行游戏:更新事件,更新屏幕。最后,使用`on_cleanup()`对游戏进行初始化。 在初始化阶段,我们设置屏幕分辨率并启动 Pygame 库: @@ -101,7 +101,7 @@ self._image_surf = pygame.image.load("pygame.png").convert() ``` -这不会将图像绘制到屏幕上,而是发生在 on_render()中。 +这不会将图像绘制到屏幕上,而是发生在`on_render()`中。 ```py def on_render(self): @@ -110,6 +110,6 @@ def on_render(self): ``` -blit 方法将图像(image_surf)绘制到坐标(x,y)。 在 Pygame 中,坐标从(0,0)左上角开始到(wind0wWidth,windowHeight)。 方法调用 _**pygame.display.flip()**_ 更新屏幕。 +`blit`方法将图像(`image_surf`)绘制到坐标`(x, y)`。 在 Pygame 中,坐标从`(0, 0)`左上角开始到`(wind0wWidth, windowHeight)`。 方法调用`pygame.display.flip()`更新屏幕。 -继续[下一个教程](https://pythonspot.com/snake-with-pygame/),并学习如何添加游戏逻辑和构建游戏:-) \ No newline at end of file +继续[下一个教程](https://pythonspot.com/snake-with-pygame/),并学习如何添加游戏逻辑和构建游戏 :-) \ No newline at end of file diff --git a/docs/108.md b/docs/108.md index 1d56aec875d7d1388bb7bec0123d21c49b94498c..457fe98cbec7aecd53d1f02cad2391c4779f8d02 100644 --- a/docs/108.md +++ b/docs/108.md @@ -10,7 +10,7 @@ ## 入门:基本结构和事件处理。 -我们定义了一个 Player 类,它可以保持玩家在屏幕上的位置及其移动的速度。 另外,我们定义 Player 实例可以执行的动作(动作): +我们定义了一个`Player`类,它可以保持玩家在屏幕上的位置及其移动的速度。 另外,我们定义`Player`实例可以执行的动作(动作): ```py class Player: @@ -321,7 +321,7 @@ if __name__ == "__main__" : ![python snake](img/c2a6a40115692ff004dc8fce43168e64.jpg) -python snake +python 贪食蛇 ## 游戏逻辑 @@ -500,7 +500,7 @@ if __name__ == "__main__" : ``` -因此,我们必须添加游戏逻辑。 要知道蛇的位置是否与苹果的位置匹配,我们必须进行 _ 碰撞检测 _。 这只是意味着要使蛇的坐标与苹果的坐标相交。 我们创建一个新方法来做到这一点: +因此,我们必须添加游戏逻辑。 要知道蛇的位置是否与苹果的位置匹配,我们必须进行碰撞检测。 这只是意味着要使蛇的坐标与苹果的坐标相交。 我们创建一个新方法来做到这一点: ```py def isCollision(self,x1,y1,x2,y2,bsize): @@ -511,9 +511,9 @@ def isCollision(self,x1,y1,x2,y2,bsize): ``` -给定其块大小 bsize,如果坐标(x1,y1)与(x2,y2)相交,则它将返回 True。 我们调用此方法来确定蛇是否与苹果碰撞。 我们需要检查整个蛇,而不仅是头部,因为我们不希望苹果的新位置位于蛇的某个位置。 我们使用相同的 isCollision 方法来确定蛇是否与自身碰撞(=输掉游戏)。 +给定其块大小`bsize`,如果坐标`(x1, y1)`与`(x2, y2)`相交,则它将返回`True`。 我们调用此方法来确定蛇是否与苹果碰撞。 我们需要检查整个蛇,而不仅是头部,因为我们不希望苹果的新位置位于蛇的某个位置。 我们使用相同的`isCollision`方法来确定蛇是否与自身碰撞(等于输掉游戏)。 -_ 完整来源:_ +完整来源: ```py @@ -695,6 +695,6 @@ if __name__ == "__main__" : ## 结论: -您学习了如何使用 Python 创建游戏蛇以及碰撞检测,图像加载和事件处理等概念。 可以向这个小玩具游戏添加很多东西,但这只是一个非常简单的示例。 :-) +您学习了如何使用 Python 创建游戏蛇以及碰撞检测,图像加载和事件处理等概念。 可以向这个小玩具游戏添加很多东西,但这只是一个非常简单的示例。:-) [下一教程](https://pythonspot.com/maze-in-pygame/) \ No newline at end of file diff --git a/docs/109.md b/docs/109.md index 450c7d8f5560797a5f3a648f16f806324e9e90ea..9f3e95d2cac0956a09108ec9414b25583858813a 100644 --- a/docs/109.md +++ b/docs/109.md @@ -6,7 +6,7 @@ ## 入门:基本结构和事件处理。 -我们定义了一个 Player 类,它可以保持玩家在屏幕上的位置及其移动的速度。 另外,我们定义 Player 实例可以执行的动作(动作): +我们定义了一个`Player`类,它可以保持玩家在屏幕上的位置及其移动的速度。 另外,我们定义`Player`实例可以执行的动作(动作): ```py class Player: @@ -283,6 +283,6 @@ if __name__ == "__main__" : ## 结论 -您学习了如何在 Python 中创建 2d 迷宫。 现在,您可能想要添加在上一教程中显示的碰撞检测。 因为我们已经解释了这个概念,所以我们不再赘述:-) +您学习了如何在 Python 中创建 2d 迷宫。 现在,您可能想要添加在上一教程中显示的碰撞检测。 因为我们已经解释了这个概念,所以我们不再赘述 :-) [下一个教程:Pygame 的 AI](/snake-ai-in-pygame/) \ No newline at end of file diff --git a/docs/110.md b/docs/110.md index 7a62c110bf9ab5a649180af6c18d449de8a8c9d3..5b38eae13143f832ad39daf176df9d7c3c76d24d 100644 --- a/docs/110.md +++ b/docs/110.md @@ -8,7 +8,7 @@ ## 添加计算机玩家: -我们使用名为 Computer 的新类扩展了代码,它将成为我们的计算机玩家。 这包含绘制和移动计算机蛇的例程。 +我们使用名为`Computer`的新类扩展了代码,它将成为我们的计算机玩家。 这包含绘制和移动计算机蛇的例程。 ```py class Computer: @@ -379,7 +379,7 @@ if __name__ == "__main__" : ![python snake](img/03294f86324be9f10d0065240bd181ff.jpg) -python snake +python 贪食蛇 ## 结论 diff --git a/docs/111.md b/docs/111.md index 1f84aa309fcaa9d936404105bbdee4e51890e527..56560b8787c81c53421ddde4307bb808745916e3 100644 --- a/docs/111.md +++ b/docs/111.md @@ -6,14 +6,14 @@ ## 移动 -左右移动与上一教程类似,只是意味着更改玩家的(x,y)位置。 对于跳跃,我们使用经典力学中的公式: +左右移动与上一教程类似,只是意味着更改玩家的`(x, y)`位置。 对于跳跃,我们使用经典力学中的公式: ```py F = 1/2 * m * v^2 ``` -其中 F 是向上/向下的力,m 是物体的质量,v 是速度。 速度会随着时间的推移而下降,因为在此模拟中,当玩家跳跃时速度不会增加更多。 如果玩家到达地面,则跳跃结束。 在 Python 中,我们设置了一个变量 _isjump_ 来指示玩家是否在跳跃。 如果是玩家,则其位置将根据以上公式进行更新。 +其中`F`是向上/向下的力,`m`是物体的质量,`v`是速度。 速度会随着时间的推移而下降,因为在此模拟中,当玩家跳跃时速度不会增加更多。 如果玩家到达地面,则跳跃结束。 在 Python 中,我们设置了一个变量`isjump`来指示玩家是否在跳跃。 如果是玩家,则其位置将根据以上公式进行更新。 完整代码: @@ -131,4 +131,4 @@ if __name__ == "__main__" : ``` -如果要跳跃对象,只需将它们添加到屏幕上,进行碰撞检测,如果碰撞为 true,则重置跳跃变量。 \ No newline at end of file +如果要跳跃对象,只需将它们添加到屏幕上,进行碰撞检测,如果碰撞为`true`,则重置跳跃变量。 \ No newline at end of file diff --git a/docs/113.md b/docs/113.md index 04084cd5e9d839ab7f48938ca273c3733166dab5..61230349286917fc84c76876021836f6f1cdb1ed 100644 --- a/docs/113.md +++ b/docs/113.md @@ -4,7 +4,7 @@ Google 具有出色的语音识别 API。 该 API 将语音文本(麦克风)转换为书面文本(Python 字符串),即语音到文本。 您只需在麦克风中讲话即可,Google API 会将其翻译成书面文字。 该 API 对于英语具有出色的效果。 -Google 还创建了 JavaScript Web Speech API,因此您可以根据需要在 JavaScript 中识别语音,以下是此链接: [https://www.google.com/intl/zh-CN/chrome/demos/speech.html](https://www.google.com/intl/en/chrome/demos/speech.html "Google Web Speech ") 。 要在网络上使用它,您将需要 Google Chrome 25 版或更高版本。 +Google 还创建了 JavaScript Web Speech API,因此您可以根据需要在 JavaScript 中识别语音,以下是此链接:[https://www.google.com/intl/zh-CN/chrome/demos/speech.html](https://www.google.com/intl/en/chrome/demos/speech.html)。 要在网络上使用它,您将需要 Google Chrome 25 版或更高版本。 ## 安装 @@ -30,7 +30,8 @@ sudo pip3 install SpeechRecognition 该程序将记录来自麦克风的音频,将其发送到语音 API 并返回 Python 字符串。 使用语音识别模块记录音频,该模块将包括在程序顶部。 其次,我们将录制的语音发送到 Google 语音识别 API,然后该 API 返回输出。 -**r.recognize_google(audio)**返回一个字符串。 + +`r.recognize_google(audio)`返回一个字符串。 ```py diff --git a/docs/114.md b/docs/114.md index e748ea31ec5cb8e83d447553a379e745c0237e63..eced04e47903b901ca85576fef7f98f676056e7a 100644 --- a/docs/114.md +++ b/docs/114.md @@ -2,7 +2,7 @@ > 原文: [https://pythonspot.com/personal-assistant-jarvis-in-python/](https://pythonspot.com/personal-assistant-jarvis-in-python/) -我认为在 [**Python**](https://pythonspot.com)中创建**个人助理**很酷。 如果您喜欢电影,可能已经听说过 A.I. Jarvis。 钢铁侠电影中的角色 在本教程中,我们将创建 [**机器人**。](https://pythonspot.com/robotics) +我认为在 [**Python**](https://pythonspot.com) 中创建**个人助理**很酷。 如果您喜欢电影,可能已经听说过 A.I. Jarvis。 钢铁侠电影中的角色 在本教程中,我们将创建 [**机器人**](https://pythonspot.com/robotics)。 我要拥有的功能是: @@ -24,7 +24,7 @@ ### 以语音回答(文字转语音) -各种 [**API 和程序可用于文本到语音的应用程序**](https://pythonspot.com/speech-engines-with-python-tutorial/)。Espeak 和 pyttsx 开箱即用,但听起来很机器人。我们决定使用 Google 文字到语音 API gTTS。 +各种 **API 和程序**可用于[文本到语音的应用程序](https://pythonspot.com/speech-engines-with-python-tutorial/)。Espeak 和 pyttsx 开箱即用,但听起来很机器人。我们决定使用 Google 文字到语音 API gTTS。 ```py