機器視覺軟件--VisionPro、Visual Master,Halcon 和 OpenCV 的學習路線

Halcon 和?OpenCV區別

Halcon 和 OpenCV 都是計算機視覺領域的重要工具,但它們的設計理念、功能側重和適用場景有顯著不同。下面這個表格匯總了它們的核心區別,方便你快速了解:

  • 開發模式與體驗??:Halcon 配備了強大的??圖形化交互開發環境 HDevelop??。你可以通過可視化方式快速調試算法、驗證思路,極大提升了開發效率,尤其適合算法原型設計。OpenCV 則更傳統,需要你??編寫代碼??來實現所有功能,靈活性更高,但開發驗證流程相對繁瑣。
  • 性能與優化??:Halcon 的算法針對工業應用進行了??深度優化??,尤其在處理高分辨率圖像、復雜匹配和3D視覺任務時,其??速度和精度優勢明顯??。OpenCV 作為通用庫,其性能在很大程度上依賴于用戶的編程技巧和對算法的理解,你可能需要花費額外精力進行優化和硬件加速(如利用CUDA)才能滿足特定性能要求。
  • 生態與社區??:OpenCV 擁有??極其活躍的全球開源社區??,這意味著你可以輕松找到海量的教程、代碼示例和論壇討論,遇到問題時更容易獲得幫助。Halcon 作為商業軟件,社區規模較小,但其??官方提供的技術支持、技術文檔和培訓服務??非常專業和可靠
  • 選擇 Halcon 的情況??:

    • 項目要求高??精度??、高??速度??和高??可靠性??,例如工業生產線上的自動化質檢、精密尺寸測量、機器人視覺引導等。
    • 項目??預算充足??,且愿意為成熟的官方技術支持、穩定的性能和完善的工具體系付費。
    • 團隊更傾向于??快速開發??和部署復雜的機器視覺應用。
  • 選擇 OpenCV 的情況??:
    • 項目??預算有限??或需要開源方案。
    • 應用于??學術研究??、??算法學習??或需要高度??自定義修改??算法。
    • 開發場景??多樣化??,涉及移動端(Android/iOS)、嵌入式設備(如樹莓派)或Web端等。
    • 團隊有較強的??編程能力??,愿意投入時間進行算法優化和調試。

VisionPro 和 Visual Master區別

VisionPro??:工業視覺的“精密儀器”,適合??技術深厚+高預算??團隊,長期維護成本低但學習門檻高。
??VisionMaster??:國產化“敏捷工具”,??降低工程師技能要求??,適合快速響應項目,但復雜任務需結合OpenCV等二次開發

VisionPro是Cognex公司開發的機器視覺軟件,而VisionMaster是海康機器人開發的國產機器視覺軟件

熟悉VisionPro的基本概念和界面操作,接著學習使用各種視覺工具如Blob分析、邊緣檢測等,最后進階到編程和系統集成。VisionPro需要學習C#或C++等編程語言以進行API交互
VisionMaster,提到它采用圖形化流程圖開發方式,學習曲線較平緩。用戶需要掌握其界面操作、工具鏈使用(如測量、定位、識別等),以及如何快速部署視覺應用。雖然也支持腳本擴展,但編程要求低于VisionPro。

VisionPro功能強大,適合高精度工業場景,但學習曲線陡峭且成本高;VisionMaster則易于上手,適合快速部署中等復雜度任務,成本較低。在性能上,VisionPro處理復雜任務效率更高,支持3D視覺和高速檢測;VisionMaster在常規任務中表現良好但處理能力有限。

VisionPro需要深入理解多視圖幾何、相機模型等理論,而VisionMaster更側重應用層面的流程設計。

Halcon的官方文檔是學習Halcon的最佳資源之一。

HALCON - the powerful Machine Vision Software: MVTec Software

文檔中詳細介紹了Halcon的各種功能和用法,包括圖像處理、形態學計算分析、校正、分類辨識、形狀搜尋等基本的幾何以及影像計算功能。

?1.halcon學習路線

??Halcon算法基礎?? -> ??C#語言與UI開發?? -> ??軟硬件聯合編程?? -> ??最終項目方案設計?

halcon安裝

