深度學習在MRI運動校正中的應用綜述

運動是MRI中的主要挑戰之一。由于MR信號是在頻率空間中獲取的,因此除了其他MR成像偽影之外,成像對象的任何運動都會導致重建圖像中產生偽影。深度學習被提出用于重建過程的幾個階段的運動校正。廣泛的MR采集序列、感興趣的解剖結構和病理學以及運動模式(剛性與可變形、隨機與規則)使綜合解決方案變得難以可用。為了促進不同應用之間的交流,該綜述詳細概述了MRI中基于深度學習的運動校正方法,以及它們的常見挑戰。該綜述確定了基礎數據使用、架構和評估策略方面的差異和協同。

來自:Deep Learning for Retrospective Motion Correction in MRI: A Comprehensive Review

目錄

  • 背景
  • 數據和運動仿真
    • 大腦
    • 心臟和腹部
  • 架構
    • 基于圖像的MoCo
    • 基于k空間的MoCo
  • 評價標準

運動是MRI診斷的主要挑戰。盡管MRI是一種具有良好軟組織對比度的非侵入性醫學成像模式,但其固有的長采集時間使其比大多數其他模式更容易受到運動的影響。隨著深度學習發展,已經提出了很多基于數據驅動的運動校正方法(MoCo,Motion Correction)。盡管存在關于運動偽影(motion artefacts)和經典MoCo的綜述,但到目前為止,還沒有對基于學習的MR運動校正方法進行綜述。特別是缺少對越來越流行的MoCo + 圖像重建領域的綜述。

感興趣區域、采集方案和運動類型的差異本質上影響數據驅動方法,所以需要確定基礎模型和整體方法協同作用。該綜述包含以下部分:

  • 背景:MR運動偽影和經典MoCo
  • 數據和運動仿真:常見的大腦和心臟模擬策略
  • 架構:基于圖像和基于k空間的MoCo
  • 評價標準:圖像質量、運動檢測以及下游任務

背景

MR圖像采集期間的相關運動包括運動器官(例如由于心臟運動或呼吸)和身體部位的有意識或無意識運動(例如由于患者不適)。當對不同的身體區域進行成像時,可以觀察到不同的運動模式:

  • 對于大腦的圖像,頭部的運動通常被認為是隨機的,由六個剛體運動參數(三個旋轉分量和三個平移分量)表征,通常忽略了微小的可形變運動(比如大腦的脈動)
  • 相反,對于腹部和心臟成像,器官由于呼吸和心跳而產生的內在運動會導致準周期性模式和可變形的非剛性運動,其自由度明顯更大。

無論確切的運動模式如何,成像對象的運動都會影響在頻率空間(k空間)中獲取的MR信號。一方面,位置的變化破壞了對所獲取信號中的空間信息進行編碼的能力。另一方面,物理MR信號特性受到二階運動效應的負面影響,例如由于運動引起的磁場不均勻性或自旋效應。因此,在從頻率到圖像空間重構運動破壞的數據之后,可能會出現復雜的偽影,這無法在簡單的過程中進行校正。圖1A中大腦和腹部成像的示例性運動損壞圖像說明了運動可能阻礙診斷。
fig1A

  • 圖1A:大腦,腹部,心臟成像的典型運動模式,以及運動受損(motion-corrupted)和無運動(motion-free)圖像的例子。對于大腦成像,通常假設隨機剛體運動,這會導致偽影,這取決于確切的采集方案和運動模式。對于心臟和腹部成像,運動通常是可形變的和準周期性的。

目前已經提出了幾種策略來減輕運動偽影。第一種,患者的運動可以受到物理限制,例如,僅在患者屏息期間進行腹部掃描,或在成像時使用鎮靜劑或全身麻醉。第二種,通過選擇性地采集特定運動狀態下的數據或使用高級采樣模式(目前的圖像采集方案已被設計為對運動更具魯棒性)。第三種,目前已經引入了加速和并行成像方法,其優點是采集時間更短,運動事件的機會更少(MRI acceleration)。

