这是一张灵异事件图。。。开个玩笑,这就是一张普通的图片。
毫无疑问,上面的那副图画看起来像一幅电脑背景图片。这些都归功于我的妹妹,她能够将一些看上去奇怪的东西变得十分吸引眼球。然而,我们生活在数字图片的年代,我们也很少去想这些图片是在怎么存储在存储器上的或者去想这些图片是如何通过各种变化生成的。
在这篇文章中,我将带着你了解一些基本的图片特征处理。data massaging
依然是一样的:特征提取,但是这里我们还需要对跟多的密集数据进行处理,但同时数据清理是在数据库、表、文本等中进行。这是如何对图片进行处理的呢?我们将看到图片是怎么存储在硬盘中的,同时我们可以通过使用基本的操作来处理图片。
导入图片
在python中导入图片是非常容易的。下面的代码就是python如何导入代码的:
代码解释:
这幅图片有一些颜色和许多像素组成,为了形象这幅图片是如何存储的,把每一个像素想象成矩阵中的每一个元素。现在这些元素包含三个不同的密度信息,分别为颜色红、绿、蓝(RGB)。所以一个RGB的图片就变成了三维的矩阵。每一个数字就是颜色的密度(RGB)
让我们来看看一些转化:
就像你在上面看到的一样,我们对三个颜色维度进行了一些操作转变。黄色不是一种直接表示的颜色,它是红色和绿色的组合色。我们通过设置其他颜色密度值为零而得到了这些变化。
将图像转换为二维矩阵
处理图像的三维色有时可能是很复杂和冗余的。如果我们压缩图像为二维矩阵,在特征提取后,它将变得更简单。这是通过灰度图像或二值化(Binarizing)图像。当图片显示为不同灰色强度组合时灰度图像比二值化(Binarizing)图像颜色更加饱满,而二值化(binarzing)只是简单的构建一个充满0和1的二维矩阵而已。
这里将叫你如何将RGB图片转变成灰度图像:
就如你所见,图片的维度已经降为了两种灰度值了,然而图片的特征在两幅图片中依然清晰可见。这就是为什么灰色图像在硬盘上存贮更加节约空间。
现在让我们来二值化灰色图像,这是通过找到阀值和灰色度像素标志(flagging the pixels of Grayscale)。在这篇文章中我已经通过Otsu‘s方法来找到阀值的,Otsu‘s方法是通过最大化两类不同像素点之间的距离来计算最优阀值的,也就是说这个阀值最小化了同类间的变量值。
模糊化图片
本文最后部分我们将介绍更多有关特征提取的内容:图像模糊。灰度或二值图像有时需要捕获更多的图像而模糊图像在这样的场景下是非常方便的。例如,在这张图片如果铁路轨道比鞋子更加重要,模糊处理将会添加跟多的值。从这个例子中我们对模糊处理变得更清晰。模糊算法需要将邻近像素的加权平均值加到周围每个颜色像素中。下面是一个模糊处理的例子:
对上面的照片模糊处理后,我们清楚地看到鞋已经与铁路轨道具有相同的密度等级。因此,在许多场景中这种技术非常方便。
让我们看一个实际例子。我们想在一个小镇的照片上统计的人数。但是照片上还有一些建筑图像。现在建筑背后的人的颜色强度会低于建筑本身。因此,这些人我们就难以计数。模糊处理场景后才能平衡建筑和人在图像中的颜色强度。
完整的代码:
image = imread(r"C:\Users\Tavish\Desktop\7.jpg")
show_img(image)
red, yellow = image.copy(), image.copy()
red[:,:,(1,2)] = 0
yellow[:,:,2]=0
show_images(images=[red,yellow], titles=['Red Intensity','Yellow Intensity'])
from skimage.color import rgb2gray
gray_image = rgb2gray(image)
show_images(images=[image,gray_image],titles=["Color","Grayscale"])
print "Colored image shape:", image.shape
print "Grayscale image shape:", gray_image.shape
from skimage.filter import threshold_otsu
thresh = threshold_otsu(gray_image)
binary = gray_image > thresh
show_images(images=[gray_image,binary_image,binary],titles=["Grayscale","Otsu Binary"])
from skimage.filter import gaussian_filter
blurred_image = gaussian_filter(gray_image,sigma=20)
show_images(images=[gray_image,blurred_image],titles=["Gray Image","20 Sigma Blur"])
总结
以上就是本文关于python实现图片处理和特征提取详解的全部内容,希望对大家有所帮助
数据分析咨询请扫描二维码
《Python数据分析极简入门》 第2节 5 Pandas数学计算 importpandasaspdd=np.array([[81,&n ...
2024-11-23数据分析涉及多个方面的学习,包括理论知识和实践技能。以下是数据分析需要学习的主要方面: 基础知识: 数据分析的基本概念 ...
2024-11-22数据分析适合在多个单位工作,包括但不限于以下领域: 金融行业:金融行业对数据分析人才的需求非常大,数据分析师可以从事经 ...
2024-11-22数据分析是一种涉及从大量数据中提取有用信息和洞察力的过程。其工作内容主要包括以下几个方面: 数据收集与整理:数据分析师 ...
2024-11-22数据分析师需要掌握多种技能,以确保能够有效地处理和分析数据,并为业务决策提供支持。以下是数据分析师需要掌握的主要技能: ...
2024-11-22数据开发和数据分析是两个密切相关但又有所区别的领域。以下是它们的主要区别: 定义和目标: 数据开发:数据开发涉及数据的 ...
2024-11-22数据架构师是负责设计和管理企业数据架构的关键角色,其职责涵盖了多个方面,包括数据治理、数据模型设计、数据仓库构建、数据安 ...
2024-11-22数据分析师需要具备一系列技能,以确保能够有效地处理、分析和解释数据,从而支持决策制定。以下是数据分析师所需的关键技能: ...
2024-11-22数据分析师需要具备一系列技能,以确保能够有效地处理、分析和解释数据,从而支持决策制定。以下是数据分析师所需的关键技能: ...
2024-11-22数据分析师需要具备一系列的技能和能力,以确保能够有效地处理、分析和解释数据,从而支持业务决策。以下是数据分析师所需的主要 ...
2024-11-22需求持续增长 - 未来数据分析师需求将持续上升,企业对数据驱动决策的依赖加深。 - 预测到2025年,中国将需要高达220万的数据人 ...
2024-11-22《Python数据分析极简入门》 第2节 4 Pandas条件查询 在pandas中,可以使用条件筛选来选择满足特定条件的数据 importpanda ...
2024-11-22数据分析师的工作内容涉及多个方面,主要包括数据的收集、整理、分析和可视化,以支持商业决策和问题解决。以下是数据分析师的一 ...
2024-11-21数据分析师必须掌握的技能可以从多个方面进行归纳和总结。以下是数据分析师需要具备的主要技能: 统计学基础:数据分析师需要 ...
2024-11-21数据分析入门的难易程度因人而异,总体来看,入门并不算特别困难,但需要一定的学习和实践积累。 入门难度:数据分析入门相对 ...
2024-11-21数据分析是一项通过收集、整理和解释数据来发现有用信息的过程,它在现代社会中具有广泛的应用和重要性。数据分析能够帮助人们更 ...
2024-11-21数据分析行业正在迅速发展,随着技术的不断进步和数据量的爆炸式增长,企业对数据分析人才的需求也与日俱增。本文将探讨数据分析 ...
2024-11-21数据分析的常用方法包括多种技术,每种方法都有其特定的应用场景和优势。以下是几种常见的数据分析方法: 对比分析法:通过比 ...
2024-11-21企业数字化转型是指企业利用数字技术对其业务进行改造和升级,以实现提高效率、降低成本、创新业务模式等目标的过程。这一过程不 ...
2024-11-21数据分析作为一个备受追捧的职业领域,吸引着越来越多的女性加入其中。对于女生而言,在选择成为一名数据分析师时,行业选择至关 ...
2024-11-21