安裝教程網上太多了,這里附上鏈接

安裝鏈接:Halcon2024版安裝教程附帶license(2025.04)更新_halcon license-CSDN博客

license下載地址:license的github地址

參考:Halcon學習路線-CSDN博客

技術主題具體知識點
halconhdevelop使用、通用流程、數據類型和異常處理、采集圖像
圖像與ROI、圖像預處理
blob(流程、分割方法、灰度直方圖工具、特征直方圖工具、blob實例)
幾何定位(匹配助手、幾何定位實例)
仿射變換(仿射變換理論、實例)
測量(卡尺工具的過程、一維助手、找圓和找直線工具)
案例分析blob、定位、測量、仿射變換、一維碼、二維碼、OCR
C#常量與變量、表達式與運算符、字符與字符串、流程控制語句
數組、屬性和方法、結構與類、異常處理、程序調試
Form窗體、常用控件、定時器、獲取時間、文件夾操作(獲取exe路徑、創建新文件夾等)
寫CSV文件、線程
聯合編程環境配置、數據類型、halcon程序導出成ot程序、聯合編程示例之Blob
聯合編程示例之相機采圖(外觸發和軟觸發)、輪廓匹配、測量、配置文件讀寫
硬件硬件及打光實踐
九點標定串口、網口、機械手和相機九點標定
外觸發及方案設計外觸發關鍵技術、如何根據客戶需求進行方案設計

📖 一、Halcon 學習路線?

??第一階段:Halcon 基礎與核心算法 (路線圖中的“Halcon”部分)??

這是整個學習的基石,目標是熟練掌握HDevelop并理解機器視覺的核心處理流程。學習內容??:安裝配置(Windows/Linux)、HDevelop界面操作、圖像采集與顯示、基礎算子(濾波、邊緣檢測)。??資源??:《Halcon入門教程v1.9》、官方示例庫。?模板匹配(形狀/特征匹配)、測量工具(亞像素級精度)、OCR/條碼識別、Blob分析。資源??:Halcon范例教程(CSDN文庫)。?

  1. ??開發環境與基礎:

    • 熟悉 ??HDevelop?? 的界面、腳本編輯、變量管理、程序調試。
      重點掌握:
      * 圖像采集(read_image, grab_image)  
      * 區域處理(threshold, connection, select_shape)  
      * 模板匹配(create_shape_model, find_shape_model)  
      * 測量(measure_pos, measure_pairs)  
    • 掌握Halcon的??通用流程??:圖像采集 -> 圖像預處理 -> 區域/特征提取 -> 結果判斷與輸出。
      用Halcon實現經典算法:
      Canny邊緣檢測(edges_image)
      形態學開閉運算(opening_circle, closing_rectangle1)
      仿射變換(hom_mat2d_rotate, affine_trans_image)
    • 理解Halcon特有的??數據類型??:HImage(圖像),HRegion(區域),HXLD(輪廓)等,以及它們之間的轉換。學
  2. ??圖像處理與分析:?

    • ??圖像預處理??:學習各種濾波(均值、中值、高斯)、圖像增強等,為后續分析準備高質量的圖像。
    • ??Blob分析(區域分析)??:這是最核心的技術之一。
      * 頻域分析(fft_image+濾波)  
      * Blob分析(select_shape篩選缺陷區域)  
      * 分類器(MLP或SVM區分真假缺陷)  
      關鍵技巧:使用gen_contour_region_xld提取亞像素輪廓提升精度
      • ??流程??:圖像分割(閾值分割、動態閾值等) -> 區域處理(形態學、連接、選擇) -> 特征提取(面積、中心、圓度等) -> 特征選擇。
      • 熟練使用 ??灰度直方圖工具?? 和 ??特征直方圖工具?? 來輔助分析和選擇區域。
  3. ??幾何定位(Pattern Matching):??

    • 學習使用 ??匹配助手(Matching Assistant)??。這是Halcon的王牌功能,用于在圖像中精確找到目標物體。
    • 掌握基于形狀的匹配(Shape-Based Matching)的原理和參數調節(金字塔級別、角度范圍、對比度等)。
    • 通過實例學習如何解決遮擋、臟污、亮度變化等實際問題。
  4. ??測量與擬合:??

    • ??仿射變換??:理解其原理(平移、旋轉、縮放),學會將像素坐標轉換到世界坐標(機器人坐標),這是??九點標定??的理論基礎。
    • ??測量技術??:
      • 掌握 ??卡尺工具(Caliper)?? 的工作過程,用于邊緣精準定位。
      • 學習使用 ??一維測量助手(1D Measuring Assistant)??。
      • 實踐??找圓??和??找直線??的工具。
  5. ??綜合案例與識別:??

    • 將前面所學融會貫通,完成Blob、定位、測量、仿射變換的綜合案例。
    • 學習??一維碼??、??二維碼??的識別。
    • 了解??OCR(光學字符識別)?? 的基本流程。
      3D定位
      雙目相機標定(calibrate_cameras)
      點云處理(xyz_to_object_model_3d)
      3D匹配(find_surface_model)高速OCR
      字符分割(partition_dynamic)
      深度學習OCR(read_ocr_class_mlp)
      實時性(通過ROI減少處理區域)

