返回顶部
首页 > 资讯 > 后端开发 > Python >Python实现提取图片中颜色并绘制成可视化图表
  • 346
分享到

Python实现提取图片中颜色并绘制成可视化图表

2024-04-02 19:04:59 346人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录导入模块并加载图片提取颜色并整合成表格绘制图表实战环节今天小编来为大家分享一个有趣的可视化技巧,如何从图片中提取颜色然后绘制成可视化图表,如下图所示 在示例照片当中有着各种各样

今天小编来为大家分享一个有趣的可视化技巧,如何从图片中提取颜色然后绘制成可视化图表,如下图所示

在示例照片当中有着各种各样的颜色,我们将通过python中的可视化模块以及OpenCV模块来识别出图片当中所有的颜色要素,并且将其添加到可视化图表的配色当中

导入模块并加载图片

那么按照惯例,第一步一般都是导入模块,可视化用到的模块是matplotlib模块,我们将图片中的颜色抽取出来之后会保存在颜色映射表中,所以要使用到colORMap模块,同样也需要导入进来

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.patches as patches
import matplotlib.image as mpimg

from PIL import Image
from matplotlib.offsetbox import OffsetImage, AnnotationBbox

import cv2
import extcolors
from colormap import rgb2hex

然后我们先来加载一下图片,代码如下

input_name = 'test_1.png'
img = plt.imread(input_name)
plt.imshow(img)
plt.axis('off')
plt.show()

output

提取颜色并整合成表格

我们调用的是extcolors模块来从图片中提取颜色,输出的结果是RGB形式呈现出来的颜色,代码如下

colors_x = extcolors.extract_from_path(img_url, tolerance=12, limit = 12)
colors_x

output

([((3, 107, 144), 180316),
  ((17, 129, 140), 139930),
  ((89, 126, 118), 134080),
  ((125, 148, 154), 20636),
  ((63, 112, 126), 18728),
  ((207, 220, 226), 11037),
  ((255, 255, 255), 7496),
  ((28, 80, 117), 4972),
  ((166, 191, 198), 4327),
  ((60, 150, 140), 4197),
  ((90, 94, 59), 3313),
  ((56, 66, 39), 1669)],
 538200)

我们将上述的结果整合成一个DataFrame数据集,代码如下

def color_to_df(input_color):
    colors_pre_list = str(input_color).replace('([(', '').split(', (')[0:-1]
    df_rgb = [i.split('), ')[0] + ')' for i in colors_pre_list]
    df_percent = [i.split('), ')[1].replace(')', '') for i in colors_pre_list]

    # 将RGB转换成十六进制的颜色
    df_color_up = [rgb2hex(int(i.split(", ")[0].replace("(", "")),
                           int(i.split(", ")[1]),
                           int(i.split(", ")[2].replace(")", ""))) for i in df_rgb]

    df = pd.DataFrame(zip(df_color_up, df_percent), columns=['c_code', 'occurence'])
    return df

我们尝试调用上面我们自定义的函数,输出的结果至DataFrame数据集当中

df_color = color_to_df(colors_x)
df_color

output

绘制图表

接下来便是绘制图表的阶段了,用到的是matplotlib模块,代码如下

fig, ax = plt.subplots(figsize=(90,90),dpi=10)
wedges, text = ax.pie(list_precent,
                      labels= text_c,
                      labeldistance= 1.05,
                      colors = list_color,
                      textprops={'fontsize': 120, 'color':'black'}
                     )
plt.setp(wedges, width=0.3)
ax.set_aspect("equal")
fig.set_facecolor('white')
plt.show()

output

从出来的饼图中显示了每种不同颜色的占比,我们更进一步将原图放置在圆环当中,

imagebox = OffsetImage(img, zoom=2.3)
ab = AnnotationBbox(imagebox, (0, 0))
ax1.add_artist(ab)

output

最后制作一张调色盘,将原图中的各种不同颜色都罗列开来,代码如下

