OpenCV 基礎模塊 Python 版

OpenCV 基礎模塊權威指南(Python 版)

一、模塊全景圖

plaintext

OpenCV 架構 (v4.x+)
├─ 核心層
│  ├─ core:基礎數據結構與操作(Mat/Scalar/Point)
│  └─ imgproc:圖像處理流水線(濾波→變換→檢測)
├─ 交互層
│  ├─ highgui:GUI 與媒體 I/O(顯示/捕獲/交互)
│  └─ video:視頻分析(運動檢測/目標跟蹤)
├─ 3D 視覺層
│  └─ calib3d:相機校準與 3D 重建
├─ 特征工程層
│  └─ features2d:特征檢測/描述/匹配
├─ 應用層
│  ├─ objdetect:傳統目標檢測(Haar/HOG)
│  ├─ ml:經典機器學習(SVM/K-means)
│  └─ dnn:深度學習推理(YOLO/ResNet)
├─ 工具模塊
│  ├─ flann:快速近鄰搜索
│  ├─ photo:圖像修復(inpaint)
│  └─ stitching:圖像拼接

二、核心模塊詳解

模塊 1:核心模塊(cv2.core

1.1 數據結構體系
結構維度典型用途內存布局示例
MatN-D圖像 / 矩陣(含 ROI 機制)(height, width, channels)
Scalar1-D多通道值(BGR 顏色 / 像素值)(B, G, R)?(0-255)
Point2-D坐標點(x, y)(100, 200)
Size2-D尺寸(width, height)(320, 240)
Rect4-D矩形(x, y, width, height)(50, 50, 200, 150)
1.2 核心操作

python

# 圖像創建與屬性
img = np.zeros((480, 640, 3), dtype=np.uint8)  # 黑色圖像(BGR)
print(f"圖像尺寸: {img.shape}")  # (480, 640, 3)
print(f"數據類型: {img.dtype}")  # uint8# 區域操作(ROI)
roi = img[100:300, 200:400]  # 裁剪區域
roi[:] = (0, 255, 0)         # 設置為綠色# 繪圖函數(抗鋸齒優化)
cv2.circle(img, (320, 240), 50, (255, 0, 0), 2, cv2.LINE_AA)  # 抗鋸齒圓
cv2.putText(img, "OpenCV", (50, 50), cv2.FONT_HERSHEY_TRIPLEX, 1, (0, 255, 255), 1, cv2.LINE_AA)
1.3 內存管理最佳實踐
  • 淺拷貝img_view = img[::](共享數據,無內存復制)
  • 深拷貝img_copy = img.copy()(獨立數據副本)
  • 類型轉換gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)(節省內存的通道轉換)