??第二階段:編程語言與聯合開發 (路線圖中的“C#”和“聯合編程”部分)??

工業應用通常需要強大的上層界面,C#(或C++)是首選。學習內容??:
3D視覺:點云處理(配準、分割)、3D匹配(基于CAD模型)。
深度學習:目標檢測(YOLO集成)、缺陷分類(需準備.hdict數據集)。
腳本編程:Halcon腳本語法、C++/Python API集成。

  1. ??C# 編程基礎:??

    • 掌握變量、流程控制、數組、字符串、類與對象等核心語法。
    • 重點學習??窗體(Form)開發??、常用控件(按鈕、圖片框、列表框等)、??定時器??、??文件操作??和??多線程??。這些是開發視覺軟件界面的基礎。
  2. ??Halcon 與 C# 聯合編程:??

    • ??環境配置??:在Visual Studio中配置Halcon的.NET開發環境,添加引用。
    • ??數據交互??:學會在C#中調用Halcon算子,并正確處理Halcon的數據類型(如將HImage轉換為C#圖片控件可顯示的格式)。
    • ??程序導出??:將HDevelop中調試好的程序??導出為C#代碼(.cs文件)或導出為.NET程序集(.hdpl文件)??,然后在C#項目中調用。這是提升開發效率的關鍵!
    • ??實戰演練??:在C#中實現相機采圖(軟觸發、外觸發)、輪廓匹配、測量、參數保存(配置文件讀寫)等功能。
??第三階段:硬件集成與項目實戰 (路線圖中的“硬件”、“九點標定”、“外觸發”)??

這是從“會編程”到“能做項目”的關鍵飛躍。

  1. ??視覺硬件選型與打光:??

    • 了解相機(面陣、線陣)、鏡頭(焦距、景深)、光源(環形光、條形光、背光、同軸光)的選型原則。
    • ??“打光實踐”至關重要??!好的打光能讓算法事半功倍。多動手,嘗試不同的打光方式來解決實際問題。
  2. ??九點標定(手眼標定):??

    • 這是機器人視覺引導的核心技術。
    • 理解標定原理:建立??圖像像素坐標系??與??機器人坐標系??之間的映射關系。
    • 學習通過??串口??或??網口??與機械手通信,完成九點標定的完整流程。
  3. ??外觸發與方案設計:??

    • 學習??外觸發??技術,使相機拍照與生產線運動同步,確保圖像采集的準確性。
    • ??方案設計??:學習如何分析客戶需求,將需求拆解為技術指標(精度、節拍),并據此選擇相機、鏡頭、光源、算法流程,最終形成可行的技術方案。
第四階段:工業強化

  1. 硬件集成

    • 學習與PLC通信(如通過TCP/IP發送檢測結果)
    • 相機SDK二次開發(如Basler的Pylon API)
  2. 性能優化?

    • Halcon算子級優化:
      • 使用tuple替代循環
      • 預編譯模型(write_shape_model加速加載)
    • 多線程處理(par_start并行化)
  3. 行業專項突破?

    • 半導體:晶圓缺陷檢測(暗場照明+高分辨率相機)
    • 汽車:零件尺寸測量(微米級精度要求)
    • 食品:包裝完整性檢測(多光譜成像)

💡 二、學習建議與資源

  1. ??學習順序??:嚴格按照路線圖的順序進行,??不要跳級??。先精通Halcon本身,再學C#,最后搞聯合編程和硬件。地基不牢,地動山搖。
  2. ??核心方法??:??多動手!多動手!多動手!?? 光看文檔和視頻是學不會的。對于每個知識點,都要在HDevelop里親自寫代碼、調參數、看效果。
  3. ??最佳資料??:
    • ??Halcon自帶的幫助文檔和示例程序??:這是最權威、最好的學習資料,按F1查看算子說明,里面的示例代碼極其寶貴。?HALCON 產品文件和手冊: MVTec Software
    • ??書籍??:《機器視覺算法與應用(雙語版)》、《Halcon機器視覺算法原理與編程實戰》。
    • ??社區??:CSDN(Halcon 快速入門教程_halcon教程-CSDN博客)、博客園(halcon進化日記-方法論:階段1:基礎攻堅(1~2個月) - 黛色星霜 - 博客園)、知乎上有大量經驗分享和問題解答。

2.OpenCV學習路線

  • OpenCV開發基礎
    掌握圖象與視頻讀寫,基礎函數知識,HighGUI與Core模塊像素操作,圖形操作,圖象統計信息與直方圖相關應用。

  • 圖象卷積
    理解圖象卷積概念與相關函數知識,掌握常見的模糊、銳化、增強、去噪、梯度等卷積操作

  • 二值圖象分析
    掌握圖象二值化各種方法與技巧,學會CCL,輪廓發現,對象測量,輪廓分析,直線與圓檢測等二值分析方法,掌握圖象形態學應用操作技巧

  • 視頻分析
    掌握圖象色彩空間轉化技巧,視頻背景提取、角點特征與光流分析法、理解顏色對象跟蹤、光流跟蹤、均值遷移跟蹤等算法原理與代碼演示

  • 特征提取
    掌握圖象特征提取的基本方法與相關函數知識,理解ORB特征描述子、SIFT特征描述子提取原理,圖象透視變換與特征匹配基本原理與應用演示

  • 深度神經網絡
    掌握OpenCV DNN模塊基于深度神經網絡的對象檢測模型的推理調用與輸出解析,包括SSD、YOLOv5、YOLOv8、對象檢測模型的使用與加速技巧。

  • 經典案例實戰
    星云測量與編碼、工業刀片缺陷檢測、自定義對象檢測、二維碼定位檢測 圖像分割與色彩提取、文檔處理與對齊、圖象對齊與拼接、條碼標簽有無檢測與定位

??
??第1周:計算機視覺與OpenCV基礎??

1.1 計算機視覺是OpenCV的核心應用領域,計算機視覺應用場景概述(工業檢測、自動駕駛、醫療成像等),因此需要一定的計算機視覺基礎。以下幾門課程是必不可少的:

圖像處理:了解圖像的基本操作,如裁剪、旋轉、縮放等。

特征提取:學習如何從圖像中提取有用的特征,如邊緣檢測、角點檢測等。

深度學習基礎:了解神經網絡的基本概念,特別是卷積神經網絡(CNN)。

1.2? OpenCV 發展歷程、跨平臺特性(Windows/Linux/macOS)
安裝配置:Python 版?pip install opencv-python?/ C++ 環境配置
核心數據結構:cv::Mat?矩陣操作、圖像內存管理

1.3?安裝OpenCV:根據自己的操作系統,選擇合適的安裝方法。可以使用pip安裝:

pip install opencv-python// 測試安裝:運行以下代碼,確保OpenCV安裝成功:
import cv2
print(cv2.__version__)

參考:OpenCV: OpenCV-Python Tutorials


??第2周:OpenCV 圖像操作(參考:OpenCV學習路線:從入門到精通-CSDN博客)

2.1 圖像讀取與顯示
  • 讀取圖像:使用cv2.imread()讀取圖像。

  • 顯示圖像:使用cv2.imshow()顯示圖像。

  • 保存圖像:使用cv2.imwrite()保存圖像。

    import cv2# 讀取圖像
    image = cv2.imread('example.jpg')# 顯示圖像
    cv2.imshow('Image', image)
    cv2.waitKey(0)
    cv2.destroyAllWindows()# 保存圖像
    cv2.imwrite('output.jpg', image)
    2.2 視頻處理
  • 讀取視頻:使用cv2.VideoCapture()讀取視頻。

  • 顯示視頻:使用cv2.imshow()顯示視頻幀。

  • 保存視頻:使用cv2.VideoWriter()保存視頻。

import cv2# 讀取視頻
cap = cv2.VideoCapture('example.mp4')# 保存視頻
fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter('output.avi', fourcc, 20.0, (640, 480))while cap.isOpened():ret, frame = cap.read()if not ret:break# 顯示視頻幀cv2.imshow('Frame', frame)# 保存視頻幀out.write(frame)if cv2.waitKey(1) & 0xFF == ord('q'):breakcap.release()
out.release()
cv2.destroyAllWindows()
2.3 圖像基本操作?幾何變換:縮放(resize)、旋轉(warpAffine)、仿射變換(getAffineTransform)
  • 裁剪圖像:使用數組切片操作。

  • 旋轉圖像:使用cv2.getRotationMatrix2D()cv2.warpAffine()

  • 縮放圖像:使用cv2.resize()

  • 
    import cv2# 讀取圖像
    image = cv2.imread('example.jpg')# 裁剪圖像
    cropped_image = image[100:300, 200:400]# 旋轉圖像
    center = (image.shape[1] // 2, image.shape[0] // 2)
    angle = 45
    scale = 1.0
    M = cv2.getRotationMatrix2D(center, angle, scale)
    rotated_image = cv2.warpAffine(image, M, (image.shape[1], image.shape[0]))# 縮放圖像
    resized_image = cv2.resize(image, (300, 300))# 顯示圖像
    cv2.imshow('Cropped Image', cropped_image)
    cv2.imshow('Rotated Image', rotated_image)
    cv2.imshow('Resized Image', resized_image)
    cv2.waitKey(0)

    2.4 邊緣檢測
  • Canny邊緣檢測:使用cv2.Canny()進行邊緣檢測。

    
    import cv2# 讀取圖像
    image = cv2.imread('example.jpg', cv2.IMREAD_GRAYSCALE)# Canny邊緣檢測
    edges = cv2.Canny(image, 100, 200)# 顯示邊緣檢測結果
    cv2.imshow('Edges', edges)
    cv2.waitKey(0) 
    2.5?特征提取
  • 角點檢測:使用cv2.goodFeaturesToTrack()進行角點檢測。

  • SIFT和SURF:使用cv2.SIFT_create()cv2.xfeatures2d.SURF_create()進行特征提取。

import cv2# 讀取圖像
image = cv2.imread('example.jpg', cv2.IMREAD_GRAYSCALE)# 角點檢測
corners = cv2.goodFeaturesToTrack(image, 25, 0.01, 10)
corners = np.int0(corners)for i in corners:x, y = i.ravel()cv2.circle(image, (x, y), 3, 255, -1)# 顯示角點檢測結果
cv2.imshow('Corners', image)
cv2.waitKey(0)
cv2.destroyAllWindows()# SIFT特征提取
sift = cv2.SIFT_create()
keypoints, descriptors = sift.detectAndCompute(image, None)# 顯示SIFT特征提取結果
image_with_keypoints = cv2.drawKeypoints(image, keypoints, None)
cv2.imshow('SIFT Keypoints', image_with_keypoints)
cv2.waitKey(0)
cv2.destroyAllWindows()

像素級操作:BGR/RGB 色彩空間轉換、ROI 區域截取


??第3周:圖像處理技術??


閾值分割:二值化(threshold)、自適應閾值(adaptiveThreshold)
濾波降噪:均值模糊(blur)、高斯模糊(GaussianBlur)、中值濾波(medianBlur)
邊緣檢測:Sobel算子、Laplacian算子
形態學操作:腐蝕(erode)、膨脹(dilate)、開閉運算


??第4周:特征檢測與描述??



角點檢測:Harris角點、Shi-Tomasi角點(goodFeaturesToTrack)
邊緣提取:Canny算法(重點掌握參數調節)
特征描述子:SIFT/SURF(專利算法)、ORB(實時替代方案)


??第5周:圖像分割與目標識別??


輪廓分析:findContours?輪廓檢測、層次結構解析
目標檢測:Haar級聯分類器(人臉檢測)、HOG + SVM(行人檢測)
實戰項目:簡單物體分類(如數字識別)

5.1 Haar特征級聯分類器
  • 人臉檢測:使用預訓練的Haar特征級聯分類器進行人臉檢測。


import cv2# 加載預訓練的Haar特征級聯分類器
face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')# 讀取圖像
image = cv2.imread('example.jpg')
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)# 檢測人臉
faces = face_cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5, minSize=(30, 30))# 繪制檢測到的人臉
for (x, y, w, h) in faces:cv2.rectangle(image, (x, y), (x+w, y+h), (255, 0, 0), 2)# 顯示檢測結果
cv2.imshow('Faces', image)
cv2.waitKey(0)
cv2.destroyAllWindows() 
5.2 HOG + SVM
  • 行人檢測:使用HOG特征和SVM分類器進行行人檢測。

    
    import cv2
    import numpy as np# 加載預訓練的HOG描述符
    hog = cv2.HOGDescriptor()
    hog.setSVMDetector(cv2.HOGDescriptor_getDefaultPeopleDetector())# 讀取圖像
    image = cv2.imread('example.jpg')# 檢測行人
    regions, _ = hog.detectMultiScale(image, winStride=(4, 4), padding=(4, 4), scale=1.05)# 繪制檢測到的行人
    for (x, y, w, h) in regions:cv2.rectangle(image, (x, y), (x+w, y+h), (0, 255, 0), 2)# 顯示檢測結果
    cv2.imshow('Pedest')

