欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

設(shè)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個非負特征值的算術(shù)平方根叫作A的奇異值。

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

A=UΣVT

其中A是目標(biāo)要分解的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

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

相關(guān)文章

  • Python中?whl包、tar.gz包的區(qū)別詳解

    Python中?whl包、tar.gz包的區(qū)別詳解

    whl格式本質(zhì)上是一個壓縮包,里面包含了py文件,以及經(jīng)過編譯的pyd文件,這篇文章主要介紹了Python中?whl包、tar.gz包的區(qū)別,需要的朋友可以參考下
    2022-08-08
  • Python返回數(shù)組/List長度的實例

    Python返回數(shù)組/List長度的實例

    今天小編就為大家分享一篇Python返回數(shù)組/List長度的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • Python接口自動化淺析pymysql數(shù)據(jù)庫操作流程

    Python接口自動化淺析pymysql數(shù)據(jù)庫操作流程

    本文主要介紹pymysql安裝、操作流程、語法基礎(chǔ)及封裝操作數(shù)據(jù)庫類,需要的朋友可以參考下,希望能對大家有所幫助,每日提升一點點,歡迎大家多多交流討論
    2021-08-08
  • python灰色預(yù)測法的具體使用

    python灰色預(yù)測法的具體使用

    灰色系統(tǒng)理論認(rèn)為對既含有已知信息又含有未知或非確定信息的系統(tǒng)進行預(yù)測,本文就介紹了python灰色預(yù)測法的具體使用,具有一定的參考價值,感興趣的可以了解一下
    2022-03-03
  • python實現(xiàn)txt文件格式轉(zhuǎn)換為arff格式

    python實現(xiàn)txt文件格式轉(zhuǎn)換為arff格式

    這篇文章主要為大家詳細介紹了python實現(xiàn)txt文件格式轉(zhuǎn)換為arff格式的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • 在Python中Dataframe通過print輸出多行時顯示省略號的實例

    在Python中Dataframe通過print輸出多行時顯示省略號的實例

    今天小編就為大家分享一篇在Python中Dataframe通過print輸出多行時顯示省略號的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • Python+PyQt5實現(xiàn)自制pdf工具箱

    Python+PyQt5實現(xiàn)自制pdf工具箱

    這篇文章主要為大家詳細介紹了Python如何利用PyQt5自制pdf工具箱,可以實現(xiàn)合并拆分和刪除指定pdf頁面,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-12-12
  • Selenium元素的常用操作方法分析

    Selenium元素的常用操作方法分析

    這篇文章主要介紹了Selenium元素的常用操作方法,結(jié)合實例形式分析Selenium在獲取元素之后針對點擊、輸入、提交、屬性獲取等常見操作相關(guān)實現(xiàn)技巧,需要的朋友可以參考下
    2018-08-08
  • Python編程OpenCV和Numpy圖像處理庫實現(xiàn)圖片去水印

    Python編程OpenCV和Numpy圖像處理庫實現(xiàn)圖片去水印

    這篇文章主要介紹了Python編程中如何實現(xiàn)圖片去水印本文采用了OpenCV和Numpy的圖像處理的方法來實現(xiàn),文中附含詳細示例代碼,有需要的朋友可以借鑒參考下
    2021-09-09
  • 高效使用Python字典的清單

    高效使用Python字典的清單

    字典(dict)對象是 Python 最常用的數(shù)據(jù)結(jié)構(gòu),本文給大家介紹使用Python字典的清單,感興趣的朋友一起看看吧
    2018-04-04

最新評論