python SVD壓縮圖像的實(shí)現(xiàn)代碼
更新時(shí)間:2019年11月05日 16:16:46 作者:cclplus
這篇文章主要介紹了python SVD壓縮圖像的實(shí)現(xiàn)代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
前言
利用SVD是可以對(duì)圖像進(jìn)行壓縮的,其核心原因在于,圖像的像素之間具有高度的相關(guān)性。
代碼
# -*- coding: utf-8 -*-
'''
author@cclplus
date:2019/11/3
'''
import cv2
import matplotlib as mpl
import numpy as np
import matplotlib.pyplot as plt
#轉(zhuǎn)為u8類型
def restore1(u, sigma, v, k):
m = len(u)
n = len(v)
a = np.zeros((m, n))
a = np.dot(u[:, :k], np.diag(sigma[:k])).dot(v[:k, :])
a[a < 0] = 0
a[a > 255] = 255
return np.rint(a).astype('uint8')
def SVD(frame,K=10):
a = np.array(frame)
#由于是彩色圖像,所以3通道。a的最內(nèi)層數(shù)組為三個(gè)數(shù),分別表示RGB,用來表示一個(gè)像素
u_r, sigma_r, v_r = np.linalg.svd(a[:, :, 0])
u_g, sigma_g, v_g = np.linalg.svd(a[:, :, 1])
u_b, sigma_b, v_b = np.linalg.svd(a[:, :, 2])
R = restore1(u_r, sigma_r, v_r, K)
G = restore1(u_g, sigma_g, v_g, K)
B = restore1(u_b, sigma_b, v_b, K)
I = np.stack((R, G, B), axis = 2)
return I
if __name__ == "__main__":
mpl.rcParams['font.sans-serif'] = [u'simHei']
mpl.rcParams['axes.unicode_minus'] = False
frame = cv2.imread("./liuyifei.bmp")
I = SVD(frame,40)
plt.imshow(I)
cv2.imwrite("out.bmp",I)
原圖

取二十個(gè)特征值

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
基于Python編寫一個(gè)簡(jiǎn)單的端口掃描器
端口掃描是非常實(shí)用的,不止用在信息安全方面,日常的運(yùn)維也用得到。本文將利用Python編寫一個(gè)簡(jiǎn)單的端口掃描器,需要的可以參考一下2022-04-04
python中sys.argv函數(shù)精簡(jiǎn)概括
本篇文章給大家分享了關(guān)于python中sys.argv函數(shù)的相關(guān)知識(shí)點(diǎn),有興趣的朋友可以參考學(xué)習(xí)下。2018-07-07
DataFrame:通過SparkSql將scala類轉(zhuǎn)為DataFrame的方法
今天小編就為大家分享一篇DataFrame:通過SparkSql將scala類轉(zhuǎn)為DataFrame的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-01-01
詳解python數(shù)據(jù)結(jié)構(gòu)之隊(duì)列Queue
這篇文章主要介紹了python數(shù)據(jù)結(jié)構(gòu)之隊(duì)列Queue,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python的小伙伴們有很好的幫助,需要的朋友可以參考下2021-05-05
使用Django搭建網(wǎng)站實(shí)現(xiàn)商品分頁(yè)功能
這篇文章主要介紹了使用Django搭建網(wǎng)站實(shí)現(xiàn)商品分頁(yè)功能,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05