??第6周:視頻分析與動態處理??


?
視頻流處理:VideoCapture?讀寫視頻幀
運動檢測:幀差法、背景減除(createBackgroundSubtractorMOG2)
光流法:稀疏光流(calcOpticalFlowPyrLK)、稠密光流(DualTVL1OpticalFlow)


??擴展學習建議??


1.工具鏈整合??


GitCode??:獲取開源項目代碼(如車道線檢測、AR應用)
?InsCodeAI??:使用AI輔助生成OpenCV代碼片段


2.??實戰資源推薦??
書籍??:
《OpenCV輕松入門:基于Python》- 李立宗著
《計算機視覺40例:從入門到深度學習》(含配套代碼)
免費教程??:OpenCV官方文檔(opencv.org)


3.??進階方向??


相機模型與標定:cv.calibrateCamera()?實現畸變校正
深度學習集成:YOLO、SSD與OpenCV的dnn模塊結合
GUI開發:Qt/PyQt 開發交互式視覺應用

3.VisionPro(美國Cognex)??

??定位??:高精度工業級解決方案,強于機器人引導和實時檢測。

??

階段1:圖形化基礎(1周)??

??學習內容??:QuickBuild環境搭建、相機標定、工具鏈拖拽(PatMax定位、Caliper測量)。
??

