读取图片颜色占比绘制{精美}折线图失败

news2025/1/16 12:41:48

问题之初

读取图片颜色占比绘制{精美}折线图失败❌


花了4个小时 你问我问题吧  选择题


<small>
读取一张图片各种颜色占比
默认
/storage/emulated/0/Pictures/Screenshots/Screenshot_20230725_195440.jpg

自动设置检测代码需要的库 函数 变量 定义 样式等

from PIL import Image  # 导入PIL大法,这是处理图像的必备神器

# 图片路径,此处为示例,实际应该根据具体情况修改
image_path = "/storage/emulated/0/Pictures/Screenshots/Screenshot_20230725_195440.jpg"

# 打开并加载图片
image = Image.open(image_path)  # 打开图片文件
pixels = image.load()  # 加载像素数据

# 初始化颜色统计字典,用于存储颜色及其在图片中出现的次数
color_counts = {}

# 遍历所有像素,并统计颜色出现次数
for i in range(image.size[0]):  # 循环遍历图片的宽度
    for j in range(image.size[1]):  # 循环遍历图片的高度
        color = pixels[i, j]  # 获取当前像素的颜色
        if isinstance(color, int):
            # 如果当前像素为灰度图像素,则将其转换为RGB格式
            color = (color, color, color)
        if color not in color_counts:  # 如果颜色不在统计字典中,则加入字典并初始化计数为1
            color_counts[color] = 1
        else:  # 否则计数加1
            color_counts[color] += 1

# 计算每种颜色在图片中的比例
threshold = 0.001  # 声明占比阈值,此值用于控制输出结果中的颜色种类
total_pixels = image.size[0] * image.size[1]  # 计算总像素数
color_ratios = {}
for color, count in color_counts.items():
    color_ratio = count / total_pixels  # 计算颜色在图片中的比例
    if color_ratio >= threshold:  # 如果该颜色的占比超过阈值,则将其加入结果字典
        color_ratios[color] = color_ratio

# 输出结果
if len(color_ratios) > 0:
    # 对结果字典按照颜色占比从大到小排序,并输出颜色及其占比
    for color, ratio in sorted(color_ratios.items(), key=lambda x: x[1], reverse=True):
        print(f'{color}: {ratio:.2%}')
else:
    print("图片中不存在占比大于0%的颜色")

文件名命名方法:编号. 库 样式 时间戳
保存 /storage/emulated/0/文件/代码print相关/结构图/
没有就新建
中文字体 /storage/emulated/0/文件/字体大全/字体包/宋体.ttf
其它中文字体 /storage/emulated/0/文件/字体大全/字体包/
英语字体 /storage/emulated/0/文件/字体大全/
这个目录下检索可用英语.ttf,如果需要英语的话

那么多字体,不支持就更换
文件名没有库或者样式就省略掉
优雅热情沉默的注释每行每行

with plt.style.context(matplotx.styles.dracula):
    # 散点图
    plt.scatter(x, y, c=y2)
    # 颜色类型
    plt.colorbar(label='Y2')
    # 坐标轴名称
    plt.xlabel('X')
    plt.ylabel('Y')
    # 显示    plt.show()

完整代码
自动设置检测代码需要的库 函数 变量 定义 样式等

文件名命名方法:编号. 库 样式 时间戳
保存 /storage/emulated/0/文件/代码print相关/结构图/
没有就新建
中文字体 /storage/emulated/0/文件/字体大全/字体包/宋体.ttf
其它中文字体 /storage/emulated/0/文件/字体大全/字体包/
英语字体 /storage/emulated/0/文件/字体大全/
这个目录下检索可用英语.ttf,如果需要英语的话

那么多字体,不支持就更换
文件名没有库或者样式就省略掉
优雅热情沉默的注释每行每行

input设置图片路径 默认 /storage/emulated/0/Pictures/Screenshots/Screenshot_2023_1005_204401.png