## 调色盘
x_posi, y_posi, y_posi2 = 160, -170, -170
for c in list_color:
    if list_color.index(c) <= 5:
        y_posi += 180
        rect = patches.Rectangle((x_posi, y_posi), 360, 160, facecolor = c)
        ax2.add_patch(rect)
        ax2.text(x = x_posi+400, y = y_posi+100, s = c, fontdict={'fontsize': 190})
    else:
        y_posi2 += 180
        rect = patches.Rectangle((x_posi + 1000, y_posi2), 360, 160, facecolor = c)
        ax2.add_artist(rect)
        ax2.text(x = x_posi+1400, y = y_posi2+100, s = c, fontdict={'fontsize': 190})

ax2.axis('off')
fig.set_facecolor('white')
plt.imshow(bg)       
plt.tight_layout()

output

实战环节

这一块儿是实战环节,我们将上述所有的代码封装成一个完整的函数

def exact_color(input_image, resize, tolerance, zoom):
    
    output_width = resize
    img = Image.open(input_image)
    if img.size[0] >= resize:
        wpercent = (output_width/float(img.size[0]))
        hsize = int((float(img.size[1])*float(wpercent)))
        img = img.resize((output_width,hsize), Image.ANTIALIAS)
        resize_name = 'resize_'+ input_image
        img.save(resize_name)
    else:
        resize_name = input_image
    
    fig.set_facecolor('white')
    ax2.axis('off')
    bg = plt.imread('bg.png')
    plt.imshow(bg)       
    plt.tight_layout()
    return plt.show()
    
exact_color('test_2.png', 900, 12, 2.5)

output

以上就是Python实现提取图片中颜色并绘制成可视化图表的详细内容,更多关于Python提取图片颜色的资料请关注编程网其它相关文章!

--结束END--

本文标题: Python实现提取图片中颜色并绘制成可视化图表