階段2:工具鏈精通(2-3周)??

??學習內容??:復雜參數調優(如旋轉容忍度)、結果調試(CogToolResult)、ViDi深度學習模塊(額外授權)。

??階段3:API開發(4-6周)??

??學習內容??:
C#/VB.NET編程:動態加載VPP文件、HMI界面開發(WinForms/WPF)。
系統集成:與PLC通信(EtherNet/IP)、機械臂手眼標定。
??

階段4:工業部署??

??案例??:汽車零件全檢(±0.02mm精度)、高速生產線實時處理(多線程優化)。
??

4. VisionMaster(中國海康)??

??定位??:國產化快速開發平臺,適合中小型項目快速落地。

??

階段1:零代碼入門(3-5天)??

??學習內容??:流程圖式編程、預置算法(定位/測量/OCR)、GUI參數配置。
??

階段2:模塊化應用(1-2周)??

??學習內容??:漢字OCR(>99.9%準確率)、條碼識別、基礎點云處理(限簡單場景)。
??

階段3:腳本擴展(選學)??

??學習內容??:Python腳本調用OpenCV、EtherCAT機器人通信。
??實戰場景??:物流分揀、包裝日期識別(1小時內部署)。

?? 二、核心維度對比


???

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

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

相關文章

算法-根據前序+中序遍歷打印樹的右視圖

