提交 7784d98a 编写于 作者: W wizardforcel

2021-01-06 14:15:35

上级 e98df36a
......@@ -74,9 +74,9 @@
下载文件后,请确保使用以下最新版本解压缩或解压缩文件夹:
* Windows 的 WinRAR / 7-Zip
* Mac 版 Zipeg / iZip / UnRarX
* 适用于 Linux 的 7-Zip / PeaZip
* Windows 的 WinRAR/7-Zip
* Mac 版 Zipeg/iZip/UnRarX
* 适用于 Linux 的 7-Zip/PeaZip
本书的代码包也托管在 [GitHub](https://github.com/PacktPublishing/Mastering-Computer-Vision-with-TensorFlow-2.0) 上。 如果代码有更新,它将在现有的 GitHub 存储库中进行更新。
......
......@@ -83,7 +83,7 @@ image_arr.shape
Output:
(296, 465, 4)
gray = cv2.cvtColor(image_arr, cv2.COLOR_BGR2GRAY)
plt.imshow(gray, cmap=gray')
plt.imshow(gray, cmap='gray')
```
下图显示了基于上述变换的彩色图像和相应的灰度图像:
......@@ -118,21 +118,21 @@ plt.imshow(image_arr[:,:,2]) # blue channel
![](img/4ae0638c-c8cc-4c2c-8a27-bbfe0c59a3ef.png)
* **转换**:转换常数值的一些示例为`c11` = 1,`c12` = 0,并且`c13` = 10; `c21` = 0,`c22` = 1,`c23` =10。结果方程变为`u` = `x` + 10 和`v` = `y` + 10
* **转换**:转换常数值的一些示例为`c11 = 1``c12 = 0`,并且`c13 = 10``c21 = 0``c22 = 1``c23 = 10`。结果方程变为`u = x + 10``v = y + 10`
![](img/b211e915-e452-40c7-af3c-c1baaad93153.png)
* **旋转**:一些旋转常数值的示例是`c11` = 1,`c12` = 0.5,`c13` = 0; `c21` = -0.5,`c22` = 1,`c23` = 0
* **旋转**:一些旋转常数值的示例是`c11 = 1``c12 = 0.5``c13 = 0``c21 = -0.5``c22 = 1``c23 = 0`
所得的等式变为`u` = `x` + 0.5 `y``v` = -0.5 `x` + `y`
所得的等式变为`u = x + 0.5y``v = -0.5x + y`
![](img/aad8803a-48cf-4ba5-a284-aef5fbfec5ed.png)
* **旋转+平移**:旋转和平移组合常数的一些示例为`c11` = 1,`c12` = 0.5,`c13` = 10; `c21` = -0.5,`c22` = 1,`c23` =10。结果方程变为`u` = `x` + 0.5 `y` + 10 和`v` = -0.5 `x` + [ `y` +10
* **旋转+平移**:旋转和平移组合常数的一些示例为`c11 = 1``c12 = 0.5``c13 = 10``c21 = -0.5``c22 = 1``c23 = 10`。结果方程变为`u = x + 0.5y + 10``v = -0.5x + y + 10`
![](img/176dcee8-a33f-451b-bccd-abc7d2b530d6.png)
* **剪切**`c11` = 10,`c12` = 0 和`c13` = 0 的一些剪切常数值示例; `c21` = 0,`c22` = 10,`c23` =0。所得方程变为`u` = 10 `x``v` = 10 `y`
* **剪切**一些剪切常数值示例为`c11 = 10``c12 = 0``c13 = 0``c21 = 0``c22 = 10``c23 = 0`。所得方程变为`u = 10x``v = 10y`
![](img/7697542f-4863-4125-8e46-9196a33c27d6.png)
......@@ -180,7 +180,7 @@ plt.imshow(blurimg, cmap='gray')
左边是输入图像,右边是通过对图像应用水平核而获得的图像。 水平内核仅检测水平边缘,这可以通过水平线的白色条纹看到。 有关水平内核的详细信息,请参见“图像渐变”部分。
前面的代码导入了用于机器学习和计算机视觉工作的必要 Python 库,例如 NumPy 处理数组,cv2 用于 openCV 计算机视觉工作,PIL 处理 Python 代码中的图像,以及 Matplotlib 绘制结果。 然后,它使用 PIL 导入图像,并使用 OpenCV `BGr2GRAY`缩放功能将其转换为灰度。 它使用 NumPy 数组创建用于边缘过滤的内核,使用内核模糊图像,然后使用`imshow()`函数显示图像。
前面的代码导入了用于机器学习和计算机视觉工作的必要 Python 库,例如 NumPy 处理数组,`cv2`用于 openCV 计算机视觉工作,PIL 处理 Python 代码中的图像,以及 Matplotlib 绘制结果。 然后,它使用 PIL 导入图像,并使用 OpenCV `BGr2GRAY`缩放功能将其转换为灰度。 它使用 NumPy 数组创建用于边缘过滤的内核,使用内核模糊图像,然后使用`imshow()`函数显示图像。
过滤操作分为三类:
......@@ -386,7 +386,7 @@ for i,histcolor in enumerate(color):
plt.xlim([0,256])
```
前面的 Python 代码首先导入必要的 Python 库,例如 cv2(OpenCV),NumPy(用于数组计算),PIL(用于导入图像)和 Matplotlib(用于绘制图形)。 之后,它将图像转换成数组并循环遍历每种颜色,并绘制每种颜色(R,G 和 B)的直方图。
前面的 Python 代码首先导入必要的 Python 库,例如`cv2`(OpenCV),NumPy(用于数组计算),PIL(用于导入图像)和 Matplotlib(用于绘制图形)。 之后,它将图像转换成数组并循环遍历每种颜色,并绘制每种颜色(R,G 和 B)的直方图。
下图显示了汽车图像的直方图输出。`x`轴表示从`0`(黑色)到`256`(白色)的颜色强度值,`y`轴表示出现的频率:
......@@ -522,7 +522,7 @@ cv2.imshow('HOG_image', hog_image_rescaled)
* 我们将添加另一个形状类似于苹果和橙子的对象。
* 我们将改变光的强度和反射率。
如果我们执行上一部分中的相同代码,它将检测每个对象,就好像它是一个苹果一样。 这是因为所选的 width 和 height 参数太宽,并且包括所有对象以及 RGB 值,它们在此图像中的显示方式与以前不同。 为了正确检测对象,我们将对`if`语句的大小和颜色进行以下更改,如以下代码所示:
如果我们执行上一部分中的相同代码,它将检测每个对象,就好像它是一个苹果一样。 这是因为所选的`width``height`参数太宽,并且包括所有对象以及 RGB 值,它们在此图像中的显示方式与以前不同。 为了正确检测对象,我们将对`if`语句的大小和颜色进行以下更改,如以下代码所示:
```py
if (w >60 and w < 100 and h >60 and h <120):
......@@ -600,7 +600,7 @@ pip install --upgrade pip
pip install tensorflow
```
除 TensorFlow 之外,上述命令还将在 Terminal 中下载并提取以下软件包:
除 TensorFlow 之外,上述命令还将在终端中下载并提取以下软件包:
* Keras(用 Python 编写的高级神经网络 API,能够在 TensorFlow 的顶部运行)
* `protobuf`(用于结构化数据的序列化协议)
......@@ -608,11 +608,11 @@ pip install tensorflow
* PyGPU(Python 功能,用于图像处理,GPU 计算以提高性能)
* `cctools`(适用于 Android 的本地 IDE)
* `c-ares`(库功能)
* `clang`(C,C++ ,Objective-C,OpenCL 和 OpenCV 的编译器前端)
* `clang`(C,C++,Objective-C,OpenCL 和 OpenCV 的编译器前端)
* `llvm`(用于生成前端和后端二进制代码的编译器架构)
* `theano`(用于管理多维数组的 Python 库)
* `grpcio`(用于 Python 的`gRPC`软件包,用于实现远程过程调用)
* `libgpuarray`(可用于 Python 中所有程序包的常见 n 维 GPU 阵列)
* `libgpuarray`(可用于 Python 中所有程序包的常见 N 维 GPU 阵列)
* `termcolor`(Python 中的颜色格式输出)
* `absl`(用于构建 Python 应用程序的 Python 库代码集合)
* `mock`(用虚拟环境替换真实对象以帮助测试)
......
......@@ -44,7 +44,7 @@
* 数字制图
* 自动驾驶汽车
我们在较早的项目中讨论了图像处理的基础知识。 在这个项目中,我们将讨论一个非常流行的用于执行图像处理的库-OpenCV。 OpenCV 是*开源计算机视觉*的缩写。 它由 Intel 开发,并由 Willow Garage 和 Itseez(后来被 Intel 收购)推动。 毫无疑问,由于它与所有主要的机器学习框架(例如 TensorFlow,PyTorch 和 Caffe)兼容,因此它是执行图像处理的全球大多数开发人员的首要选择。 除此之外,OpenCV 还可以使用多种语言,例如 C++ ,Java 和 Python。
我们在较早的项目中讨论了图像处理的基础知识。 在这个项目中,我们将讨论一个非常流行的用于执行图像处理的库-OpenCV。 OpenCV 是*开源计算机视觉*的缩写。 它由 Intel 开发,并由 Willow Garage 和 Itseez(后来被 Intel 收购)推动。 毫无疑问,由于它与所有主要的机器学习框架(例如 TensorFlow,PyTorch 和 Caffe)兼容,因此它是执行图像处理的全球大多数开发人员的首要选择。 除此之外,OpenCV 还可以使用多种语言,例如 C++,Java 和 Python。
要在 Python 环境中安装 OpenCV,可以使用以下命令:
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册