除了這些仍然容易受到運動偽影影響的緩解策略之外,目前已經提出了另一組方法,通過明確地去除運動偽影來直接執行運動校正,并通過利用運動模式的規律性來進行補償,以實現更好的重建。這些方法包括在圖像采集過程中應用的前瞻性方法(prospective methods),以及在圖像采集后在重建管道中的各個階段應用的回顧性方法(retrospective methods)。回顧性方法必須處理運動引起的圖像信息丟失,例如k空間中的數據不一致。為此,深度學習方法展示出前景,因為它們能夠在缺乏完整分析模型的情況下識別復雜模式。

數據和運動仿真

大多數基于學習的MoCo方法依賴于監督訓練,即依賴于具有和不具有運動偽影的配對數據。當然,即使是自監督方法也使用配對數據進行定量評估。一些研究已經獲得了成對的運動破壞和無運動(GT)圖像用于訓練和評估。然而,獲取大型配對數據集成本高昂,因此,這是運動仿真被廣泛使用的原因

在模擬運動偽影時,重要的是要考慮感興趣解剖結構的典型運動模式。下面,總結了大腦,心臟和腹部成像的常見模擬程序。

大腦

在存在運動的情況下,剛體運動的模擬遵循MRI正向模型: y = ∑ t = 1 T M t F U t x (1) y=\sum_{t=1}^{T}\textbf{M}_{t}\mathscr{F}\textbf{U}_{t}x\tag{1} y=t=1T?Mt?FUt?x(1)其中,傅里葉變換 F \mathscr{F} F,采樣mask M t \textbf{M}_{t} Mt?,運動變換 U t \textbf{U}_{t} Ut?被應用于每個時間點 t t t的GT圖像 x x x,以生成運動破壞的k空間 y y y。在剛體運動的情況下,運動變換 U t = T t R t \textbf{U}_{t}=\textbf{T}_{t}\textbf{R}_{t} Ut?=Tt?Rt?,由旋轉變換 R t \textbf{R}_{t} Rt?和平移變換 T t \textbf{T}_{t} Tt?組成。此外,線圈靈敏度或二階運動效應可以包括在正向模型中,以將模擬擴展到特定應用。

它在數學上等效于模擬圖像空間或k空間中的運動。如圖2所示,圖像空間中的模擬是通過旋轉和平移圖像并在每個時間步長用變換后的圖像的傅立葉變換替換相應的k空間線來執行的。k空間中的模擬基于傅立葉變換的特性:成像對象的旋轉對應于k空間中等效的旋轉,平移 T \textbf{T} T對應于線性相位斜坡的乘法,這取決于平移參數 a a a和讀出方向 k R O k_{RO} kRO?上的k空間坐標: T ( y ) = y ? e x p ( ? i 2 π a k R O ) (2) \textbf{T}(y)=y\cdot exp(-i2\pi ak_{RO})\tag{2} T(y)=y?exp(?i2πakRO?)(2)無論在哪個域進行模擬,重要的是將運動的時序與MR采集方案相匹配,以模擬真實的偽影。
fig2

  • 圖2:基于每個時間步長的 x x x y y y z z z平移和旋轉參數,在圖像或頻域中模擬剛體運動。當在圖像域(1)中進行模擬時,平移和旋轉參數應用于圖像。當在頻域(2)中模擬時,相應的k空間線被旋轉并與線性相位斜坡相乘(通過箭頭可視化)。對于兩者,不同時間步長的k空間線被合并到一個損壞的k空間中。

心臟和腹部

( 1 ) (1) (1)可知,通過應用可變形矢量場(DVF,deformable vector field)作為運動變換 U t \textbf{U}_t Ut?來實現基于圖像的非剛性運動模擬。真實DVF可以通過配準參考圖像來獲得,例如來自不同運動狀態的參考圖像。如果可用,可以使用多個時間分辨重建 x t x_t xt?來替換 U t x \textbf{U}_{t}x Ut?x,從而在沒有DVF的情況下進行模擬。