題目請根據二叉樹的前序遍歷,中序遍歷恢復二叉樹,并打印出二叉樹的右視圖數據范圍: 0≤n≤100000≤n≤10000 要求: 空間復雜度 O(n)O(n),時間復雜度 O(n)O(n)如輸入[1,2,4,5,3],[4,2,5,1,3]時,通過前序遍歷…

Kafka面試精講 Day 7:消息序列化與壓縮策略

【Kafka面試精講 Day 7】消息序列化與壓縮策略 在Kafka的高性能消息系統中,消息序列化與壓縮是影響吞吐量、延遲和網絡開銷的核心環節。作為“Kafka面試精講”系列的第7天,本文聚焦于這一關鍵主題,深入剖析其原理、實現方式、配置策略及常見…

Xterminal軟件下載_Xterminal ssh遠程鏈接工具下載__Xterminal安裝包 網盤下載_Xterminal ssh遠程鏈接工具安裝包

Xterminal 作為一款國產 SSH 工具,專為開發人員量身打造。它支持 SSH 和 Telnet 協議連接遠程服務器與虛擬機,無論是進行代碼部署,還是服務器運維,都能輕松勝任。軟件界面采用極簡設計,黑色背景搭配白色文字&#xff0…

Lua > 洛谷

Lua > 洛谷P1000 超級瑪麗游戲P1001 AB ProblemP1008 [NOIP 1998 普及組] 三連擊P1035 [NOIP 2002 普及組] 級數求和P1046 [NOIP 2005 普及組] 陶陶摘蘋果P1047 [NOIP 2005 普及組] 校門外的樹P1085 [NOIP 2004 普及組] 不高興的津津P1089 [NOIP 2004 提高組] 津津的儲蓄計劃…

