Python图像处理和特征提取

毫无疑问,上面的图片看起来像是内置的桌面背景之一。我姐姐的所有积分,点击奇怪的东西,以某种方式变得非常诱人的眼睛。然而,我们出生在一个数码摄影时代,我们很少想知道这些图片是如何存储在记忆中的,或者如何在照片中进行各种变换。

在本文中,我将向您介绍图像处理的一些基本功能。这种数据按摩的最终目标仍然是相同的:特征提取。但在这里我们需要更加密集的数据清理。但数据清理是在数据集,表格,文本等上完成的。如何在图像上完成?我们将看一下图像如何存储在光盘上以及如何使用这些底层数据操作图像?

导入图像

在python中导入图像很容易。以下代码将帮助您在Python上导入图像:

了解基础数据

此图像有多种颜色和许多像素。要想象如何存储此图像,请将每个像素视为矩阵中的单元格。现在这个单元包含三种不同的强度信息,适应红色,绿色和蓝色。因此RGB图像变成3-D矩阵。每个数字都是红色,蓝色和绿色的强度。

我们来看几个转换:

正如您在上图中所看到的,我们操纵了第三维并完成了转换。黄色不是我们字典中的直接颜色,而是红色和绿色的组合。我们通过将其他颜色的强度设置为零来完成转换。

将图像转换为二维矩阵

处理图像的第三维有时可能是复杂且多余的。在特征提取中,如果我们将图像压缩为二维矩阵,则变得更加简单。这是通过灰度缩放或二值化来完成的。灰度缩放比二值化更丰富,因为它将图像显示为不同强度的灰度的组合。二进制化只是构建一个充满0和1的矩阵。

以下是将RGB图像转换为灰度的方法:

如您所见,灰度图像的尺寸已减少为2。但是,这些特征在两个图像中同样可见。这就是为什么灰度存储在光盘上时占用的空间要小得多的原因。

现在让我们尝试将此灰度图像二值化。这是通过找到阈值并标记灰度像素来完成的。在本文中,我使用了Otsu的方法来找到阈值。Otsu的方法通过最大化两类像素之间的方差来计算“最佳”阈值,这两个像素由阈值分开。同样地,该阈值最小化了类内方差。

以下是执行此转换的代码:

模糊图像

我们将在本文中介绍的最后一部分与特征提取更相关:图像模糊。有时灰度或二进制图像捕获的图像超过了所需的图像,并且模糊在这种情况下非常方便。例如,在这张图片中,如果鞋子比铁路轨道的兴趣小,那么模糊会增加很多价值。从这个例子可以清楚地看出这一点。模糊算法采用相邻像素的加权平均值以将周围颜色合并到每个像素中。以下是模糊的示例:

在上图中,模糊后我们清楚地看到鞋子现在已经达到与铁轨相同的强度水平。因此,这种技术在许多图像处理场景中非常方便。

让我们来看一下分析行业中这种应用的实际例子。我们希望计算一个城镇照片中的人数。但是这张图片也有一些建筑物。现在建筑物背后的人的强度将低于建筑物本身。因此,我们很难统计这些人。可以在这种情况下进行模糊以均衡图像中的建筑物和人的强度。

 

image = imread(r“C:\ \ Tavish \ Desktop \ 7.jpg”)

 

show_images(images = [red,],titles = ['Red Intensity','Intensity'])


 thresh = threshold_otsu(gray_image)

binary = gray_image> 

show_images(images = [binary_image,binary],titles = [“Grayscale”,“Otsu Binary”])

 

 blurred_image = gaussian_filter(gray_image,sigma )

show_images(images = [gray_image,blurred_image] [“Gray Image”,“20 Sigma Blur”])

 

非常感谢您阅读本文,有任何问题请在下面留言!

 

 

你可能感兴趣的:(大数据部落,数据分析,小波滤波器,算法,数据分析报告代写,CS作业代写,C代写,C++代写)