與剛性運動相比,直接模擬k空間中的非剛性變形并非易事。因此,心臟和呼吸運動模擬可以在k空間中通過變化的平移來近似。為了模擬周期性運動,在 ( 2 ) (2) (2)中應用具有周期性變化的平移參數的線性相位斜坡,比如 a ( t ) ∝ s i n ( t ) a(t)∝sin(t) a(t)sin(t)。需要注意的是,這是一個非常簡化的運動表示。

架構

基于圖像的MoCo

基于圖像的MoCo方法將受運動影響的圖像作為輸入,并產生經運動校正的圖像作為輸出,類似于圖像去噪或去模糊任務,如圖1B所示。這些方法的不同之處在于a.底層網絡架構,b.先驗信息的潛在使用,以及c.訓練目標。
fig1B

  • 圖1B:基于圖像的MoCo的經典和對抗性訓練目標的可視化。對于經典訓練,例如使用voxel intensity-based損失函數 L L L將預測結果與GT圖像進行比較。對于對抗性訓練,訓練額外的鑒別器網絡以與生成器網絡( L g e n L_{gen} Lgen?)競爭并將預測圖像與GT( L a d v L_{adv} Ladv?)區分開。

對于底層網絡架構
圖像到圖像的翻譯任務可以使用卷積編碼器-解碼器結構,其包括用于特征編碼的下采樣路徑,然后是用于解碼提取特征的上采樣路徑。與U-Net一樣,大多數方法使用skip連接將細節從編碼器傳輸到解碼器。此外,一些方法連續級聯多個編碼器-解碼器結構。受transformer架構最近在其他領域取得成功的啟發,后來的工作采用自注意機制來編碼運動偽像的空間上下文。

先驗輔助方法
可以修改所提出的架構以利用附加信息。這些現有的輔助方法通過具有共享特征提取的共享編碼器和解碼器處理多個輸入。例如,Ghodrati等人試圖通過計算由在動態圖像上預訓練的輔助網絡提取的特征來利用時間信息。此外,動態信息可用于基于配準的方法,其中CNN用于將裝倉的數據配準到公共空間中,其組合產生運動校正的輸出圖像。

訓練目標
如圖1B所示,在監督設置中的經典網絡訓練是通過使用基于體素強度的代價函數(即L1或L2)將網絡的預測與無運動的GT圖像進行比較來執行。然而,條件生成對抗網絡(GANs)采用了不同的訓練目標。利用鑒別器網絡擴展了生成器網絡,該生成器網絡將運動破壞圖像映射為無運動圖像,鑒別器網絡旨在將預測圖像與GT圖像區分開。除了對抗損失,其中一些方法依賴于基于體素強度的代價函數作為生成器損失來比較預測圖像和GT圖像。其他包括感知損失(perceptual loss)、風格遷移損失(style transfer loss)或結構相似性損失(SSIM,structural similarity loss)。除了對抗性方法,Küstner等人提出了另一種使用變分自編碼器(VAE)的監督生成訓練策略,該策略試圖直接從圖像對中學習無運動的潛在分布。

為了應對缺乏配對的無運動和損壞的數據,無監督生成模型旨在校正來自無配對數據的運動偽影。由兩個GAN組成的CycleGAN架構在(Learning MRI artefact removal with unpaired data)和(Unsupervised Adversarial Correction of Rigid MR Motion Artifacts)中進行了調整。兩個生成器,一個破壞無運動圖像,另一個校正未配對的損壞圖像。對抗性損失可以用來自另一個域的未配對圖像來計算,而生成性損失是以無監督的方式在來自同一域的循環變換輸入上計算的。劉等人將生成器的潛在表示分解為人工信息和內容信息,并使用從內容翻譯中生成的圖像來訓練網絡。這些方法都包括多尺度代價函數。在另一種情況下,Oh等人將運動視為概率欠采樣問題,并訓練生成器以消除欠采樣偽影,他們試圖通過組合重復的隨機欠采樣重建來校正運動破壞的測量Unpaired MR Motion Artifact Deep Learning Using Outlier-Rejecting Bootstrap Aggregation)。

基于k空間的MoCo

