深度學習: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
英文地址,請注明出處:http://en.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