深度学习:PyTorch卷积神经网络之图像入门

本文目录:

  • 一、二值图像
  • 二、**灰度图像*
  • 三、**索引图像**
  • 四、**真彩色RGB图像**
  • **星空图**

前言:这篇文章开始讲解CNN,此前讲解的人工神经网络(ANN)如果有小伙伴还不清楚,一定要多看,多练习,继续一起努力前进吧!

CNN(Convolutional Neural Network,卷积神经网络)是一种专门用于处理网格结构数据(如图像、音频、文本序列)的深度学习模型。它在计算机视觉(CV)和自然语言处理(NLP)中广泛应用,尤其在图像分类、目标检测、语义分割等任务中表现优异。

在介绍CNN之前,我们需要先对图像有一个认识。

简单来说,图像一般分为二值图像、灰度图像、索引图像和真彩色RGB图像。

一、二值图像

二值图像是二维图像,仅由0、1两个值构成,“0”代表黑色,“1”代白色。由于每一像素(矩阵中每一元素)取值仅有0、1两种可能,所以计算机中二值图像的数据类型通常为1个二进制位。二值图像通常用于文字、线条图的扫描识别(OCR)和掩膜图像的存储。

黑白图:
在这里插入图片描述
PyTorch代码实现:

import numpy as np
import matplotlib.pyplot as plt#绘制黑色图像
plt.imshow(np.zeros((100,100)),cmap='gray')
plt.show()

二、*灰度图像

灰度图像也是二维图像,矩阵元素的取值范围通常为[0,255]。因此其数据类型一般为8位无符号整数的(int8),这就是人们经常提到的256灰度图像。**“0”表示纯黑色,“255”表示纯白色,中间的数字从小到大表示由黑到白的过渡色。**二值图像可以看成是灰度图像的一个特例。

灰图:
在这里插入图片描述
PyTorch代码实现:

import random# 创建灰度图像数组(单通道)
# 值范围0-255,dtype=np.uint8
gray_image = np.random.randint(0, 255, (height, width), dtype=np.uint8)# 显示图像
plt.imshow(gray_image, cmap='gray')  # 必须指定cmap='gray'
plt.axis('off')
plt.show()

三、索引图像

索引图像照样是二维图像,但它的文件结构比较复杂,除了存放图像的二维矩阵外,还包括一个称之为颜色索引矩阵MAP的二维数组。MAP的大小由存放图像的矩阵元素值域决定,如矩阵元素值域为[0,255],则MAP矩阵的大小为256Ⅹ3,用MAP=[RGB]表示MAP中每一行的三个元素分别指定该行对应颜色的红、绿、蓝单色值,MAP中每一行对应图像矩阵像素的一个灰度值,如某一像素的灰度值为64,则该像素就与MAP中的第64行建立了映射关系,该像素在屏幕上的实际颜色由第64行的[RGB]组合决定。也就是说,图像在屏幕上显示时,每一像素的颜色由存放在矩阵中该像素的灰度值作为索引通过检索颜色索引矩阵MAP得到。

索引图:
在这里插入图片描述
PyTorch代码实现:

# 设置图像大小和颜色数量
height, width = 256, 256
num_colors = 16# 生成随机索引矩阵
random_indices = np.random.randint(0, num_colors, (height, width))# 使用Matplotlib内置的colormap
plt.imshow(random_indices, cmap='viridis', vmin=0, vmax=num_colors-1)
plt.colorbar(label='Color Index')
plt.axis('off')
plt.show()

四、真彩色RGB图像

RGB图像与索引图像一样都可以用来表示彩色图像。与索引图像一样,它分别用红(R)、绿(G)、蓝(B)三原色的组合来表示每个像素的颜色。但与索引图像不同的是,RGB图像每一个像素的颜色值(由RGB三原色表示)直接存放在图像矩阵中,由于每一像素的颜色需由R、G、B三个分量来表示,**M、N分别表示图像的行列数,三个M x N的二维矩阵分别表示各个像素的R、G、B三个颜色分量。**RGB图像的数据类型一般为8位无符号整形。注意:通道的顺序是 BGR 而不是 RGB。

RGB彩图:

PyTorch代码实现:

plt.imshow(plt.imread(r'D:\深度学习\04_数据集\data\img.jpg'))
plt.show()