與基于圖像的方法不同,MoCo還可以利用原始k空間數據的附加信息內容,與MR重建過程相互作用(見圖1C)。運動感知重建管道的不同組件可以是基于學習的。在下面的部分中,概述了將經典模塊和基于學習的模塊結合在一起的方法,以及純學習的方法
fig1C

  • 圖1C:基于k空間的MoCo圖解。
  • 將經典模塊和基于學習的模塊相結合的方法可以分為以下幾類:1.替換基于模型重建的不同組件,該方法通過最小化損失函數 L ( θ , x ) L(θ,x) L(θ,x)在找到圖像 x x x和相應的運動參數 θ θ θ之間迭代。基于學習的模塊以圖像初始化、損失函數或運動參數為目標。2.將經典重建與基于學習的損壞k空間測量的運動檢測或基于學習的運動場 U t \textbf{U}_{t} Ut?估計相結合。3.將經典的運動檢測或估計與學習的展開重建相結合,該重建在去噪網絡和數據一致性(DC)塊之間迭代。
  • 純粹基于學習的方法包括:4.直接旨在通過在k空間和圖像空間中執行卷積或從基于學習的重建中排除運動破壞的k空間測量來校正運動偽影的方法。5.運動補償方法,其隱式或顯式地使用運動信息來實現更高質量的圖像重建。一個子類方法將生成重建模型與個人的原始數據相匹配,而運動可以選擇性地通過包括變形場來顯式建模。

A.經典方法和基于學習的方法相結合:多種方法使用基于學習的MoCo或重建組件擴展了經典框架。可以學習基于模型的重建的一部分、運動分析或重建本身。

替換部分基于模型的重建
基于模型的MoCo算法依賴于運動參數 θ \theta θ和重建圖像 x x x的聯合估計。這些方法建議用基于學習的組件替換優化過程的不同部分,以實現更快的收斂和理想情況下更穩定的重建(圖1C.1)。Kuzmina等人使用CNN作為自動聚焦的損失函數的一部分,其中優化基于圖像質量度量。對于基于數據一致性(DC)的優化過程,CNNs或U-Nets被用于運動參數估計,作為運動校正圖像的初始化,或者作為重建網絡,其權重由依賴于運動參數的超網絡定義。相反,Levac等人提出了一種無監督方法,使用基于分數的模型,在無運動圖像上訓練。所有這些方法的共同點是,網絡經過預訓練,并在測試時間優化期間用作即插即用組件。此外,所有這些方法都專注于剛體運動,其自由度比非剛體運動小得多。

基于學習的運動分析與經典重建
另一組方法利用了剛體運動的隨機性。如圖1C.2所示,他們學習受運動影響的k空間測量的檢測模型,并用提取的運動時序為經典重建過程提供信息。Eichhorn等人將CNN用于k空間中的line檢測,并將這些線分類標簽用作基于總變化的重建過程的DC項中的權重。崔等人訓練基于圖像的CNN來校正運動偽影,并比較原始圖像和運動校正圖像的k空間,以生成受運動影響的k空間線的欠采樣掩碼,然后使用經典的壓縮感測過程來重構欠采樣的原始數據Motion artifact reduction for magnetic resonance imaging with deep learning and k-space analysis)。

在準周期運動的情況下,單個運動破壞的k空間線的假設不適用。運動補償方法不是針對單個運動事件進行校正,而是利用運動的周期性來對欠采樣數據進行更高質量的重建。這些方法學習運動估計,這些估計包含在基于模型的經典重建中。使用基于圖像的配準來預測運動場,并將其集成到重建問題的前向算子中。現有的方法在注冊網絡的輸入方面各不相同,即完整圖像與圖像patch,配對與分組輸入。此外,運動估計網絡可以進行預訓練,也可以與重建問題一起進行優化。

經典運動分析與基于學習的重建
相反,運動檢測和估計也可以用經典方法執行,并與學習的基于展開DC的重建相結合(圖1C.3)。Rotman等人通過比較來自兩個相對線圈元件的信號來檢測離散運動定時,并學習展開重建,其中規則化網絡分別接收在主導運動狀態和剩余運動狀態中獲取的數據。Miller等人采用了動態圖像到單個運動狀態的經典時空約束配準。注冊的圖像被編碼并轉發到展開的重建中,該重建通過將可用數據分割成子集以自監督的方式進行訓練。

