从品牌网站建设到网络营销策划,从策略到执行的一站式服务
这期内容当中小编将会给大家带来有关怎么在python中利用SVD对图像进行压缩,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
创新互联建站科技有限公司专业互联网基础服务商,为您提供成都二枢服务器租用托管,高防主机,成都IDC机房托管,成都主机托管等互联网服务。# -*- coding: utf-8 -*- import cv2 import matplotlib as mpl import numpy as np import matplotlib.pyplot as plt #转为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的最内层数组为三个数,分别表示RGB,用来表示一个像素 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)
上述就是小编为大家分享的怎么在python中利用SVD对图像进行压缩了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注创新互联行业资讯频道。
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图