京公网安备 11010802034615号
经营许可证编号:京B2-20210330
这是一张灵异事件图。。。开个玩笑,这就是一张普通的图片。
毫无疑问,上面的那副图画看起来像一幅电脑背景图片。这些都归功于我的妹妹,她能够将一些看上去奇怪的东西变得十分吸引眼球。然而,我们生活在数字图片的年代,我们也很少去想这些图片是在怎么存储在存储器上的或者去想这些图片是如何通过各种变化生成的。
在这篇文章中,我将带着你了解一些基本的图片特征处理。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实现图片处理和特征提取详解的全部内容,希望对大家有所帮助
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
在MySQL数据库数据查询与数据分析中,GROUP BY与ORDER BY是使用频率极高的核心关键字。二者语法结构相似,常搭配使用,但核心功 ...
2026-09-14随着数字化治理、智慧运营、数字孪生技术的普及,数字体征成为衡量业务状态、系统运行、城市治理与企业经营健康度的核心体系。数 ...
2026-09-14 很多数据分析师沉迷于复杂的模型和算法,却忽略了数据分析的一项基础能力——描述性统计。事实上,大量商业分析问题,用描述 ...
2026-09-14在MySQL数据库运维与开发实践中,经常出现一种典型现象:数据库实际存储的数据量很小,数据表条数少、文件体积低,但服务器整体 ...
2026-09-11 很多数据分析师能熟练计算均值、标准差,但当被问到“总体和样本有什么区别”“参数和统计量有什么关系”“数据级别的高低如 ...
2026-09-11CDA数据分析师 出品 作者:李诗怡 定义: 将同一时间段内因具备相同属性或共同经历的用户划分为群体,分析其留存与生命周期价值 ...
2026-09-11在零售、商超、餐饮、线下门店等实体商业运营中,客流与销售额是衡量门店经营状态的两大核心指标。销售额是门店经营的最终结果, ...
2026-09-10在数据可视化体系中,柱形图是最基础、应用最广泛的图表类型,其中**累计柱形图(堆积柱状图)**是兼顾整体总量与内部结构的核心 ...
2026-09-10 许多数据分析师精通Excel函数和SQL查询,但当面对一张上万行的销售明细表,要快速回答“哪个地区销量最高”“哪款产品增长最 ...
2026-09-10在Python Pandas数据分析中,DataFrame是承载结构化数据的核心载体,数据清洗、数据修正、条件赋值、字段更新等实操场景,都离不 ...
2026-09-09 很多数据分析师掌握了Excel函数、会写SQL查询,但当被问到“数据从哪里来”“数据加工有哪些步骤”“如何使用分析工具连接数 ...
2026-09-09卡方检验(Chi-Square Test)是统计学中针对分类数据的经典显著性检验方法,核心用于判断两个离散分类变量是否相互独立、数据实 ...
2026-09-09CDA数据分析师 出品 作者:李诗怡 1. 销售漏斗阶段判断 题目:销售漏斗模型中,通过广告、社交媒体等方式触达品牌信息(如浏览品 ...
2026-09-07在Python数据分析中,Pandas库的DataFrame是最核心、最常用的结构化数据表对象,类似于Excel的二维表格,具备规整的行列结构、字 ...
2026-09-07在数据分析、经营复盘、业绩预测与经济统计工作中,平均增速(平均增长率)是衡量数据长期变化趋势、业务发展快慢的核心指标。不 ...
2026-09-07 很多数据分析师精通Excel单元格操作,但当被问到“表结构数据的基本处理单位是什么”“字段和记录的本质区别”“为什么表结 ...
2026-09-07随着大数据技术的快速发展,商业竞争逐步从传统的经验式经营转变为数据驱动的精细化运营。海量的用户行为数据、交易数据、运营数 ...
2026-09-04CDA数据分析师 出品 作者:李诗怡 1. 波士顿矩阵(BCG Matrix) 定义: BCG于1970年提出的业务组合分析工具,以"市场增长率"(纵 ...
2026-09-04 数据分析师八成以上的时间在和数据表格打交道,但许多人拿到Excel后习惯性地先算、先分析,结果回头发现漏了一列关键数据, ...
2026-09-04数据透视表是Excel与Power BI中最核心的数据分析工具,具备快速汇总、维度拆分、动态筛选的能力,可高效完成数据归类与统计展示 ...
2026-09-03