B.純粹基于學習的方法:與A相比,有幾種方法將MoCo和圖像重建結合在一個純粹基于學習的框架中。這些可以通過其校正或補償運動的目的來區分。

基于運動校正目的:所提出的運動校正方法明確旨在去除底層數據中的運動偽影(圖1C.4)。Singh等人提出了一種由圖像和k空間中的交錯或交替卷積組成的網絡,用于同時進行剛體MoCo和重建。這種方法被進一步發展為一種數據一致性方法。Oksuz等人提出使用CNN來學習受運動影響的k空間線的欠采樣掩碼,并使用遞歸網絡重建欠采樣數據(Detection and Correction of Cardiac MR Motion Artefacts during Reconstruction from K-space)。在擴展中,他們用分割網絡來訓練檢測和重建網絡,從而專門針對感興趣的下游任務優化MoCo。

基于運動補償目的:所提出的運動補償方法利用發生的運動來改善重建結果,同時加快采集時間,如圖1C.5所示。空間和時間卷積以級聯或并行的方式應用于具有聯合或分離時空內核的動態圖像序列。為了利用來自相鄰幀的進一步信息,Schlenper等人包括數據共享層。Terpstra等人用從預訓練模型中獲得的運動場擴展了隱式運動補償重建。相反,有幾種方法以端到端的方式明確地學習具有重建問題的運動模型。Huang等人將運動估計和校正模塊附加到重建網絡中,并用一個組合損失函數訓練框架(Dynamic MRI reconstruction with end-to-end motion-guided network)。

評價標準

由于MoCo是作為實現高質量圖像重建的一種手段,因此主要基于其最終結果,使用圖像質量指標來評估所提出方法的性能。然而,一些人也評估中間運動估計或利用下游任務來評估。下面概述了最常見的評估策略。

圖像質量
可以通過分別計算圖像質量度量或專家圖像質量評級來執行定量或定性圖像質量評估。定量圖像質量度量可以是通過與GT參考圖像進行比較來評估圖像質量的全參考度量,也可以是不依賴于單獨的GT圖像的無參考度量。由于運動偽影的可變性,沒有一個單一的圖像質量測量對所有可能的偽影敏感。

大多數方法使用了兩種試圖模仿人類視覺感知的完整參考(reference-full)指標:結構相似性指數(SSIM),用于評估結構信息的退化;峰值信噪比(PSNR),用于將像素誤差與最大信號強度進行對比。不太常用的全參考指標是均方誤差(MSE)、均方誤差根(RMSE)、歸一化均方誤差、平均絕對(百分比)誤差(MAE或MAPE)、歸一化互信息(NMI)和視覺信息保真度(VIF)。此外,對于無參考指標(reference-free),如信噪比(SNR)、對比度噪聲比(CNR)和Tenengrad,用于評估沒有參考圖像的圖像質量。

下游任務
在某些情況下,MoCo框架不僅旨在提供高質量的重建,還能夠完成進一步的下游任務。在這種情況下,下游發現可以獨立評估,例如通過計算器官分割上的Dice重疊或計算T2* map上的SSIM和相對誤差度量。為了評估MoCo在縱向分析中增加的統計能力,可以采用皮質表面重建和皮質厚度相關性分析等結構元素的手動質量控制。特別是在沒有參考的情況下,可以分析冠狀血管等小解剖特征的清晰度。在心臟成像中,可以評估心臟功能分析。此外,作為MR MoCo的一個重要最終目標,可以對運動受損和校正掃描的臨床結果進行比較。

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

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

相關文章

用dcker極簡打包java.jar鏡像并啟動

用dcker極簡打包java.jar鏡像并啟動 一、本地打包好jar包 二、新建文件夾,將步驟1中的jar包拷貝到文件夾下 三、同目錄下新建Dockerfile ## 基礎鏡像,這里用的是openjdk:8 FROM openjdk:8## 將步驟一打包好的jar包 拷貝到鏡像的 跟目錄下[目錄可以自定義…

