<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          圖像特征提取學(xué)習(xí)筆記 | 使用低秩 SVD 的圖像壓縮實例!

          共 4058字,需瀏覽 9分鐘

           ·

          2021-07-26 18:33

          點擊下方卡片,關(guān)注“新機(jī)器視覺”公眾號

          視覺/圖像重磅干貨,第一時間送達(dá)

          來源:愛MATLAB

          最近關(guān)注尋找一些非典型算法嘗試從一幅圖像中提取一些特征用于機(jī)器學(xué)習(xí)分類,看到Mathworks公司主頁上的這個實例,深受啟發(fā),也許從圖像對應(yīng)的矩陣分解理論能適當(dāng)?shù)亟稻S待處理的圖像數(shù)據(jù)并抽取有意義的特征用于基于圖神經(jīng)網(wǎng)絡(luò)的分類研究。


          轉(zhuǎn)發(fā)于此,備忘!


          文章來源:

          https://ww2.mathworks.cn/help/matlab/math/image-compression-with-low-rank-svd.html


          使用低秩 SVD 的圖像壓縮

          此示例說明如何使用 svdsketch 壓縮圖像。

          svdsketch 使用低秩矩陣逼近來保留圖像的重要特征,同時濾除不太重要的特征。

          隨著 svdsketch 使用的容差量級的增大,更多特征將被濾除,從而改變圖像中的詳細(xì)程度。

          加載圖像

          加載圖像 street1.jpg,這是一幅城市街道圖。

          形成此圖像的三維矩陣是 uint8,因此將圖像轉(zhuǎn)換為灰度矩陣。

          查看具有原始矩陣秩注釋的圖像。

          A = imread('street1.jpg');A = rgb2gray(A);imshow(A)title(['Original (',sprintf('Rank %d)',rank(double(A)))])

          壓縮圖像

          使用 svdsketch 計算低秩矩陣,該矩陣在 1e-2 的容差范圍內(nèi)逼近 A。

          通過將返回的 SVD 因子乘以 svdsketch 形成低秩矩陣,將結(jié)果轉(zhuǎn)換為 uint8,并查看生成的圖像。

          [U1,S1,V1] = svdsketch(double(A),1e-2);Anew1 = uint8(U1*S1*V1');imshow(uint8(Anew1))title(sprintf('Rank %d approximation',size(S1,1)))

          svdsketch 產(chǎn)生秩為 288 的逼近,這導(dǎo)致圖像的部分邊界線中出現(xiàn)一些微小顆粒。

          現(xiàn)在,使用容差 1e-1 再次壓縮圖像。

          隨著容差量級的增大,由 svdsketch 產(chǎn)生的逼近的秩通常會減小。

          [U2,S2,V2] = svdsketch(double(A),1e-1);Anew2 = uint8(U2*S2*V2');imshow(Anew2)title(sprintf('Rank %d approximation',size(S2,1)))

          這一次,svdsketch 產(chǎn)生了秩為 48 的逼近。

          圖像大體上仍算清晰可見,但額外的壓縮增加了模糊性。

          限制子空間大小

          svdsketch 根據(jù)指定的容差,以自適應(yīng)方式確定矩陣草圖的秩。

          但是,您可以使用 MaxSubspaceDimension 名稱-值對組來指定應(yīng)該用于形成矩陣草圖的最大子空間大小。此選項會產(chǎn)生不滿足容差的矩陣,因為您指定的子空間可能太小。

          在這些情況下,svdsketch 返回具有最大允許子空間大小的矩陣草圖。

          使用容差為 1e-1、最大子空間大小為 15 的 svdsketch。

          指定第四個輸出以返回相對逼近誤差。

          [U3,S3,V3,apxErr] = svdsketch(double(A),1e-1,'MaxSubspaceDimension',15);

          將結(jié)果的相對逼近誤差與指定的容差進(jìn)行比較。

          apxErr 包含一個元素,因為 svdsketch 只需一次迭代來計算解。

          apxErr <= 1e-1
          ans = logical
          0

          結(jié)果表明,矩陣草圖不滿足指定的容差。

          查看高度壓縮的秩為 15 的圖像。

          Anew3 = uint8(U3*S3*V3');imshow(Anew3)title(sprintf('Rank %d approximation',size(S3,1)))

          比較結(jié)果

          最后,并排查看所有圖像進(jìn)行比較。

          tiledlayout(2,2,'TileSpacing','Compact')nexttileimshow(A)title('Original')nexttileimshow(Anew1)title(sprintf('Rank %d approximation',size(S1,1)))nexttileimshow(Anew2)title(sprintf('Rank %d approximation',size(S2,1)))nexttileimshow(Anew3)title(sprintf('Rank %d approximation',size(S3,1)))

          思考:

          如果對于生物醫(yī)學(xué)圖像,織物圖像等,能否找到一個適當(dāng)?shù)闹付ㄈ莶?,得到壓縮的圖片,降低新設(shè)計算法的計算復(fù)雜度?這個值得做數(shù)值實驗研究一下。

          —版權(quán)聲明—

          僅用于學(xué)術(shù)分享,版權(quán)屬于原作者。

          若有侵權(quán),請聯(lián)系微信號:yiyang-sy 刪除或修改!


          —THE END—
          瀏覽 175
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  97人人爽人人爽人人爽人人爽 | 91色屁屁TS人妖系列二区 | 黄色无码网站 | 在线一视频 | 大香蕉啪啪啪啪啪 |