文件名命名方法:编号. 库 样式 时间戳
保存 /storage/emulated/0/文件/代码print相关/结构图/
没有就新建
中文字体 /storage/emulated/0/文件/字体大全/字体包/宋体.ttf
其它中文字体 /storage/emulated/0/文件/字体大全/字体包/
英语字体 /storage/emulated/0/文件/字体大全/
这个目录下检索可用英语.ttf,如果需要英语的话

那么多字体,不支持就更换
文件名没有库或者样式就省略掉
优雅热情沉默的注释每行每行

input设置图片路径 默认 /storage/emulated/0/Pictures/Screenshots/Screenshot_2023_1005_204401.png

完整代码
自动设置检测代码需要的库 函数 变量 定义 样式等

with plt.style.context(matplotx.styles.dracula):
    # 散点图
    plt.scatter(x, y, c=y2)
    # 颜色类型
    plt.colorbar(label='Y2')
    # 坐标轴名称
    plt.xlabel('X')
    plt.ylabel('Y')
    # 显示    plt.show()


图片保存在什么位置
增加打印位置和进度条
增加打印图片保存位置
增加 f.write(f"\t\t{str(color)}: {ratio:.2%},\n")设置
增加input读取图片提示

注意点


根据代码示例,图片保存的位置为`/storage/emulated/0/Pictures/Screenshots/Screenshot_20230725_195440.jpg`。如果你想要更改图片保存位置,可以修改`image_path`变量的数值为你想要保存图片的路径。

另外,在代码中没有提到具体的图片保存操作,需要在适当的位置添加保存代码。可以使用PIL库的`image.save()`方法将图片保存到指定路径。例如,可以在`# 输出结果`后面添加以下代码实现图片保存:

