在上一节中,主要是介绍了图像的基本知识以及OpenCV的基本操作,具体内容参见“使用Numpy和Opencv完成基本图像的数据分析(Part I)”。这部分内容是接着上一节的内容,主要介绍一些其它的操作。
使用逻辑操作处理像素值
可以使用逻辑运算符创建相同大小的数组。但是,逻辑运算操作并不会创建出任何新的数组,只是将True返回给主机变量(host variable)。例如:假设在RGB图像中过滤掉一些像素值低的像素或像素值高的像素(以及其它任何条件),将RGB转换为灰度图看起来不错,但是我们目前不会对彩色图像进行这样的处理。
首先加载图像,并将其显示在屏幕上:
![](https://s2.51cto.com/oss/201807/24/853d6fef96bad56b4bebdf49c4796057.jpeg)
![](https://s2.51cto.com/oss/201807/24/d1b0a89430fc5f024819b5ef2093b2ec.png)
注意图像的路径问题.之后需要考虑转储这个显示的图像。假设对于任何情况,我们都想要滤除掉低于某值的所有像素值,并假设该阈值设置为20。为此,我们将使用逻辑运算符来执行此任务,最终结果将返回所有索引的真值。
![](https://s2.51cto.com/oss/201807/24/8e66503ff2b890a4582e15a6a5bb4196.jpeg)
正如之前所说,主机变量,一般并不使用这个名称,但在本文中引用它,这是因为它的行为只保留真值,而不是其他任何形式的值。所以,如果展示low_pixel和pic的形状,我们就会发现它们其实具有相同的形状。
![](https://s5.51cto.com/oss/201807/24/671c74ca306ea24519742c89073aa739.png)
我们使用全局比较运算符为所有像素值小于200的像素点生成低值滤波器。但是,我们也可以使用此low_pixel数组作为索引将这些低值设置为某些特定值,这些值可能高于或低于先前的像素值。
![](https://s2.51cto.com/oss/201807/24/60007a9acf960af3a34d1853b6414e0c.png)
![](https://s3.51cto.com/oss/201807/24/40657e94a5356ca70df405a7f0eb5059.png)
掩膜
图像掩膜是一种图像处理技术,被广泛用于去除具有模糊边缘、透明或毛刺部分的照片背景,看起来类似于PS中的一项技术。
下面将带领读者一起创建一个圆盘形状的掩膜。首先,我们测量从图像中心到每个边界像素值的距离,在这里采用应用比较方便的半径,然后使用逻辑运算符创建一个圆盘。这个过程很简单,如下面的代码所示:
![](https://s3.51cto.com/oss/201807/24/8444719cae806290e171a1ed4241c4fd.png)
![](https://s1.51cto.com/oss/201807/24/16e425679e8899de7a032cf030494516.png)
卫星图像处理
作为edX的公开课之一,下面将介绍一些卫星图像及其处理方法,这部分内容是十分有用的,下面对其进行一些处理,做一些分析任务。
![](https://s3.51cto.com/oss/201807/24/8c0ec5cdd883d6640db207c3efd82270.png)
![](https://s5.51cto.com/oss/201807/24/4e31c32a4816ea4ed9b62f04e76590bf.png)
下面看看它的一些基本信息:
![](https://s5.51cto.com/oss/201807/24/88470c7f580da53007234bc07cbb1ccd.png)
从中可以发现一些有趣的东西,像许多其他可视化结果一样,每个rgb层中的颜色都表示对应的内容。例如,红色强弱表示像素中地理数据点的高度,蓝色强弱表示方位的度量,而绿色表示斜率,这些颜色将有助于我们以更快、更有效的方式传达信息,而不仅是显示数字。
- 红色像素表示:高度
- 蓝色像素表示:方位
- 绿色像素表示:斜率
只需看一下这张彩色图像,训练有素的眼睛就能分辨出海拔是多少,斜率是多少,方位在哪里,所以为这些颜色加载更多含义能够表示更科学的东西,一个好的想法!
检测每个通道的高像素
![](https://s5.51cto.com/oss/201807/24/23bec29ca78e92826d42e21ea3c1fccc.png)
![](https://s1.51cto.com/oss/201807/24/b9287f4d2d66d8eeafec696b525bc650.png)
作者:Mohammed Innat,机器学习和数据科学研究者