小企業環境-火山方舟和扣子

背景說明 并不是說應該怎么辦,而是基本配置有這些可以進行使用,具體不同企業使用的時候肯定要個性化配置。 使用了火山方舟和扣子 火山方舟 應用實驗室列表 簡單使用了提示詞的功能,后端服務ARK_API_KEY 應用ID 來對應請求發送http請求…

QT-事件

Qt事件 除了信號和槽通信機制外,Qt中還提供了事件處理機制實現與用戶的交互和對象間的通信。Qt捕獲底層操作系統消息,進行封裝之后轉換為Qt事件,事件處理后才發出信號。 一、事件概述Qt中事件是程序內部或外部發生的動作。比如程序外部&#…

HI3519DRFCV500/HI3519DV500海思核心板IPC算力2.5T圖像ISP超高清智能視覺應用提供SDK軟件開發包

Hi3519DV500是一顆面向視覺行業推出的超高清智能 SoC。最高支持四路sensor輸入,支持最高4K30fps的ISP圖像處理能力,支持 2F WDR、多級降噪、六軸防抖、全景拼接、多光 譜融合等多種傳統圖像增強和處理算法,支持通過AI算法對輸入圖像進行實時降…

go 初始化組件最佳實踐

Go 語言初始化最佳實踐 在 Go 語言中, 有一個 init() 函數可以對程序進行包級別的初始化, 但 init() 函數有諸多不便, 例如: 無法返回錯誤, 進行耗時初始化時, 會增加程序啟動時間。因此 init() 函數并不適用于所有初始化。 1.初始化方式 在程序進行初始化時,我們應…

域名暫停解析是怎么回事

域名注冊和使用是需要付費的,如果沒有及時續費,域名注冊商就會暫停該域名的解析服務。相關數據顯示,大約有 30% 的域名暫停解析情況是由于欠費引起的。比如,有個小公司的網站域名到期了,負責續費的員工忘記操作&#x…

前端開發的“三劍客”—— ??HTML、CSS、JavaScript??

前端開發的“三劍客”—— ??HTML、CSS、JavaScript??,是構建所有網頁和Web應用的基石。它們分工明確又緊密協作,共同實現了網頁的“內容結構”“視覺表現”和“交互行為”。以下是三者的詳細解析及協作邏輯:??1. HTML:網頁…

