灰度圖像是對圖像的顏色進行變換,如果要對圖像進行壓縮該怎麼處理呢?
1、矩陣運算中有一個概念叫做奇異值和特征值。
設A為n階矩陣,若存在常數λ及n維非零向量x,使得Ax=λx,則稱λ是矩陣A的特征值,x是A屬於特征值λ的特征向量。
一個矩陣的一組特征向量是一組正交向量。
2、即特征向量被施以線性變換 A 隻會使向量伸長或縮短而其方向不被改變。
特征分解(Eigendecomposition),又稱譜分解(Spectral decomposition)是將矩陣分解為由其特征值和特征向量表示的矩陣之積的方法。
假如A是m * n階矩陣,q=min(m,n),A*A的q個非負特征值的算術平方根叫作A的奇異值。
特征值分解可以方便的提取矩陣的特征,但是前提是這個矩陣是一個方陣。如果是非方陣的情況下,就需要用到奇異值分解瞭。先看下奇異值分解的定義:
A=UΣVT
其中A是目標要分解的m * n的矩陣,U是一個 m * m的方陣,Σ 是一個m * n 的矩陣,其非對角線上的元素都是0。VTV^TVT是V的轉置,也是一個n * n的矩陣。
奇異值跟特征值類似,在矩陣Σ中也是從大到小排列,而且奇異值的減少特別的快,在很多情況下,前10%甚至1%的奇異值的和就占瞭全部的奇異值之和的99%以上瞭。也就是說,我們也可以用前r大的奇異值來近似描述矩陣。r是一個遠小於m、n的數,這樣就可以進行壓縮矩陣。
通過奇異值分解,我們可以通過更加少量的數據來近似替代原矩陣。
要想使用奇異值分解svd可以直接調用linalg.svd 如下所示:
U, s, Vt = linalg.svd(img_gray)
其中U是一個m * m矩陣,Vt是一個n * n矩陣。
在上述的圖像中,U是一個(80, 80)的矩陣,而Vt是一個(170, 170) 的矩陣。而s是一個80的數組,s包含瞭img中的奇異值。
實例程式碼擴展:
import numpy as np import matplotlib.pyplot as plt from PIL import Image from scipy import misc def fix_contrast(image): minimumColor = np.amin(image) maximumColor = np.amax(image) #avg = (minimumColor - maximumColor)/2 first attempt avg = np.mean(image) #second attempt colorDownMatrix = image < avg # also tried colorUpMatrix = image > avg #also tried: colorUpMatrix = image > avg * 1.2 # and : colorDownMatrix = image < avg* 0.3 image = image - minimumColor*colorDownMatrix image = image + maximumColor*colorUpMatrix lessThen0 = image<0 moreThen255 = image>255 image[lessThen0] = 0 image[moreThen255] = 255 return image
到此這篇關於Python NumPy灰度圖像的壓縮原理講解的文章就介紹到這瞭,更多相關Python NumPy灰度圖像的壓縮內容請搜索以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支援!
You may also like
相关贴文:
近期文章
- 使用 PagePilot 作為實現此目的的捷徑! #dropshipping #shopify #ecommerce #ai
- SHOPIFY REBELLON vs BOOM ESPORT [BO2] – TIMADO, YOPAJ 對上 JACKKY, MAC – ESL ONE BANGKOK 2024 DOTA 2
- Dota2 – Team Spirit VS Shopify Rebellion – ESL One 曼谷
- 德國滑雪選手如何打造 Shopify?
- 2024 年 12 月 2 款必銷產品🚀(Shopify 得獎者)
- Shopify Rebellon vs 獵鷹隊 [BO2] – TIMADO, YOPAJ 對 SKITER, AMMAR – ESL ONE BANGKOK 2024 DOTA 2
- 添加這些直銷產品並觀察您的銷售爆炸式增長#dropshipping #shopify
- 我如何在 19 歲時開始在 30 天內從巴基斯坦開始 Shopify Dropshipping 從 0 美元到 1000 美元
- 我打破了 Shopify 應用程式商店世界紀錄!
發佈留言