用python进行图片处理和特征提取

2023-11-17

原文来自:http://www.analyticsvidhya.com/blog/2015/01/basics-image-processing-feature-extraction-python/


毫无疑问,上面的那副图画看起来像一幅电脑背景图片。这些都归功于我的妹妹,她能够将一些看上去奇怪的东西变得十分吸引眼球。然而,我们生活在数字图片的年代,我们也很少去想这些图片是在怎么存储在存储器上的或者去想这些图片是如何通过各种变化生成的。

在这篇文章中,我将带着你了解一些基本的图片特征处理。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"])


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用python进行图片处理和特征提取 的相关文章

随机推荐

  • Offer差点无缘?HUAWEI 4面技术5面HR,踩线挺过!

    大厂面试真题向来都是各大求职者的最佳练兵场 而今天小编带来的便是 HUAWEI 面经 这是一次真实的面试经历 虽然不是我自己亲身经历但是听当事人叙述后便会深有同感 因为我朋友差点就与offer擦肩而过了 总共4面技术5面HR 真的好艰难 为
  • laravel cookie的使用方法

    1 Cookie make Cookie forever Cookie get 的使用方法 Route get cookieset function foreverCookie Cookie forever forever Success
  • 线程的五大状态

    线程从创建 运行到结束总是处于下面五个状态之一 新建状态 就绪状态 运行状态 阻塞状态及死亡状态 http www blogjava net images blogjava net santicom 360 E6 88 AA E5 9B B
  • 【论文笔记】AudioGPT: Understanding and Generating Speech,Music, Sound, and Talking Head

    一 简介 核心问题 目前llm无法解决复杂的音频信息或进行口语对话 数据和计算资源制约了高方向的发展 本文 1 使用chatgpt作为接口 2 没有训练口语模型 而是将LLM与语音对话的输入 输出接口 ASR TTS 连接起来 AudioG
  • MATLAB怎么画时间序列的自相关函数和偏自相关函数图

    autocorr Series 画出自相关图 图中上下两条横线分别表示自相关系数的上下界 超出边界的部分表示存在相关关系 a b autocorr Series a 为各阶的相关系数 b 为滞后阶数 parcorr Series 画出偏自相
  • 服务器SSL不安全漏洞修复方案

    关于SSL POODLE漏洞 POODLE Padding Oracle On Downgraded Legacy Encryption 是最新安全漏洞 CVE 2014 3566 的代号 俗称 贵宾犬 漏洞 此漏洞是针对SSL3 0中CB
  • 风险平价组合(risk parity)理论与实践

    本文介绍了风险平价组合的理论与实践 后续文章将对risk parity组合进行更深入探讨以及引入预期收益后的资产配置实战策略 感兴趣的朋友可以直接前往BigQuant人工智能量化投资平台克隆代码进行复现 前言 资产配置是个很广泛的话题 在投
  • 【ChatGPT+Python】Landsat卫星图像黑边去云及旋转校正

    引言 下图是一张Landsat图像的示例 右图 我们可以明显地看到四周的黑边和倾斜的角度 这是由于卫星传感器成像导致的 一般情况下 我们是不需要去除黑边和选择的 因为这样做之后投影信息和位置信息就不正确了 但对于做深度学习图像处理任务的同学
  • “宽度确定高度等比例的图片”和“高度确定宽度等比例的图片”有什么不同

    文章目录 1 宽度确定高度等比例的图片 和 高度确定宽度等比例的图片 有什么不同 2 附 1 宽度确定高度等比例的图片 和 高度确定宽度等比例的图片 有什么不同 宽度确定高度等比例的图片 和 高度确定宽度等比例的图片 都是指图片的宽度和高度
  • stm32与esp8266连接,将数据上传到OneNet(MQTT)

    文章目录 前言 一 所用器件 1 STM32F103C8T6 2 转串口模块 CH340 3 esp8266 01s 4 气体检测模块 MQ 二 代码分析 1 接线 2 代码 三 OneNet创建一个设备 1 百度搜索onenet 2 进入
  • 第二届蓝桥杯-最小公倍数问题

    题目 题目链接 题解 数学 高精度 如果直接按照计算多个数连续计算最小公倍数 那么显然要经过高精度乘法 高精度除法 两个高精度过于麻烦了 换个思路 我们将每个数都分解质因数 全部数的最小公倍数必然由分解得到的质因数相乘得到 而且构成最小公倍
  • uniapp开发h5,解决项目启动时,Network: unavailable问题

    网上搜了很多 发现都说是要禁用掉电脑多余的网卡 这方法我试了没有好 不晓得为啥子 之后在网上看 uniapp的devServer vue2的话对标的就是webpack4的devserver 除了复杂的函数配置项 所以我去查了webpack4
  • Maven学习 (一) 搭建Maven环境

    http www cnblogs com quanyongan archive 2013 04 17 3025971 html 有两种方式可以配置maven的环境配置 本人推荐使用第二种 即使用本地的maven安装文件 个人感觉这样可以方便
  • dvwa中的xss(跨站脚本)攻击

    环境 dvwa 192 168 11 135 dvwa版本 Version 1 9 Release date 2015 09 19 kail机器 192 168 11 156 一 XSS是什么 XSS Cross Site Scriptin
  • 2023华为OD机试真题-服务中心的最佳位置(JAVA、Python、C++)

    题目描述 一家快递公司希望在一条街道建立新的服务中心 公司统计了该街道中所有区域在地图上的位置 并希望能够以此为依据为新的服务中心选址 使服务中心 到所有区域的距离的总和最小 给你一个数组 positions 其中 positions i
  • 成功解决ValueError: setting an array element with a sequence. The requested array has an...

    背景 这个问题是在使用scipy和numpy处理数据时出现的 scipy的版本为1 9 1 numpy的版本为1 25 0 而scipy 1 9 1时 与其匹配的numpy版本为 1 18 5 1 25 0 左闭右开 如果不匹配的话 在使用
  • 2022年前端面试题加答案

    1 javascript基本数据类型 string number null underfined boolean object是所有对象的父对象 2 浅谈javascript中变量和函数声明的提升 变量和函数声明的提升会被提升到最顶部去执行
  • C++中的并行与并发

    1 1 并行基础 std thread 用于创建一个执行的线程实例 所以它是一切并发编程的基础 使用时需要包含
  • 夜夜肝到秃顶,2022年Java面试题目收集整理归纳

    开始的碎碎念 本文大多是各大企业的topN题目 针对java中高级开发 本文会持续收集更新内容 如果大家有优质的Java面试题 也欢迎大家来投稿 特意整理出这个分类的目录 方便大家平时复习和收藏哈 希望正在准备面试的朋友们能顺顺利利找到自己
  • 用python进行图片处理和特征提取

    原文来自 http www analyticsvidhya com blog 2015 01 basics image processing feature extraction python 毫无疑问 上面的那副图画看起来像一幅电脑背景图