```python
image.save("/storage/emulated/0/Pictures/Screenshots/Saved_Image.jpg")

这样,图片将会保存在/storage/emulated/0/Pictures/Screenshots/目录下,并命名为Saved_Image.jpg。你可以根据自己的需求调整保存路径和文件名。

关于打印位置和进度条的需求,可以在适当的位置添加打印语句和进度条代码,以实现你的需求。同时,你可以使用格式化字符串(f-string)来输出颜色及其占比的信息到文件,例如在# 对结果字典按照颜色占比从大到小排序,并输出颜色及其占比的代码块中添加以下代码:

with open("占比信息.txt", "w") as f:
    for color, ratio in sorted(color_ratios.items(), key=lambda x: x[1], reverse=True):
        f.write(f"\t\t{str(color)}: {ratio:.2%},\n")

这样会将颜色及其占比信息保存到名为"占比信息.txt"的文件中。同样,你可以根据需要修改保存路径和文件名。

最后,关于输入读取图片路径的提示,你可以使用input()函数来获取用户输入的图片路径,并将其赋值给image_path变量。例如,在代码开头添加以下代码:

image_path = input("请输入图片路径:")

这样运行代码时,程序会要求用户输入图片的路径,并将用户输入的路径作为图片路径进行处理。

代码

以下是根据你提供的要求,完整添加了保存图片、打印信息、进度条等功能后的代码:

import os
import time
from PIL import Image
import matplotlib.pyplot as plt
import matplotlib.style as matplotx

# 文件保存路径
folder_path = "/storage/emulated/0/文件/代码print相关/结构图/"
if not os.path.exists(folder_path):
    os.makedirs(folder_path)

# 字体路径
font_dir = "/storage/emulated/0/文件/字体大全/"

# 获取可用的中文字体路径
chinese_font = ""
if os.path.exists(font_dir + "字体包/宋体.ttf"):
    chinese_font = font_dir + "字体包/宋体.ttf"
else:
    for font_file in os.listdir(font_dir + "字体包/"):
        if font_file.endswith(".ttf"):
            chinese_font = font_dir + "字体包/" + font_file
            break

# 获取可用的英文字体路径
english_font = ""
for font_file in os.listdir(font_dir):
    if font_file.endswith(".ttf"):
        english_font = font_dir + font_file
        break

# 获取图片路径
image_path = input("请输入图片路径:")
if not os.path.isfile(image_path):
    print("输入的图片路径无效!")
    exit()

# 打开并加载图片
image = Image.open(image_path)
pixels = image.load()

# 初始化颜色统计字典,用于存储颜色及其在图片中出现的次数
color_counts = {}

# 遍历所有像素,并统计颜色出现次数
total_pixels = image.size[0] * image.size[1]  # 计算总像素数
bar_length = 50  # 进度条长度
print("正在处理,请稍候...")
for i in range(image.size[0]):
    for j in range(image.size[1]):
        color = pixels[i, j]
        if isinstance(color, int):
            color = (color, color, color)
        if color not in color_counts:
            color_counts[color] = 1
        else:
            color_counts[color] += 1
    if i == 0 or (i + 1) % max(1, image.size[0] // bar_length) == 0 or i == image.size[0] - 1:
        progress = (i + 1) / image.size[0]
        print("[" + "#" * int(progress * bar_length) + " " * (bar_length - int(progress * bar_length)) +
              "] {:.2%}".format(progress), end="\r")

# 计算每种颜色在图片中的比例
threshold = 0.001  # 占比阈值,控制输出结果中的颜色种类
color_ratios = {}
for color, count in color_counts.items():
    color_ratio = count / total_pixels
    if color_ratio >= threshold:
        color_ratios[color] = color_ratio

# 输出结果,并保存颜色占比信息到文件
print("\n颜色占比信息:")
info_file = folder_path + "颜色占比信息.txt"
with open(info_file, "w") as f:
    for color, ratio in sorted(color_ratios.items(), key=lambda x: x[1], reverse=True):
        print(f"\t\t{str(color)}: {ratio:.2%}")
        f.write(f"{str(color)}: {ratio:.2%}\n")
print(f"颜色占比信息已保存至 {info_file}")

# 散点图设置、保存
x = [1, 2, 3, 4, 5]
y = [4, 3, 5, 1, 2]
y2 = [0.1, 0.3, 0.5, 0.8, 0.4]
with plt.style.context(matplotx.styles.dracula):
    fig, ax = plt.subplots()
    # 散点图
    ax.scatter(x, y, c=y2)
    # 颜色类型
    ax.colorbar(label='Y2')
    # 坐标轴名称
    ax.set_xlabel('X', fontproperties=plt.FontProperties(fname=english_font))
    ax.set_ylabel('Y', fontproperties=plt.FontProperties(fname=chinese_font))
    # 显示和保存图片
    image_name = ""
    if os.path.basename(image_path).startswith("Screenshot"):
        image_name = "Color_Analysis_" + time.strftime("%Y%m%d_%H%M%S") + ".png"
    else:
        image_name = os.path.splitext(os.path.basename(image_path))[0] + "_Color_Analysis.png"
    image_file = folder_path + image_name
    plt.savefig(image_file)
    print(f"颜色分析图已保存至 {image_file}")

plt.show()

希望能够满足你的需求!如果还有其它问题,请随时提问。

错误❌

反手就给我一个错误❌,让我欲仙欲死!
在这里插入图片描述
在这里插入图片描述
这个问题是因为matplotx.style模块没有styles属性导致的。正确的写法应该是matplotlib.style.context()。请修改以下代码段:

with plt.style.context(matplotx.styles.dracula):

修改为:

with plt.style.context("dark_background"):

这样可以使用"dark_background"风格。同时,请确保你已经安装了matplotlib库,并且版本较新。

打印

/data/user/0/org.qpython.qpy/files/bin/qpy thon3.sh "/storage/emulated/0/qpython/图计 算.3.3.2.py" && exit
python/图计算.3.3.2.py" && exit          < 请输入图片路径:/storage/emulated/0/Pictur es/Screenshots/Screenshot_2023_1005_204401 .png
正在处理,请稍候...
[                                          [                                          [#                                         [##                                        [###                                       [####                                      [#####                                     [######                                    [#######                                   [########                                  [#########                                 [##########                                [###########                               [############                              [#############                             [##############                            [###############                           [################                          [#################                         [##################                        [###################                       [####################                      [#####################                     [######################                    [#######################                   [########################                  [#########################                 [##########################                [###########################               [############################              [#############################             [##############################            [###############################           [################################          [#################################         [##################################        [###################################       [###################################       [####################################      [#####################################     [######################################    [#######################################   [########################################  [######################################### [######################################### [######################################### [######################################### [######################################### [######################################### [######################################### [######################################### [######################################### [######################################### #########] 100.00%
颜色占比信息:
                (240, 247, 255): 0.43%
                (250, 240, 231): 0.37%
                (240, 244, 253): 0.34%
                (241, 248, 255): 0.34%
                (241, 245, 254): 0.34%
                (249, 239, 230): 0.30%
                (238, 220, 200): 0.29%
                (241, 220, 201): 0.28%
                (239, 243, 252): 0.26%
                (223, 211, 199): 0.26%
                (239, 246, 254): 0.25%
                (224, 212, 200): 0.23%
                (249, 248, 253): 0.22%
                (237, 220, 202): 0.21%
                (235, 220, 199): 0.21%
                (248, 248, 248): 0.21%
                (235, 216, 199): 0.18%
                (234, 219, 198): 0.18%
                (247, 247, 247): 0.18%
                (246, 240, 228): 0.17%
                (242, 246, 255): 0.17%
                (233, 217, 201): 0.17%
                (251, 241, 232): 0.15%
                (249, 249, 249): 0.15%
                (236, 217, 200): 0.14%
                (248, 239, 230): 0.14%
                (226, 212, 201): 0.14%
                (238, 245, 253): 0.13%
                (248, 248, 246): 0.13%
                (248, 247, 252): 0.13%
                (247, 246, 251): 0.13%
                (240, 230, 220): 0.13%
                (234, 215, 198): 0.13%
                (249, 240, 231): 0.12%
                (247, 248, 252): 0.12%
                (233, 216, 200): 0.12%
                (240, 224, 209): 0.12%
                (244, 247, 255): 0.12%
                (247, 238, 229): 0.12%
                (249, 249, 247): 0.11%
                (220, 206, 193): 0.11%
                (238, 242, 251): 0.11%
                (239, 223, 208): 0.11%
                (246, 245, 250): 0.10%
                (244, 247, 254): 0.10%
                (237, 219, 199): 0.10%
颜色占比信息已保存至 /storage/emulated/0/文件/代码print相关/结构图/颜色占比信息.txt
Traceback (most recent call last):
  File "/storage/emulated/0/qpython/图计算 .3.3.2.py", line 84, in <module>
    with plt.style.context(matplotx.styles .dracula):
                           ^^^^^^^^^^^^^^^ AttributeError: module 'matplotlib.style'  has no attribute 'styles'
1|:/ $


完整修改代码
给我。
不要省略任何代码
进度条用方块
代码考虑各种因素

最近1次尝试❌

下面是完整修改后的代码,请注意其中的注释:

import os
import time
from PIL import Image
import matplotlib.pyplot as plt

# 文件保存路径
folder_path = "/storage/emulated/0/文件/代码print相关/结构图/"
if not os.path.exists(folder_path):
    os.makedirs(folder_path)

# 字体路径
font_dir = "/storage/emulated/0/文件/字体大全/"

# 获取可用的中文字体路径
chinese_font = ""
if os.path.exists(font_dir + "字体包/宋体.ttf"):
    chinese_font = font_dir + "字体包/宋体.ttf"
else:
    for font_file in os.listdir(font_dir + "字体包/"):
        if font_file.endswith(".ttf"):
            chinese_font = font_dir + "字体包/" + font_file
            break

# 获取可用的英文字体路径
english_font = ""
for font_file in os.listdir(font_dir):
    if font_file.endswith(".ttf"):
        english_font = font_dir + font_file
        break

# 获取图片路径
image_path = input("请输入图片路径:")
if not os.path.isfile(image_path):
    print("输入的图片路径无效!")
    exit()

# 打开并加载图片
image = Image.open(image_path)
pixels = image.load()

# 初始化颜色统计字典,用于存储颜色及其在图片中出现的次数
color_counts = {}

# 遍历所有像素,并统计颜色出现次数
total_pixels = image.size[0] * image.size[1]  # 计算总像素数
bar_length = 50  # 进度条长度
print("正在处理,请稍候...")
for i in range(image.size[0]):
    for j in range(image.size[1]):
        color = pixels[i, j]
        if isinstance(color, int):
            color = (color, color, color)
        if color not in color_counts:
            color_counts[color] = 1
        else:
            color_counts[color] += 1
    if i == 0 or (i + 1) % max(1, image.size[0] // bar_length) == 0 or i == image.size[0] - 1:
        progress = (i + 1) / image.size[0]
        filled_length = int(progress * bar_length)
        empty_length = bar_length - filled_length
        print("[" + "■" * filled_length + "□" * empty_length + "] {:.2%}".format(progress), end="\r")

# 计算每种颜色在图片中的比例
threshold = 0.001  # 占比阈值,控制输出结果中的颜色种类
color_ratios = {}
for color, count in color_counts.items():
    color_ratio = count / total_pixels
    if color_ratio >= threshold:
        color_ratios[color] = color_ratio

# 输出结果,并保存颜色占比信息到文件
print("\n颜色占比信息:")
info_file = folder_path + "颜色占比信息.txt"
with open(info_file, "w") as f:
    for color, ratio in sorted(color_ratios.items(), key=lambda x: x[1], reverse=True):
        print(f"\t\t{str(color)}: {ratio:.2%}")
        f.write(f"{str(color)}: {ratio:.2%}\n")
print(f"颜色占比信息已保存至 {info_file}")

# 散点图设置、保存
x = [1, 2, 3, 4, 5]
y = [4, 3, 5, 1, 2]
y2 = [0.1, 0.3, 0.5, 0.8, 0.4]
with plt.style.context("dark_background"):
    fig, ax = plt.subplots()
    # 散点图
    ax.scatter(x, y, c=y2)
    # 颜色类型
    ax.colorbar(label='Y2')
    # 坐标轴名称
    ax.set_xlabel('X', fontproperties=plt.FontProperties(fname=english_font))
    ax.set_ylabel('Y', fontproperties=plt.FontProperties(fname=chinese_font))
    # 显示和保存图片
    image_name = ""
    if os.path.basename(image_path).startswith("Screenshot"):
        image_name = "Color_Analysis_" + time.strftime("%Y%m%d_%H%M%S") + ".png"
    else:
        image_name = os.path.splitext(os.path.basename(image_path))[0] + "_Color_Analysis.png"
    image_file = folder_path + image_name
    plt.savefig(image_file)
    print(f"颜色分析图已保存至 {image_file}")

plt.show()

该代码包含了以下修改:

  • 进度条使用方块来表示填充部分,对应进度条长度的50个方块。
  • 添加了对文件路径的有效性检查,若路径无效则会提示并退出程序。
  • 添加了对中文字体和英文字体的选择,通过font_dir变量指定字体文件夹路径。
  • 保存颜色占比信息到文件,并将文件路径输出。
  • 添加了散点图的设置和保存功能,其中包括添加颜色类型标签和设置坐标轴名称等内容,保存的图片名称为原图片名称加上后缀_Color_Analysis.png

请注意,根据实际情况,你可能需要根据字体文件的存放位置修改font_dir变量的值,以确保能正确加载字体文件。

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1065015.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++库函数——set与map的模拟实现

目录 1.红黑树的迭代器与改造 ①红黑树的迭代器 ②红黑树的改造 2.map的模拟实现 3.set的模拟实现 4.测试 1.红黑树的迭代器与改造 ①红黑树的迭代器 对于上面这棵红黑树&#xff0c;我们可以很容易得知道begin()是红黑树的最左节点&#xff0c;end()应该是一个空节点。…

ubuntu增加内存

文章目录 1、硬盘操作步骤第二步:点击【扩展】(必须关闭ubuntu电源才能修改)第三步:修改【最大磁盘容量大小】1、硬盘操作步骤 最近发现Ubuntu空间不足,怎么去扩容呢? 第一步:点击【硬盘】 第二步:点击【扩展】(必须关闭ubuntu电源才能修改) 第三步:修改【最大磁…

Java反序列化:CC1链 详解

CC1 Apache Commons Collections是一个扩展了Java标准库里的Collection结构的第三方基础库&#xff0c;它提供了很多强大的数据结构类型和实现了各种集合工具类。作为Apache开放项目的重要组件&#xff0c;Commons Collections被广泛的各种Java应用的开发&#xff0c;⽽正 是因…

腾讯云轻量和CVM有啥区别?怎么选择服务器配置?

腾讯云轻量服务器和云服务器有什么区别&#xff1f;为什么轻量应用服务器价格便宜&#xff1f;是因为轻量服务器CPU内存性能比云服务器CVM性能差吗&#xff1f;轻量应用服务器适合中小企业或个人开发者搭建企业官网、博客论坛、微信小程序或开发测试环境&#xff0c;云服务器CV…

MIPI接口协议及规范理解

什么是MIPI接口 MIPI&#xff0c;英文全称为Mobile Industry Processor Interface&#xff0c;即移动行业处理器接口。它是MIPI联盟发起的为移动应用处理器制定的开放标准。MIPI接口是一种专为移动设备和嵌入式系统设计的串行通信接口&#xff0c;定义了一系列的接口标准&…

【pwn入门】用gdb调试32位程序

声明 本文是B站你想有多PWN学习的笔记&#xff0c;包含一些视频外的扩展知识。 问题源码 #include <stdio.h> #include <stdlib.h> #include <unistd.h> char sh[]"/bin/sh"; int func(char *cmd){system(cmd);return 0; }int main(){char a[8]…

学习搜狗的workflow,MacBook上如何编译

官网说可以在MacBook上也可以运行&#xff0c;但是编译的时候却有找不到openssl的错误&#xff1a; 看其他博客也有类似的错误&#xff0c;按照类似的思路去解决 问题原因和解决办法 cmake编译的时候&#xff0c;没有找到openssl的头文件&#xff0c;需要设置cmake编译环境下…

基于Java的连锁超市会员管理系统设计与实现(源码+lw+ppt+部署文档+视频讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09;有保障的售后福利 代码参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作…

孢子捕捉仪——植物疾病探测的得力工具

孢子捕捉仪是一款专为收集随空气流动、传染的病害病原菌孢子及花粉尘粒而制的精密仪器&#xff0c;它主要用于监测病害孢子的存量及其扩散动态&#xff0c;犹如植物健康状况的“超级侦察兵”&#xff0c;是农业植保部门应当配备的农作物病害监测专用设备&#xff0c;是植物疾病…

学之思第二天-调通登录功能

目录 一、前端问题 二、后端问题 三、总结 之前一直是一个前端网页即使输对了正确的账号密码&#xff0c;也进不去。 一、前端问题 前端控制台就是一大堆爆红&#xff1a; 报错信息大概下面这样&#xff1a; Uncaught (in promise) NavigationDuplicated {_name: "…

Uniapp 婚庆服务全套模板前端

包含 首页、社区、关于、我的、预约、订购、选购、话题、主题、收货地址、购物车、系统通知、会员卡、优惠券、积分、储值金、订单信息、积分、充值、礼品、首饰等 请观看 图片参观 开源&#xff0c;下载即可 链接&#xff1a;婚庆服务全套模板前端 - DCloud 插件市场 问题反…

QT:SQLITE数据库编程

pro文件&#xff1a;QT core gui sql widget.ui main.cpp #include "widget.h" #include <QApplication>int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w("./student.db"); //传入文件名w.show();return a.exec…

binary_cross_entropy和binary_cross_entropy_with_logits的区别

binary_cross_entropy和binary_cross_entropy_with_logits的区别 引言 二分类问题是常见的机器学习任务之一&#xff0c;其目标是将样本分为两个类别。为了训练一个二分类模型&#xff0c;通常使用交叉熵作为损失函数。 二分类交叉熵损失函数有两种不同的形式&#xff0c;分…

深度学习之人脸检测算法

检测方法&#xff1a; Haar cascade opencv HOG Dlib CNN Dlib SSD MTCNN Haar特征 1.Haar特征原理综述 Haar特征是一种反映图像的灰度变化的&#xff0c;像素分模块求差值的一种特征。它分为三类&#xff1a;边缘特征、线性特征、中心特征和对角线特征。用黑白两种…

EQ 均衡器

EQ 的全称是 Equalizer&#xff0c;EQ 是 Equalizer 的前两个字母&#xff0c;中文名字叫做“均衡器”。最早是用来提升电话信号在长距离的传输中损失的高频&#xff0c;由此得到一个各频带相对平衡的结果&#xff0c;它让各个频带的声音得到了均衡。 EQ 的主要功能是&#xf…

端口隔离 MAC地址安全配置

二、知识点 目前网络中以太网技术的应用非常广泛。然而&#xff0c;各种网络攻击的存在&#xff08;例如针对ARP、DHCP等协议的攻击&#xff09;&#xff0c;不仅造成了网络合法用户无法正常访问网络资源&#xff0c;而且对网络信息安全构成严重威胁&#xff0c;因此以太网交…

学习笔记|串口通信的基础知识|同步/异步|常见的串口软件的参数|STC32G单片机视频开发教程(冲哥)|第二十集:串口通信基础

目录 1.串口通信的基础知识串口通信(Serial Communication)同步/异步&#xff1f;全双工&#xff1f;常见的串口软件的参数 2.STC32的串口通信实现原理引脚选择模式选择 3.串口通信代码实现编写串口1通信程序测试 总结 1.串口通信的基础知识 百度百科&#xff1a;串口通信的概…

STM32F103C8t SPI1重映射到PB3 PB4 PB5无输出

STM32F103C8t6用到了ADC 和SPI 导致PAx口无法使用SPI1 因此像复用到的引脚&#xff0c; 检查后发现硬件SPI可以复用到PB3 PB4 PB5&#xff0c; MSIO&#xff1a;PB5 MOSI&#xff1a;PB4 SCK&#xff1a;PB3 但是尝试后发现没有反映 SCK引脚没有波形输出 GPIO_PinRemapConfig(…

使用pywin32读取doc文档的方法及run输出乱码 \r\x07

想写一个读取doc文档中表格数据&#xff0c;来对文档进行重命名。经查资料&#xff0c;py-docx无法读取doc文档&#xff0c;原因是这种是旧格式。所以&#xff0c;采用pywin32来进行读取。 import win32com.client as win32word win32.gencache.EnsureDispatch(Word.Applicati…

Fiddler的下载安装及使用(包括在测试中的使用)

一、Fiddler的下载安装 1.Fiddler的介绍 1.1 Fiddler的定义和功能 Fiddler是一款免费网络代理调试工具。 Fiddler是一个很好用的抓包工具&#xff0c; 可以将网络传输发送与接受的数据包进行截获、重发、编辑、转存等操作。 也可以用来检测网络安全。 1.2 Fiddler的工作原理…