最后,分享一段代码,生成一片星空,送给大家:

# 创建全蓝图像
blue_img = np.zeros((200, 200, 3))  # 初始化全黑图像
blue_img[:, :, 2] = 1  #  # RGB通道:蓝色=1.0(Matplotlib取值范围0~1for _ in range(num_points):y = np.random.randint(0, 200)  # 随机行坐标x = np.random.randint(0, 200)  # 随机列坐标blue_img[y, x] = [1, 1, 1]    # 设为白色radius = np.random.randint(0, 2)  # 随机半径0~2像素draw_circle(blue_img, y, x, radius=radius)
plt.imshow(blue_img)  #渲染
plt.axis('off')  # 关闭坐标轴
plt.show()  #显示图像

星空图

星空
晚安。

今天的分享到此结束。

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

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

相关文章

PyTorch RNN实战:快速上手教程

PyTorch实现RNN的实例 以下是一个使用PyTorch实现RNN的实例代码,包含数据准备、模型定义、训练和评估步骤。 RNN流程图 RNN流程图,在使用t来表示当前时间点(序列中的第t项),RNN接收所有先前内容得单一个表示h和关于序列最新项的信息,RNN将这些信息合并到迄今为止所有看…

C++项目快速配置SQLite

前言:完全没接触过数据库,但老师课程设计要求数据存储在数据库怎么办???主包看了些网络上的资源,觉得讲得都不是很能快速上手,所以决定自己写一篇博客 SQLiteCpp是一个基于 C 封装的 SQLite 操…

ArcGIS中对输入面图层A的相交问题批量处理的实现方法

一、背景及意义 在各种数据建库中,拓扑错误是必须处理的,其中最常见的是重叠问题,我们常用拓扑工具来检查重叠,但是由于拓扑工具只能作为检查且不能批量修改,此时我们可以使用“相交”工具来检查出重叠部分&#xff0…

【学习笔记】3.3 Decoder-Only PLM

参考资料:https://github.com/datawhalechina/happy-llm Decoder-Only是当前大型语言模型(LLM)的基础架构,如 GPT 系列。GPT 是 Decoder-Only 架构的代表,而开源 LLM 如 LLaMA 也是在 GPT 架构基础上发展而来的。 3…

主流的Attention Backend介绍

Attention Backend 技术背景 注意力(Attention)机制在深度学习中扮演着关键角色,它帮助模型在处理序列数据时,有选择地关注输入中的重要信息。然而,传统的注意力计算往往受到内存访问和算力分配的双重制约&#xff0c…

Linux内存取证

我们先把linux取证文件放到kali中,然后这里的Ubuntu18.04-5.4.0-84-generic.zip需要不解压直接放到vol工具中 然后把Ubuntu18.04-5.4.0-84-generic放到vol工具中,然后开始去这个,使用vol工具查看linux的版本信息 这个LinuxUbuntu18_04-5_4_0-…

使用docx4j 实现word转pdf(linux乱码处理)

由于系统之前使用了是itext进行转换的&#xff0c;现在已经不是开源的工具了&#xff0c;需要收费&#xff0c;然后进行改造&#xff0c;具体处理如下。 <dependency><groupId>org.docx4j</groupId><artifactId>docx4j</artifactId><version…

C++ - vector 的相关练习

目录 前言 1、题1 只出现一次的数字 &#xff1a; 解法一&#xff1a;遍历 参考代码&#xff1a; 解法二&#xff1a;按位异或 参考代码&#xff1a; 解法三&#xff1a;哈希表 参考代码&#xff1a; 2、题2 杨辉三角&#xff1a; 参考代码&#xff1a; 总结 前言 …

JDK 1.8 Stream API:集合流处理深度解析

JDK 1.8 Stream API&#xff1a;集合流处理深度解析 摘要&#xff1a;Stream API 是 JDK 1.8 的革命性特性&#xff0c;它将集合操作从传统迭代升级为声明式函数式处理。Stream API三个阶段&#xff08;创建→中间操作→终端操作&#xff09;详解流处理机制&#xff0c;辅以代…

2025学年湖北省职业院校技能大赛 “信息安全管理与评估”赛项 样题卷(二)