Oracle字段長度不足位數補零

Oracle字段長度不足位數補零 有時候從數據庫中取出的月份值是1&#xff0c;而不是01&#xff0c;該怎么辦呢 SELECTLPAD( CODE_MONTH, 2, 0 ) FROMtb_cube_TY001 WHERECODE_BM_MEATYPE TY20 AND code_measure MYLX01 AND code_month <> ~ AND CODE_ENTITY 01A AND…

【實戰】十一、看板頁面及任務組頁面開發(二) —— React17+React Hook+TS4 最佳實踐,仿 Jira 企業級項目(二十四)

文章目錄 一、項目起航&#xff1a;項目初始化與配置二、React 與 Hook 應用&#xff1a;實現項目列表三、TS 應用&#xff1a;JS神助攻 - 強類型四、JWT、用戶認證與異步請求五、CSS 其實很簡單 - 用 CSS-in-JS 添加樣式六、用戶體驗優化 - 加載中和錯誤狀態處理七、Hook&…

“深入探索JVM:解析Java虛擬機的工作原理與優化“

標題&#xff1a;深入探索JVM&#xff1a;解析Java虛擬機的工作原理與優化 摘要&#xff1a;本篇博客將深入探討Java虛擬機&#xff08;JVM&#xff09;的工作原理以及如何優化JVM的性能。我們將介紹JVM的組成部分、類加載過程、內存管理、垃圾回收機制以及常見的性能優化技術…

記一次線上OOM事故

OOM 問題 linux內核有個機制叫OOM killer(Out-Of-Memory killer)&#xff0c;當系統需要申請內存卻申請不到時&#xff0c;OOM killer會檢查當前進程中占用內存最大者&#xff0c;將其殺掉&#xff0c;騰出內存保障系統正常運行。 一般而言&#xff0c;一個應用的內存逐漸增加&…

__setitem__和__getitem和__delitem__

目錄 一、__setitem__ 二、__getitem__ 三、__delitem__與__delattr__ python從小白到總裁完整教程目錄:https://blog.csdn.net/weixin_67859959/article/details/129328397?spm1001.2014.3001.5502 class Foo:def __init__(self, name):self.name namedef __getitem__(s…

mekefile 編寫

mekefile 編寫 參考 Linux下使用 autoconf和automake 自動構建 項目 make file文件 makefile 中加入shell語句 if shell 參考 foo.bak: foo.barecho "foo"if [ -d "~/Dropbox" ]; then echo "Dir exists"; fi Or foo.bak: foo.barecho &quo…

文心一言 VS 訊飛星火 VS chatgpt (76)-- 算法導論7.3 1題

一、如果用go語言&#xff0c;為什么我們分析隨機化算法的期望運行時間&#xff0c;而不是其最壞運行時間呢? 文心一言&#xff1a; 在分析算法的性能時&#xff0c;期望運行時間是一個重要的指標&#xff0c;它描述了算法在平均情況下的表現。期望運行時間考慮了所有可能的…

管理類聯考——邏輯——真題篇——按知識分類——匯總篇——二、論證邏輯——支持加強——第二節——分類2——正面支持

