最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2021年08月03日 08:19:14   作者:小妮淺淺  
在本篇文章里小編給大家整理的是一篇關于Python NumPy灰度圖像的壓縮原理講解內(nèi)容,有興趣的朋友們可以學習參考下。

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

1、矩陣運算中有一個概念叫做奇異值和特征值。

設A為n階矩陣,若存在常數(shù)λ及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的轉(zhuǎn)置,也是一個n * n的矩陣。

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

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

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

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

其中U是一個m * m矩陣,Vt是一個n * n矩陣。

在上述的圖像中,U是一個(80, 80)的矩陣,而Vt是一個(170, 170) 的矩陣。而s是一個80的數(shù)組,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灰度圖像的壓縮內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Python數(shù)據(jù)結構集合的相關詳解

    Python數(shù)據(jù)結構集合的相關詳解

    集合是Python中一種無序且元素唯一的數(shù)據(jù)結構,主要用于存儲不重復的元素,Python提供set類型表示集合,可通過{}或set()創(chuàng)建,集合元素不可重復且無序,不支持索引訪問,但可迭代,集合可變,支持添加、刪除元素,集合操作包括并集、交集、差集等,可通過運算符或方法執(zhí)行
    2024-09-09
  • python文件讀取時順序錯誤的問題及解決

    python文件讀取時順序錯誤的問題及解決

    這篇文章主要介紹了python文件讀取時順序錯誤的問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • Python中的字符串相似度

    Python中的字符串相似度

    這篇文章主要介紹了Python中的字符串相似度,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • 使用Python實現(xiàn)火車票查詢系統(tǒng)(帶界面)

    使用Python實現(xiàn)火車票查詢系統(tǒng)(帶界面)

    周末、假期來了,七夕也快到了,又到一年中最一票難求的時候了!本文將用Python制作一個簡單的火車票查詢系統(tǒng),感興趣的可以了解一下
    2022-07-07
  • Python實現(xiàn)手勢識別

    Python實現(xiàn)手勢識別

    這篇文章主要介紹了Python如何實現(xiàn)手指指尖的檢測,并且可以在windows系統(tǒng)下通過判斷手指數(shù)目,來模擬鍵盤操作,感興趣的朋友可以了解下
    2020-10-10
  • django數(shù)據(jù)庫自動重連的方法實例

    django數(shù)據(jù)庫自動重連的方法實例

    這篇文章主要給大家介紹了關于django數(shù)據(jù)庫自動重連的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用django具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-07-07
  • keras自定義損失函數(shù)并且模型加載的寫法介紹

    keras自定義損失函數(shù)并且模型加載的寫法介紹

    這篇文章主要介紹了keras自定義損失函數(shù)并且模型加載的寫法介紹,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • Python保存MongoDB上的文件到本地的方法

    Python保存MongoDB上的文件到本地的方法

    這篇文章主要介紹了Python保存MongoDB上的文件到本地的方法,涉及Python調(diào)用pymongo模塊的gridfs方法來操作MongoDB文件的相關技巧,需要的朋友可以參考下
    2016-03-03
  • python使用HTMLTestRunner導出餅圖分析報告的方法

    python使用HTMLTestRunner導出餅圖分析報告的方法

    這篇文章主要介紹了python使用HTMLTestRunner導出餅圖分析報告的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-12-12
  • 詳解如何在Python中使用Jinja2進行模板渲染

    詳解如何在Python中使用Jinja2進行模板渲染

    Jinja2 是一個現(xiàn)代的、設計精美的 Python 模板引擎,它使用類似于 Django 的模板語言來渲染文本文件,下面我將通過幾個例子展示如何在 Python 中使用 Jinja2 進行模板渲染,文中有詳細的代碼供大家參考,需要的朋友可以參考下
    2024-08-08

最新評論

二连浩特市| 岢岚县| 漠河县| 攀枝花市| 洞口县| 田林县| 三原县| 囊谦县| 肃南| 天祝| 阿勒泰市| 喀喇| 香河县| 永济市| 河津市| 民丰县| 普兰县| 安化县| 黎川县| 克东县| 新晃| 西华县| 克拉玛依市| 全椒县| 营山县| 永泰县| 房山区| 扶绥县| 新建县| 麻栗坡县| 上栗县| 遵义县| 林甸县| 京山县| 旬邑县| 曲阳县| 东安县| 左贡县| 太仓市| 营山县| 盈江县|