2025学年湖北省职业院校技能大赛 “信息安全管理与评估”赛项 样题卷&#xff08;二&#xff09; 第一部分&#xff1a;第二部分&#xff1a;网络安全事件响应、数字取证调查、应用程序安全任务书任务 1&#xff1a;应急响应&#xff08;可以培训有答案&#xff09;任务 2&…

AiPy实战(5):效率革命!5分钟构建行业分析报告

在当今数字化时代&#xff0c;数据呈指数级增长&#xff0c;行业分析报告对于企业的决策制定愈发关键。传统上&#xff0c;撰写一份行业分析报告&#xff0c;需要分析师耗费大量时间从各类数据库、新闻资讯平台、行业报告中手动收集数据&#xff0c;再进行整理、分析和撰写&…

docker小白自存-windows系统通过docker安装n8n-nodes-puppeteer

n8n上直接在社区下载puppeteer节点&#xff0c;使用时会报错说没有chromium依赖。 找到了n8n-nodes-puppeteer的github试图解决 根据他的docker安装指南执行&#xff0c;运行容器时会报exec /docker-custom-entrypoint.sh: no such file or directory &#xff08;明明文件都有…

脚本shebang的作用与使用方法

#!&#xff08;称为 shebang 或 hashbang&#xff09;是脚本文件开头的前两个字符&#xff0c;用于告诉操作系统应该使用哪个解释器来执行该脚本。 核心作用&#xff1a; 指定解释器&#xff1a; 明确告诉系统运行这个脚本时应该调用哪个程序&#xff08;解释器&#xff09;来…

【大模型学习 | BERT 量化学习 (1)】

BERT 情感分析 一、 数据集加载与模型训练 from transformers import BertTokenizer, BertForSequenceClassification, Trainer, TrainingArguments from datasets import load_dataset import torch import numpy as np from sklearn.metrics import accuracy_score mode_na…

用低通滤波优化串口或485 通信指示灯电路

常见的通信指示灯电路就是简单的把LED 连到TXD 和RXD 上&#xff0c;一有动静就闪一下。问题是&#xff0c;如果波特率很高&#xff0c;一次通信时间很短&#xff0c;相当于占空比很低&#xff0c;LED 闪烁的亮度就很弱&#xff0c;不容易观察。比如MODBUS 通信&#xff0c;波特…

【纯干货】调整word目录中的行距以及右对齐页码

1.问题展现 目录生成会遇到一些奇葩现象 所以到了展现技术力的时候了【doge】 2.解决word目录中的行距问题 选中目录中的文字-》段落 此时你可能勾选了图片中的一个以上&#xff0c;把他们都取消了&#xff0c; 由于一个目录的标题对应一个样式&#xff0c;第一个也可以取消 …

pandas 优雅处理值类型为list的列的csv读写问题

文章目录 直接存储join list 变成字符串存储json.dumps序列化存储以及json.loads反序列化读取总结 之所以分析这个问题,是因为读者在跟第三方数据供应商对接数据的时候,老是会遇到数据加载都会出错的问题,其中一个原因就是list类型数据没有正确储存,于是笔者在这篇文章里面详细…

一种解决 OpenWrt 安装 docker 之后局域网的设备之间无法互相访问通信的方法

文章目录 一、问题背景二、解决方案&#xff08;方法一&#xff09;修改全局设置的 转发&#xff08; forward&#xff09; 为 接受&#xff08;ACCEPT&#xff09;&#xff08;方法二&#xff09;设置 net.bridge.bridge-nf-call-iptables0 并将 docker 的容器网络设置为host …

Leetcode百题斩-贪心

贪心也是一个很有意思的专题&#xff0c;能遇到很多神奇的思路。 但这个专题&#xff0c;leetcode也没放Hard&#xff0c;果然是怕这种玄学专题上点难度大家罩不住。那就很快了&#xff0c;直接过 763. Partition Labels[Medium] 思路&#xff1a;将字母串分组&#xff0c;相…

基于多径信道的分集接收技术性能优化与仿真分析

基于多径信道的分集接收技术性能优化与仿真分析 一、多径信道建模与仿真 1. 多径信道建模(MATLAB实现) classdef MultipathChannel < handlepropertiesSampleRate = 1e6; % 采样率 (Hz)MaxDoppler = 100; % 最大多普勒频移 (Hz)DelayVector = [0