TDengine TIMEDIFF() 函數用戶使用手冊

TDengine TIMEDIFF() 函數詳細使用手冊 目錄 功能概述函數語法參數說明返回值說明版本變更說明技術特性使用場景及示例時間單位處理數據類型兼容性注意事項常見問題最佳實踐 功能概述 TIMEDIFF() 函數用于計算兩個時間戳的差值,返回 expr1 - expr2 的結果。結果…

數據結構:棧和隊列(上)

匯總代碼見:登錄 - Gitee.com 上一篇文章:數據結構:雙向鏈表-CSDN博客 與本文相關的結構體傳參:自定義類型:結構體-CSDN博客 1.棧 1.1概念和結構 棧:一種特殊的線性表,其只允許在固定的一端…

文檔抽取技術:提取非結構化文檔中的關鍵信息,提升檔案管理、金融保險和法律合規領域的效率與準確性

在信息爆炸的時代,各種機構、企業等都面臨著海量非結構化文檔數據的挑戰。報告、合同、票據、檔案記錄、法律文書等文檔中蘊藏著巨大的數據,但傳統依靠人工閱讀、理解和錄入的方式效率低下、成本高昂且容易出錯。文檔抽取技術作為人工智能和自然語言處理…

雷柏VT1 MAX評測:原生中小手形電競鼠標 但既不僅限于中小手形 也不僅限于電競

一、前言:真正針對中小手形設計的電競鼠標 雷柏第二代VT系列電競鼠標我們已經體驗過很多款了,基本都是針對大中手形設計的外形模具,只有VT3s系列是VT3系列的縮小版,更適合中小手形使用,但也只是對中大手形模具重新優化…

新客戶 | TDengine 時序數據庫賦能開源鴻蒙物聯展區實時監控與展示

在工業物聯網快速發展的當下,企業普遍面臨著兩大挑戰:一是設備種類繁多、接入標準不一,導致系統建設容易陷入“數據孤島”;二是實時監控和多場景聯動的需求越來越強烈,但傳統數據庫在高頻寫入與多維分析上難以兼顧&…

深入剖析 ConcurrentHashMap:Java 并發編程的基石

目錄 【1】Java 7 中 ConcurrentHashMap 的實現原理 1.分段鎖(Segment) 2. 數據結構 3. 操作流程 【2】Java 8 中 ConcurrentHashMap 的改進 1.紅黑樹的引入 2.CAS 操作 3.數據結構的變化 【3】ConcurrentHashMap 的常用方法及使用示例 1.put(…

【會員專享數據】2020-2022年我國鄉鎮的逐日地表氣壓數據(Shp/Excel格式)

之前我們分享過2020—2022年中國0.01分辨率逐日地表氣壓柵格數據(可查看之前的文章獲悉詳情)!該數據是研究者張凌, 胡英屹等發布在國家冰川凍土沙漠科學數據中心平臺上的高分辨地表氣壓數據。很多小伙伴拿到數據后反饋柵格數據不太方便使用&a…

第二階段WinForm-12:UI控件庫

1_驗證碼與條形碼 1.1_條碼基礎知識 條碼:條碼是由一組按一定編碼規則排列的條、空符號組成,用以表示一定的字符、數字及符號組成的信息 1.2_一維碼 (1)Code 128 Code 128 是一種密度很高的字母數字代碼系統,可對其…

別再誤會了!Redis 6.0 的多線程,和你想象的完全不一樣

技術解析核心誤區:Redis 6.0是完全多線程的嗎?No. Redis 6.0引入的多線程,只用于網絡I/O的讀寫和數據的解析。而核心的命令執行(比如 GET, SET, HGETALL 等)依然是單線程的。Redis的架構演進,就像是把一個復…

23種設計模式——抽象工廠模式(Abstract Factory Pattern)詳解

?作者簡介:大家好,我是 Meteors., 向往著更加簡潔高效的代碼寫法與編程方式,持續分享Java技術內容。 🍎個人主頁:Meteors.的博客 💞當前專欄:設計模式 ?特色專欄:知識分享 &#x…