本文链接: https://lsjlt.com/news/119050.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python实现提取图片中颜色并绘制成可视化图表
    目录导入模块并加载图片提取颜色并整合成表格绘制图表实战环节今天小编来为大家分享一个有趣的可视化技巧,如何从图片中提取颜色然后绘制成可视化图表,如下图所示 在示例照片当中有着各种各样...
    99+
    2024-04-02
  • Android利用Palette实现提取图片颜色
    目录前言创建Palette提取颜色文字颜色自动适配更多功能总结前言 Palette即调色板这个功能其实很早就发布了,Jetpack同样将这个功能也纳入其中,想要使用这个功能,需要先依...
    99+
    2024-04-02
  • Python数据可视化JupyterNotebook绘图生成高清图片
    大家好,我是小五???? 最近有小伙伴问了个问题:如何在jupyter notebook,用Matplotlib画图时能够更“高清”? 今天正好跟大家...
    99+
    2024-04-02
  • Matplotlib可视化之自定义颜色绘制精美统计图
    自定义颜色 在生活中,我们可能对色彩的搭配与审美有自己的偏好,因此,我们可能希望matplotlib遵循自定义的颜色方案,以便所绘制的图形更好地适合文档或网页。 matplotlib中有多种定义颜色的方法,常见的方法...
    99+
    2022-06-02
    Matplotlib绘制统计图 Python Matplotlib绘图
  • Python+pyecharts绘制交互式可视化图表
    目录一、热力图二、地理图表2.1 地理坐标系2.2 市区地图2.3人口流动图2.4 3D地图2.5 3D地球三、疫情数据可视化四、空气质量数据可视化五、外卖点分布数据可视化六、总结本...
    99+
    2024-04-02
  • Android怎么用Palette实现提取图片颜色
    本文小编为大家详细介绍“Android怎么用Palette实现提取图片颜色”,内容详细,步骤清晰,细节处理妥当,希望这篇“Android怎么用Palette实现提取图片颜色”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知...
    99+
    2023-06-29
  • Python绘制地理图表可视化神器pyecharts
    目录地图地图模板系列中国地图省份数据地图(重庆地图)中国城市地图数据地图(分段型)世界地图中国地图带城市(详细)中国连续数据地图复杂地图观赏地图 这期文章我们一起来看看地图是如何绘制...
    99+
    2024-04-02
  • Python可视化神器pyecharts绘制地理图表
    目录地理图表地理图表之热力图系列模板人口流动趋势图(中国)中国城市分段热力图重庆省份微塑料分布热力图中国城市连续热力图中国城市热力动态图中国城市散点热力图地理图表 什么是地理图表?地...
    99+
    2024-04-02
  • Python可视化绘制图表的教程详解
    目录1.Matplotlib 程序包2.绘图命令的基本架构及其属性设置3.Seaborn 模块介绍3.1 未加Seaborn 模块的效果4.描述性统计图形概览4.1制作数据4.2 频...
    99+
    2024-04-02
  • 怎么用Python绘制动态可视化图表
    这篇“怎么用Python绘制动态可视化图表”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么用Python绘制动态可视化图表...
    99+
    2023-06-29
  • 如何用Python绘制动态可视化图表
    本篇内容主要讲解“如何用Python绘制动态可视化图表”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何用Python绘制动态可视化图表”吧!安装模块如果你还没安装 Plotly,只需在你的终端...
    99+
    2023-06-30
  • 如何用Python绘制可视化动态图表
    这篇文章主要介绍“如何用Python绘制可视化动态图表”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“如何用Python绘制可视化动态图表”文章能帮助大家解决问题。对数据科学家来说,讲故事是一个至关重...
    99+
    2023-06-30
  • 如何利用 Python 绘制动态可视化图表
    目录一、安装相关的模块二、gif和matplotlib的结合三、gif和plotly的结合四、matplotlib多子图动态可视化五、动态气泡图一、安装相关的模块 首先第一步的话我们...
    99+
    2024-04-02
  • 用 Python 绘制几张有趣的可视化图表
    流程图存在于我们生活的方方面面,对于我们追踪项目的进展,做出各种事情的决策都有着巨大的帮助,而对于万能的Python而言呢,绘制流程图也是十分轻松的,今天小编就来为大家介绍两个用于绘制流程图的模块,我们先来看第一个。SchemDraw那么在...
    99+
    2023-05-14
    Python 可视化图表
  • 怎么用Python绘制有趣的可视化图表
    SchemDraw那么在SchemDraw模块当中呢,有六个元素用来代表流程图的主要节点的,椭圆形代表的是决策的开始和结束,代码如下:import schemdraw from schemdraw.flow i...
    99+
    2023-05-14
    Python
  • 用 Python 绘制动态可视化图表,太酷了!
    对数据科学家来说,讲故事是一个至关重要的技能。为了表达我们的思想并且说服别人,我们需要有效的沟通。而漂漂亮亮的可视化是完成这一任务的绝佳工具。本文将介绍5种非传统的可视化技术,可让你的数据故事更漂亮和更有效。这里将使用Python的Plot...
    99+
    2023-05-24
    Python 可视化图表
  • Python数据可视化实践之使用Matplotlib绘制图表
    目录一. Matplotlib 简介二. 安装与导入三. 基本绘图操作1. 折线图2. 柱状图3. 饼图四. 图表定制五. 多图展示六. 总结一. Matplotlib 简介 Mat...
    99+
    2023-05-18
    Python Matplotlib绘制图表 Python Matplotlib
  • Python Matplotlib数据可视化绘图之(六)————图片大小、颜色、标题、纵横坐标、画布和绘图区域背景颜色、Legend(图例)等的参数设置详解
    文章目录 前言一、图片大小的设定和调节1. 三种调整matplotlib图片大小的方法1.1 plt.figure(figsize=(n, n))1.1.1 代码如下:1.1.2 输出结果如下...
    99+
    2023-09-08
    python matplotlib 信息可视化 numpy
  • Python读取CSV文件并进行数据可视化绘图
    介绍:文件 sitka_weather_07-2018_simple.csv是阿拉斯加州锡特卡2018年1月1日的天气数据,其中包含当天的最高温度和最低温度。数据文件存储与...
    99+
    2024-04-02
  • Python数据可视化之基于pyecharts实现的地理图表的绘制
    目录一、例子:百度迁徙二、基础语法介绍三、中国地图绘制四、中国地图(特效散点图)五、中国人口地理迁徙图绘制六、热力图:广东地图热力图绘制1七、热力图:广东地图热力图绘制2一、例子:百度迁徙 百度地图春节人口迁徙大数据...
    99+
    2022-06-02
    pyecharts绘制图表 Python pyecharts
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作