文章目錄 第二節 支持加強-分類2-正面支持題-支持加強-分類2-正面支持-表達“確實如此”題-支持加強-分類2-正面支持-表達“確實如此”-正面支持不直觀:轉為削弱反面更直觀真題(2010-38)-支持加強-分類2-正面支持真題(2018-29)-支持加強-分類2-正面支持-支持關鍵詞真題(…

musl libc ldso 動態加載研究筆記:02

前言 本篇繼續研究 musl libc ldso 的動態加載過程中遇到的關鍵性的概念&#xff1a;到底要加載ELF 文件的哪些內容到 內存 當前如果遇到 ELF 動態加載&#xff0c;當前系統需要有【文件系統】&#xff0c;并且有較大的內存&#xff0c;因為 ELF 文件是無法直接運行的&#xf…

IDEA兩種方法修改生成的jar包名字

方法一&#xff1a; 直接修改pom文件中的如下部分 <artifactId>excelreport</artifactId> <version>0.0.1-SNAPSHOT</version> <name>excelreport</name> <description>excelreport</description> 修改完成后&#xff0c;點…

SpringBoot3集成Kafka

標簽&#xff1a;Kafka3.Kafka-eagle3&#xff1b; 一、簡介 Kafka是一個開源的分布式事件流平臺&#xff0c;常被用于高性能數據管道、流分析、數據集成和關鍵任務應用&#xff0c;基于Zookeeper協調的處理平臺&#xff0c;也是一種消息系統&#xff0c;具有更好的吞吐量、內…

跟著美團學設計模式(感處)

讀了著篇文章之后發現真的是&#xff0c;你的思想&#xff0c;你的思維是真的比比你擁有什么技術要強的。 注 開閉原則 開閉原則&#xff08;Open-Closed Principle&#xff09;是面向對象設計中的基本原則之一&#xff0c;它的定義是&#xff1a;一個軟件實體應該對擴展開放…

python生成旗幟--比如美國國旗生成

目錄 1、解釋說明&#xff1a; 2、使用示例&#xff1a; 3、注意事項&#xff1a; 1、解釋說明&#xff1a; 在Python中&#xff0c;生成國旗可以通過使用第三方庫或者自定義函數來實現。通常&#xff0c;我們可以使用Pillow庫來處理圖像&#xff0c;以及使用matplotlib庫來…

python爬蟲7:實戰1

python爬蟲7&#xff1a;實戰1 前言 ? python實現網絡爬蟲非常簡單&#xff0c;只需要掌握一定的基礎知識和一定的庫使用技巧即可。本系列目標旨在梳理相關知識點&#xff0c;方便以后復習。 申明 ? 本系列所涉及的代碼僅用于個人研究與討論&#xff0c;并不會對網站產生不好…

carla中lka實現(二)

前言&#xff1a; 首先計算之前檢測出來的車道線的中線與輸入圖像的中線進行計算距離&#xff0c;&#xff0c;并設置不同的閾值對于不同的方向進行相關的調整。 一、車輛中心線 一般而言將攝像頭架設在車輛的正中心軸上&#xff0c;所獲得的圖像的中間線極為車輛的中心。 …

QGraphicsView 實例3地圖瀏覽器

主要介紹Graphics View框架&#xff0c;實現地圖的瀏覽、放大、縮小&#xff0c;以及顯示各個位置的視圖、場景和地圖坐標 效果圖: mapwidget.h #ifndef MAPWIDGET_H #define MAPWIDGET_H #include <QLabel> #include <QMouseEvent> #include <QGraphicsView&…

WSL2 ubuntu子系統OpenCV調用本機攝像頭的RTSP視頻流做開發測試

文章目錄 前言一、Ubuntu安裝opencv庫二、啟動 Windows 本機的 RTSP 視頻流下載解壓 EasyDarwin查看本機攝像頭設備開始推流 三、在ubuntu 終端編寫代碼創建目錄及文件創建CMakeLists.txt文件啟動 cmake 配置并構建 四、結果展示啟動圖形界面在圖形界面打開終端找到 rtsp_demo運…

linux系統服務學習(二)linux下yum源配置實戰

文章目錄 Linux下yum源配置實戰一、Linux下軟件包的管理1、軟件安裝方式2、源碼安裝的配置過程3、詳解源碼安裝的配置過程&#xff08;定制&#xff09;4、詳解編譯過程5、安裝過程6、axel多線程下載軟件源碼安裝7、使用軟鏈接解決command not found8、使用環境變量解決command…

軟考A計劃-系統集成項目管理工程師-收尾管理

點擊跳轉專欄>Unity3D特效百例點擊跳轉專欄>案例項目實戰源碼點擊跳轉專欄>游戲腳本-輔助自動化點擊跳轉專欄>Android控件全解手冊點擊跳轉專欄>Scratch編程案例點擊跳轉>軟考全系列點擊跳轉>藍橋系列 &#x1f449;關于作者 專注于Android/Unity和各種游…