模塊 2:圖像處理(cv2.imgproc

2.1 處理流水線(典型工作流)

plaintext

輸入圖像 → 濾波(降噪) → 幾何變換 → 顏色空間轉換 → 閾值處理 → 特征檢測
2.2 核心功能矩陣
功能分類算法類型核心函數典型參數示例
圖像濾波線性濾波cv2.GaussianBlur()ksize=(5,5), sigmaX=1.0
非線性濾波cv2.medianBlur()ksize=3
幾何變換仿射變換cv2.warpAffine()M=平移/旋轉矩陣
透視變換cv2.warpPerspective()M=3x3 透視矩陣
顏色空間色域轉換cv2.cvtColor()code=COLOR_BGR2HSV
閾值處理全局閾值cv2.threshold()thresh=127, type=THRESH_BINARY
自適應閾值cv2.adaptiveThreshold()method=ADAPTIVE_THRESH_GAUSSIAN_C
邊緣檢測梯度法cv2.Sobel()ddepth=CV_64F, dx=1, dy=0
輪廓檢測cv2.Canny()threshold1=50, threshold2=150
2.3 實戰案例:圖像銳化

python

# 定義銳化卷積核(拉普拉斯算子變種)
kernel = np.array([[0, -1, 0],[-1, 5, -1],[0, -1, 0]
], dtype=np.float32)sharpened = cv2.filter2D(img, -1, kernel)  # -1 表示保留原數據類型

模塊 3:圖形用戶界面(cv2.highgui

3.1 交互系統架構

plaintext

顯示系統:imshow() → 窗口管理(destroyAllWindows())
輸入系統:waitKey() → 鍵盤事件(ASCII 碼捕獲)
鼠標系統:setMouseCallback() → 事件驅動(點擊/拖拽)
3.2 高級應用:實時視頻標注

python

# 鼠標回調函數(標注矩形)
drawing = False
ix, iy = -1, -1def draw_rectangle(event, x, y, flags, param):global ix, iy, drawingif event == cv2.EVENT_LBUTTONDOWN:drawing = Trueix, iy = x, yelif event == cv2.EVENT_MOUSEMOVE:if drawing:cv2.rectangle(img, (ix, iy), (x, y), (0, 255, 0), 2)elif event == cv2.EVENT_LBUTTONUP:drawing = False# 主循環
cv2.namedWindow("Annotation")
cv2.setMouseCallback("Annotation", draw_rectangle)while True:cv2.imshow("Annotation", img)if cv2.waitKey(1) & 0xFF == ord('s'):  # 保存標注cv2.imwrite("annotated.jpg", img)elif cv2.waitKey(1) & 0xFF == 27:  # ESC 退出break

模塊 4:視頻分析(cv2.video

4.1 運動分析流水線

plaintext

視頻流 → 背景建模(MOG2/KNN) → 前景提取 → 目標跟蹤(KCF/MOSSE) → 軌跡繪制
4.2 背景減除實戰

python

# 初始化 MOG2 背景減除器
back_sub = cv2.createBackgroundSubtractorMOG2(history=200,        # 歷史幀數detectShadows=False # 關閉陰影檢測
)cap = cv2.VideoCapture("traffic.mp4")while cap.isOpened():ret, frame = cap.read()if not ret: break# 前景掩碼fg_mask = back_sub.apply(frame)# 形態學后處理(降噪)fg_mask = cv2.morphologyEx(fg_mask, cv2.MORPH_CLOSE, np.ones((5,5), np.uint8))# 輪廓檢測contours, _ = cv2.findContours(fg_mask, cv2.RETR_EXTERNAL, cv2.CARACTER_APPROX_SIMPLE)# 繪制運動區域for cnt in contours:if cv2.contourArea(cnt) > 1000:  # 過濾小區域x, y, w, h = cv2.boundingRect(cnt)cv2.rectangle(frame, (x,y), (x+w,y+h), (0, 255, 0), 2)cv2.imshow("Motion Detection", frame)if cv2.waitKey(30) & 0xFF == ord('q'):break

模塊 5:相機校準(cv2.calib3d

5.1 校準參數體系
參數名稱物理意義典型值范圍
內參矩陣 (K)焦距 / 主點 / 畸變[[f_x, 0, c_x], [0, f_y, c_y], [0, 0, 1]]
畸變系數 (D)徑向 / 切向畸變[k1, k2, p1, p2, k3]
外參矩陣 (R/T)相機姿態(旋轉 / 平移)3x3 旋轉矩陣 + 平移向量
5.2 完整校準流程
  1. 采集棋盤格圖像(≥10 張)

    python

    # 生成棋盤格角點(世界坐標系)
    objp = np.zeros((7*5, 3), np.float32)
    objp[:,:2] = np.mgrid[0:7, 0:5].T.reshape(-1, 2)  # 7x5 內角點
    
  2. 檢測角點并優化

    python

    criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 30, 0.001)
    imgpoints = []  # 存儲圖像角點for img_path in calibration_images:img = cv2.imread(img_path)gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)ret, corners = cv2.findChessboardCorners(gray, (7,5), None)if ret:corners = cv2.cornerSubPix(gray, corners, (11,11), (-1,-1), criteria)imgpoints.append(corners)cv2.drawChessboardCorners(img, (7,5), corners, ret)
    
  3. 計算校準參數

    python

    ret, mtx, dist, rvecs, tvecs = cv2.calibrateCamera(objpoints, imgpoints, gray.shape[::-1], None, None
    )
    
  4. 去畸變應用

    python

    h, w = img.shape[:2]
    newcameramtx, roi = cv2.getOptimalNewCameraMatrix(mtx, dist, (w,h), 1, (w,h))
    undistorted = cv2.undistort(img, mtx, dist, None, newcameramtx)
    

模塊 6:特征工程(cv2.features2d

6.1 特征檢測對比
算法專利狀態尺度不變旋轉不變計算速度描述子維度
SIFT已過期128
SURF專利64/128
ORB開源是(FAST + 金字塔)是(BRIEF + 旋轉)32
6.2 ORB 特征匹配實戰

python

# 初始化 ORB
orb = cv2.ORB_create(nfeatures=500,    # 最大特征數scaleFactor=1.2,  # 金字塔縮放系數patchSize=31      # 描述子區域大小
)# 提取特征
kp1, des1 = orb.detectAndCompute(img1, None)
kp2, des2 = orb.detectAndCompute(img2, None)# 匹配特征(漢明距離)
bf = cv2.BFMatcher(cv2.NORM_HAMMING, crossCheck=True)
matches = bf.match(des1, des2)
matches = sorted(matches, key=lambda x: x.distance)  # 按距離排序# 繪制匹配
matched_img = cv2.drawMatches(img1, kp1, img2, kp2, matches[:30], None,flags=cv2.DrawMatchesFlags_NOT_DRAW_SINGLE_POINTS
)

模塊 7:目標檢測(cv2.objdetect

7.1 Haar 級聯檢測優化

python

# 加載優化后的分類器
face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + "haarcascade_frontalface_alt2.xml"
)# 多尺度檢測(GPU 加速)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray,scaleFactor=1.1,   # 尺度步長minNeighbors=5,    # 檢測框最小鄰域minSize=(30, 30),  # 最小檢測尺寸flags=cv2.CASCADE_SCALE_IMAGE
)# 繪制結果(帶置信度)
for (x,y,w,h) in faces:cv2.rectangle(img, (x,y), (x+w,y+h), (255,0,0), 2)cv2.putText(img, "Face", (x, y-10), cv2.FONT_HERSHEY_SIMPLEX, 0.9, (255,0,0), 2)

模塊 8:深度學習(cv2.dnn

8.1 YOLOv8 目標檢測實戰

python

# 加載模型(需下載 yolov8n.onnx)
net = cv2.dnn.readNetFromONNX("yolov8n.onnx")# 預處理
blob = cv2.dnn.blobFromImage(img, 1/255.0, (640, 640), swapRB=True, crop=False
)# 前向傳播
net.setInput(blob)
outputs = net.forward(net.getUnconnectedOutLayersNames())# 解析輸出
for output in outputs:for detection in output:scores = detection[4:]class_id = np.argmax(scores)confidence = scores[class_id]if confidence > 0.5:# 邊界框解碼x, y, w, h = detection[:4] * np.array([img.shape[1], img.shape[0], img.shape[1], img.shape[0]])cx, cy = int(x), int(y)w, h = int(w), int(h)cv2.rectangle(img, (cx-w//2, cy-h//2), (cx+w//2, cy+h//2), (0, 255, 0), 2)cv2.putText(img, f"{class_names[class_id]} {confidence:.2f}", (cx-w//2, cy-h//2-10), cv2.FONT_HERSHEY_SIMPLEX, 0.6, (0, 255, 0), 2)

三、模塊對比與選型指南

任務類型傳統方案(CPU)深度學習方案(GPU)性能對比
人臉檢測Haar +?objdetectMTCNN +?dnn★★★☆ vs ★★★★★
圖像分類SVM +?mlResNet +?dnn★★☆ vs ★★★★★
目標跟蹤KCF +?videoByteTrack +?dnn★★★ vs ★★★★★
圖像拼接stitching?模塊DeepStitch +?dnn★★★★ vs ★★★★★

四、開發最佳實踐

4.1 性能優化技巧

  1. 數據類型優化

    • 使用?uint8?存儲圖像(節省內存)
    • 浮點運算使用?float32(比?float64?快 2 倍)
  2. ROI 操作

    python

    # 高效 ROI 賦值(避免循環)
    img[100:200, 300:400] = (0, 255, 0)  # 整區域賦值
    
  3. 向量化操作

    python

    # 替代循環的向量化操作
    img[:, :, 0] = 0  # 批量設置藍色通道為 0
    
  4. GPU 加速

    python

    # 啟用 GPU(需 OpenCV 編譯時支持)
    net.setPreferableBackend(cv2.dnn.DNN_BACKEND_CUDA)
    net.setPreferableTarget(cv2.dnn.DNN_TARGET_CUDA)
    

4.2 內存管理

操作類型內存開銷推薦方法
圖像復制★★★★★使用 ROI 或?numpy?視圖
大矩陣運算★★★★☆預先分配內存(np.zeros()
視頻幀處理★★★☆☆釋放無用幀(del frame

五、安裝與環境配置

5.1 安裝命令

bash

# 基礎安裝(主模塊)
pip install opencv-python==4.8.0.76  # 穩定版# 完整安裝(含 contrib 模塊)
pip install opencv-contrib-python==4.8.0.76# 驗證安裝
python -c "import cv2; print(cv2.__version__)"  # 輸出版本號

5.2 環境配置(Windows)

  1. 添加系統環境變量

    • OPENCV_DIR:?C:\PythonXX\Lib\site-packages\cv2
    • PATH?追加:%OPENCV_DIR%\python-XX(如?python-3.11
  2. GPU 支持

    • 安裝 CUDA 工具包(匹配顯卡架構)
    • 編譯 OpenCV 時啟用?WITH_CUDA=ON(需從源碼構建)

六、學習資源圖譜

6.1 官方資源

  • OpenCV Python 教程(官方權威)
  • OpenCV 示例庫(含 C++/Python 示例)

6.2 實戰項目

  1. 基礎項目

    • 人臉檢測考勤系統(objdetect?+?highgui
    • 圖像風格遷移(imgproc?+ 卷積核)
  2. 進階項目

    • 實時目標跟蹤器(video?+?dnn
    • 3D 物體重建(calib3d?+ 多視角圖像)
  3. 工業級項目

    • 缺陷檢測(imgproc?+?ml
    • 自動駕駛感知(dnn?+ 多傳感器融合)

七、常見問題解決方案

問題現象解決方案
圖像顯示亂碼(中文)使用?matplotlib?替代?highgui(支持中文標題):
plt.title("中文標題", fontproperties="SimHei")
視頻播放卡頓1. 降低分辨率:resize(frame, (640, 480))
2. 減少?waitKey()?延遲:waitKey(1)
特征檢測內存溢出限制特征數量:ORB_create(nfeatures=1000)
使用輕量級算法(ORB 替代 SIFT)
GPU 加速失敗1. 確認顯卡支持 CUDA
2. 安裝匹配的 OpenCV 版本(含 CUDA 支持)

八、模塊擴展(高級方向)

  1. 生物識別

    • 指紋識別:imgproc(圖像增強)+?features2d(細節點匹配)
    • 虹膜識別:calib3d(眼球建模)+?dnn(特征提取)
  2. 醫學影像

    • 病灶檢測:dnn(U-Net 語義分割)
    • 3D 重建:calib3d(多切片配準)+?stitching(體積渲染)
  3. 無人機視覺

    • 目標跟蹤:video(光流法)+?dnn(實時檢測)
    • 地形測繪:calib3d(多視幾何)+?stitching(全景拼接)

九、總結與學習路徑

plaintext

新手入門 → 掌握 core/imgproc/highgui(圖像基礎操作)
↓
中級進階 → 學習 video/calib3d/features2d(視頻分析與 3D 視覺)
↓
高級實戰 → 精通 dnn/ml/objdetect(深度學習與目標識別)
↓
工程落地 → 結合 flann/photo/stitching(性能優化與完整方案)

推薦學習周期

  • 基礎階段(1-2 周):完成圖像讀寫、濾波、幾何變換
  • 進階階段(2-4 周):實現目標檢測、特征匹配、相機校準
  • 實戰階段(4-8 周):開發完整項目(如智能監控、AR 應用)

通過此指南,開發者可快速構建 OpenCV 知識體系,從模塊原理到工程實踐實現全棧能力提升。建議結合 OpenCV 官方教程(每周 10 小時)與實戰項目(每月 1 個完整項目)持續精進。

附錄:模塊速查表

模塊名核心功能典型函數示例內存復雜度
core數據結構與基礎操作Mat,?line(),?copyTo()★★☆
imgproc圖像處理流水線GaussianBlur(),?warpAffine(),?Canny()★★★★
highgui交互界面imshow(),?VideoCapture(),?setMouseCallback()★★☆
video視頻分析createBackgroundSubtractorMOG2(),?TrackerKCF_create()★★★★
calib3d3D 視覺calibrateCamera(),?solvePnP()★★★★★
features2d特征工程SIFT_create(),?BFMatcher()★★★★☆
dnn深度學習推理readNetFromONNX(),?forward()★★★★★

(注:內存復雜度 ★ 表示相對 CPU 內存占用,★★★★★ 為高內存需求)

此總結融合了模塊原理、代碼實現、性能優化與工程實踐,適合從初學者到資深開發者的全階段學習。建議配合官方文檔與實戰項目(如人臉檢測、視頻跟蹤)進行鞏固,逐步構建計算機視覺工程能力。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/72929.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/72929.shtml
英文地址,請注明出處:http://en.pswp.cn/web/72929.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

iStoreOS軟路由對硬盤格式化分區(轉化ext4)

一、為什么要格式化分區? 格式化硬盤分區是軟路由安裝或配置過程中的重要步驟,主要用于清除舊數據、優化文件系統、確保系統穩定性和兼容性。 二、通過iStoreOS硬盤格式化步驟 使用場景:Docker遷移到外置移動硬盤為例,考慮兼容現…

打造用戶認證系統,構筑信息安全防線

在當今的數字化時代,信息安全和用戶隱私保護變得越來越重要。用戶身份認證是確保信息安全的第一道防線。通過驗證用戶身份,可以防止未經授權的訪問和數據泄露。它有助于保護用戶的個人信息、賬戶資金和其他敏感數據。此外,用戶身份認證還可以…

北京南文觀點:品牌如何搶占AI 認知的 “黃金節點“

在算法主導的信息洪流中,品牌正在經歷一場隱蔽的認知權爭奪戰,當用戶向ChatGPT咨詢"哪家新能源車企技術最可靠"時,AI調取的知識圖譜數據源將直接決定品牌認知排序。南文樂園科技文化(北京)有限公司&#xff…

音視頻系列——Websockets接口封裝為Http接口

模型服務示例:實時語音轉文本服務 本示例展示一個支持雙協議(WebSocket流式接口HTTP同步接口)的語音轉文本模型服務,并提供將WebSocket接口封裝為HTTP接口的代碼實現。 一、服務架構設計 #mermaid-svg-nw0dMZ4uKfS4vGZR {font-fa…

Axure項目實戰:智慧城市APP(一)(動態面板、拖動效果)

親愛的小伙伴,在您瀏覽之前,煩請關注一下,在此深表感謝! 課程主題:智慧城市APP便民服務平臺 主要內容:完整智慧APP原型設計 應用場景:各類政務型、B端APP均可參考 案例展示:&…

MySQL 入門大全:數據類型

🧑 博主簡介:CSDN博客專家,歷代文學網(PC端可以訪問:https://literature.sinhy.com/#/literature?__c1000,移動端可微信小程序搜索“歷代文學”)總架構師,15年工作經驗,…

Java 記憶鏈表,LinkedList 的升級版

文章目錄 記憶鏈表 MemoryLinkedList實戰源代碼 眾所周知,ArrayList 和 LinkedList 是 Java 集合中兩個基本的數據結構,對應數據結構理論中的數組和鏈表。但在這兩個數據結構,開發者們通常使用 ArrayList,而不使用 LinkedList。JD…

《白帽子講 Web 安全》之開發語言安全深度解讀

目錄 引言 1.PHP 安全 1.1變量覆蓋 1.2空字節問題 1.3弱類型 1.4反序列化 1.5安全配置 2Java 安全 2.1Security Manager 2.2反射 2.3反序列化 3Python 安全 3.1反序列化 3.2代碼保護 4.JavaScript 安全 4.1第三方 JavaScript 資源 4.2JavaScript 框架 5.Node.…

鴻蒙HarmonyOS NEXT應用崩潰分析及修復

鴻蒙HarmonyOS NEXT應用崩潰分析及修復 如何保證應用的健壯性,其中一個指標就是看崩潰率,如何降低崩潰率,就需要知道存在哪些崩潰,然后對癥下藥,解決崩潰。那么鴻蒙應用中存在哪些崩潰類型呢?又改如何解決…

分析K8S中Node狀態為`NotReady`問題

在Kubernetes(k8s)集群中,Node狀態為NotReady通常意味著節點上存在某些問題,下面為你分析正常情況下節點應運行的容器以及解決NotReady狀態的方法。 正常情況下Node節點應運行的容器 1. kubelet kubelet是節點上的核心組件&…

第六屆機電一體化技術與智能制造國際學術會議(ICMTIM 2025)

重要信息 4月11-13日 南京江北新區工業大學亞朵酒店 www.icmtim.org(點擊了解參會投稿等) 簡介 由南京工業大學主辦,南京工業大學電氣工程與控制科學學院、中國礦業大學、黑龍江大學、江蘇省自動化學會承辦的第六屆機電一體化技術…

INT202 Complexity of Algroithms 算法的復雜度 Pt.2 Search Algorithm 搜索算法

文章目錄 1.樹的數據結構1.1 有序數據(Ordered Data)1.1.1 有序字典(Ordered Dictonary)1.1.1.1 排序表(Sorted Tables) 1.2 二分查找(Binary Search)1.2.1 二分查找的時間復雜度 1.3 二叉搜索樹&#xff0…

【AVRCP】藍牙鏈路控制器(LC)與AVRCP互操作性要求深度解析

目錄 一 、Link Controller(LC)概述 1.1 LC的定義與功能 1.2 LC在藍牙技術中的重要性 二、Link Controller(LC)互操作性要求 2.1 互操作性要求概述 2.2 物理層互操作性要求 2.3 鏈路管理互操作性要求 2.4 其他互操作性要求…

高級背景摳圖工具(python)

這是一個專業的圖像背景處理工具,基于Python開發,主要功能包括:1. 智能背景去除 - 使用rembg庫的深度學習模型自動識別并移除圖片背景。 2. 背景自定義 - 支持純色背景替換,保留透明通道(Alpha通道)。3. 高級參數調節 - 提供5種專業級圖像處理參數。4. 實時預覽 - 雙窗口…

如何設計外貿郵件開發信主題

開發信是打開客戶大門的第一步,而郵件主題則是決定客戶是否打開郵件的關鍵。一個吸引人的主題不僅能提高打開率,還能為后續溝通打下良好基礎。 一、突出價值和利益 郵件主題要直接傳達收件人能從中獲得的價值和利益,引起他們的興趣和關注。…

wordpress表單插件CF7調用方式

Contact Form 7(CF7)是WordPress中非常流行的表單插件,以下是其常見的調用方式: 通過短代碼調用 在頁面或文章編輯器中添加:完成表單設置后,復制表單對應的短代碼,然后在需要顯示表單的頁面或文章的編輯器中直接粘貼…

快速入手-基于Django的主子表間操作mysql(五)

1、如果該表中存在外鍵,結合實際業務情況,那可以這么寫: 2、針對特殊的字典類型,可以這么定義 3、獲取元組中的字典值和子表中的value值方法 4、對應的前端頁面寫法

網絡運維學習筆記(DeepSeek優化版) 021 HCIA-Datacom新增知識點03園區網典型組網架構及案例實戰

文章目錄 園區網典型組網架構及案例實戰1 園區網定義2 園區網絡典型架構3 各層級協議與技術4 項目生命周期管理5 小型園區網絡設計框架5.1 組網方案設計5.2 IP地址規劃5.3 園區內部的路由設計5.4 NAT設計5.5 WLAN設計5.6 安全設計5.7 運維管理設計 6 小型園區的實施方案與運維手…

1.8 函數的連續性和間斷點

1.連續的定義 2.間斷點的定義 3.間斷點的分類

基于Arm GNU Toolchain編譯生成的.elf轉hex/bin文件格式方法

基于Arm GNU Toolchain編譯生成的.elf轉hex/bin文件格式方法 已經棄用的版本(Version 10.3-2021.10):gcc-arm-none-eabi:https://developer.arm.com/downloads/-/gnu-rmArm GNU Toolchain當前版本:https://developer.a…