主頁 > 知識(shí)庫 > Python NumPy灰度圖像的壓縮原理講解

Python NumPy灰度圖像的壓縮原理講解

熱門標(biāo)簽:旅游廁所地圖標(biāo)注怎么弄 成都呼叫中心外呼系統(tǒng)哪家強(qiáng) 南昌地圖標(biāo)注 西青語音電銷機(jī)器人哪家好 電梯新時(shí)達(dá)系統(tǒng)外呼顯示e 百應(yīng)電話機(jī)器人總部 無錫智能外呼系統(tǒng)好用嗎 宿州電話機(jī)器人哪家好 地圖標(biāo)注與注銷

灰度圖像是對(duì)圖像的顏色進(jìn)行變換,如果要對(duì)圖像進(jìn)行壓縮該怎么處理呢?

1、矩陣運(yùn)算中有一個(gè)概念叫做奇異值和特征值。

設(shè)A為n階矩陣,若存在常數(shù)λ及n維非零向量x,使得Ax=λx,則稱λ是矩陣A的特征值,x是A屬于特征值λ的特征向量。

一個(gè)矩陣的一組特征向量是一組正交向量。

2、即特征向量被施以線性變換 A 只會(huì)使向量伸長或縮短而其方向不被改變。

特征分解(Eigendecomposition),又稱譜分解(Spectral decomposition)是將矩陣分解為由其特征值和特征向量表示的矩陣之積的方法。

假如A是m * n階矩陣,q=min(m,n),A*A的q個(gè)非負(fù)特征值的算術(shù)平方根叫作A的奇異值。

特征值分解可以方便的提取矩陣的特征,但是前提是這個(gè)矩陣是一個(gè)方陣。如果是非方陣的情況下,就需要用到奇異值分解了。先看下奇異值分解的定義:

A=UΣVT

其中A是目標(biāo)要分解的m * n的矩陣,U是一個(gè) m * m的方陣,Σ 是一個(gè)m * n 的矩陣,其非對(duì)角線上的元素都是0。VTV^TVT是V的轉(zhuǎn)置,也是一個(gè)n * n的矩陣。

奇異值跟特征值類似,在矩陣Σ中也是從大到小排列,而且奇異值的減少特別的快,在很多情況下,前10%甚至1%的奇異值的和就占了全部的奇異值之和的99%以上了。也就是說,我們也可以用前r大的奇異值來近似描述矩陣。r是一個(gè)遠(yuǎn)小于m、n的數(shù),這樣就可以進(jìn)行壓縮矩陣。

通過奇異值分解,我們可以通過更加少量的數(shù)據(jù)來近似替代原矩陣。

要想使用奇異值分解svd可以直接調(diào)用linalg.svd 如下所示:

U, s, Vt = linalg.svd(img_gray)

其中U是一個(gè)m * m矩陣,Vt是一個(gè)n * n矩陣。

在上述的圖像中,U是一個(gè)(80, 80)的矩陣,而Vt是一個(gè)(170, 170) 的矩陣。而s是一個(gè)80的數(shù)組,s包含了img中的奇異值。

實(shí)例代碼擴(kuò)展:

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 = image0
moreThen255 = image>255
image[lessThen0] = 0
image[moreThen255] = 255
return image

到此這篇關(guān)于Python NumPy灰度圖像的壓縮原理講解的文章就介紹到這了,更多相關(guān)Python NumPy灰度圖像的壓縮內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Python多進(jìn)程共享numpy 數(shù)組的方法
  • python中sqllite插入numpy數(shù)組到數(shù)據(jù)庫的實(shí)現(xiàn)方法
  • python圖像處理基本操作總結(jié)(PIL庫、Matplotlib及Numpy)
  • python numpy中multiply與*及matul 的區(qū)別說明
  • 淺談Python numpy創(chuàng)建空數(shù)組的問題
  • Python NumPy中diag函數(shù)的使用說明
  • Python機(jī)器學(xué)習(xí)三大件之一numpy
  • python利用numpy存取文件案例教程

標(biāo)簽:西安 七臺(tái)河 許昌 濰坊 雅安 渭南 贛州 辛集

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Python NumPy灰度圖像的壓縮原理講解》,本文關(guān)鍵詞  Python,NumPy,灰度,圖像,的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Python NumPy灰度圖像的壓縮原理講解》相關(guān)的同類信息!
  • 本頁收集關(guān)于Python NumPy灰度圖像的壓縮原理講解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章