企业网站开发视频/网络营销推广

企业网站开发视频,网络营销推广,石家庄造价信息网,wordpress 页头原理 变换的选择是一个关键的考量因素,它决定了数据是如何被压缩的。选择变换时考虑以下几个重要原则: 数据去关联性:变换的目的之一是减少数据中的相关性。例如,在图像压缩中,像素间往往高度相关。通过适当的变换&a…

原理

变换的选择是一个关键的考量因素,它决定了数据是如何被压缩的。选择变换时考虑以下几个重要原则:

数据去关联性:变换的目的之一是减少数据中的相关性。例如,在图像压缩中,像素间往往高度相关。通过适当的变换,如离散余弦变换(DCT),可以将这些相关性转化为更加独立的形式,从而提高压缩效率。

能量集中:理想的变换应该能将数据的能量(或信息)集中到尽可能少的系数中。这样,通过仅编码这些主要系数,就可以在保留大部分信息的同时实现有效的压缩。

可逆性:对于无损压缩,变换必须是可逆的,这意味着从压缩数据中可以完全恢复原始数据。对于有损压缩,这一要求可以放宽,允许在接受某种程度信息损失的前提下获得更高的压缩比。

计算效率:变换过程应该足够高效,以便于在实际应用中快速处理大量数据。这通常意味着变换算法需要能够被有效地实现,且计算复杂度可接受。

适应性:在某些情况下,变换应该具有适应性,能够根据数据的特性进行调整。例如,在音频和视频压缩中,根据内容的不同,可能需要使用不同的变换策略。

编码后的数据特性:变换应该产生便于编码的数据。例如,高效的压缩算法通常会生成具有高峰值和长尾分布的数据,这使得熵编码等技术更加有效。
变换的选择取决于特定应用的需求和特性。

以下是几种常用于数据压缩的变换:

离散余弦变换(DCT):这种变换广泛用于图像和视频压缩,例如在JPEG图像格式中。DCT能有效地将图像数据从空间域转换到频率域,使得图像中的高频信息(通常是细节部分)和低频信息(图像的主要部分)得以分离,从而便于进行更高效的压缩。

小波变换:小波变换在图像和视频压缩中也很流行,特别是在JPEG 2000图像格式中。与DCT相比,小波变换提供了更好的尺度和位置控制,使其在处理具有不同尺度特征的图像时更加有效。

离散傅立叶变换(DFT):虽然DFT在图像压缩中不如DCT常用,但它在音频压缩和通信系统中非常重要。DFT可以将时域信号转换为频域信号,使得频域中的能量分布更加明显,从而便于压缩。

Karhunen-Loève变换(KLT):这种变换在理论上可以提供最佳的数据压缩,但由于其高计算复杂性和数据依赖性,它在实际应用中不太常用。

**奇异值分解(**SVD):虽然SVD的计算成本较高,但它在某些特定应用中,如图像压缩的特定场景中,能提供优秀的压缩效果。

选择哪种变换取决于多种因素,包括压缩的目标(无损或有损)、数据类型(图像、视频、音频等)、处理速度要求、以及最终压缩数据的预期用途。在实际应用中,这些变换通常与其他压缩技术(如量化和熵编码)结合使用,以达到最优的压缩效果。

python实现下图

在这里插入图片描述

提示

结果显示了原图的两种变换后近似。先将原图分割为大小为8×8的子图像,并对每个子图像进行DCT和DFT变换,之后保留幅值最大的32个系数,最后对截尾后的系数阵列进行反变换得到近似图像,并计算原图与近似图之间的误差图像。
注意:dct变换可以通过函数cv2.dct(img)来实现,需要注意img在做dct变换之前需要转换为float类型。此外,为了增加误差图像的对比度,可用如下语句显示误差图像axs[i, j].imshow(img, vmin=img.min()*0.1, vmax=img.max()*0.1, cmap=‘gray’)

python代码

import cv2
import numpy as np
import matplotlib.pyplot as pltimg=cv2.imread("lena_gray_512.tif",0)
img=img.astype(np.float)
rows,cols=img.shape
dct_inv_img = np.zeros(img.shape)
dft_inv_img = np.zeros(img.shape)
dct_dif_img = np.zeros(img.shape)
dft_dif_img = np.zeros(img.shape)
for i in range(0, rows, 8):for j in range(0, cols, 8):dct = cv2.dct(img[i:i+8, j:j+8])dft = np.fft.fft2(img[i:i+8, j:j+8])# idx = np.argpartition(dct.ravel(), 32)[:32]# idx2d = np.unravel_index(idx, dct.shape)# dct[idx2d] = 0med = np.median(np.abs(dct))dct[np.abs(dct) < med] = 0med = np.median(np.abs(dft))dft[np.abs(dft) < med] = 0dct_inv_img[i:i+8, j:j+8] = cv2.idct(dct)dft_inv_img[i:i+8, j:j+8] = np.abs(np.fft.ifft2(dft))
dct_dif_img=img-dct_inv_img
dft_dif_img=img-dft_inv_imgimg_list = [img, dct_inv_img, dct_dif_img, img, dft_inv_img, dft_dif_img]
img_name_list = ['original', 'dct', 'dct_diff', 'original', 'dft', 'dft_diff']
_,axs=plt.subplots(2,3)for i in range(2):for j in range(3):if j==2:axs[i, j].imshow(img_list[i*3+j], vmin=img_list[i*3+j].min()*0.1, vmax=img_list[i*3+j].max()*0.1, cmap='gray')else:axs[i, j].imshow(img_list[i*3+j], cmap='gray')axs[i, j].set_title(img_name_list[i*3+j])axs[i, j].axis('off')plt.show()

结果展示

在这里插入图片描述

总结

在变化编码中,其性能与所选用的正交变换类型,图像类型,变化块的大小,压缩方式和压缩程度等因素有关。在变换方式确定之后,变换块的大小选择就显得尤为重要,因为大多数图像统计结果显示,大多数图像仅在约20个相邻像素间有较大的相关性,而且一般当子图像尺寸n>16(像素)时,其性能已经改善不大。同时,如果子图像块过大,其中所包含的像素就越多,变换时所需要的计算量也就越大,因此一般子图像块的大小选为8像素8像素或16像素16像素。对图像进行字块划分的好处是:小块图像的变换计算容易,它可以将传输误差造成的图像损伤限制在子图像的范围之内,从而避免误码的扩散。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/614395.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

居中面试问题

前端常问居中面试问题 css文本居中 文本水平居中 <div class"father"><div class"child"><div> <div>子类元素为行内元素&#xff0c;则给父类元素定义text-align:center 如果子元素是块元素&#xff0c;则给子元素定义margin&…

嵌入式培训机构四个月实训课程笔记(完整版)-Linux系统编程第十天-Linux下mplayer音乐播放器练习题(物联技术666)

更多配套资料CSDN地址:点赞+关注,功德无量。更多配套资料,欢迎私信。 物联技术666_嵌入式C语言开发,嵌入式硬件,嵌入式培训笔记-CSDN博客物联技术666擅长嵌入式C语言开发,嵌入式硬件,嵌入式培训笔记,等方面的知识,物联技术666关注机器学习,arm开发,物联网,嵌入式硬件,单片机…

钉钉逐浪AI Agent

文&#xff5c;郝 鑫 编&#xff5c;刘雨琦 “大公司代表落后生产力&#xff0c;是慢半拍的”&#xff0c;“小创新靠大厂&#xff0c;大创新仍然要靠小厂”&#xff0c;这是以李彦宏和王小川为代表的创业老炮&#xff0c;在2023年总结出来的创新规律&#xff0c;从移动互…

批量查询顺丰快递信息:固乔快递查询助手的实用指南

随着电商和物流行业的飞速发展&#xff0c;对于物流信息的查询需求也日益增长。固乔快递查询助手是一款高效、便捷的软件&#xff0c;能够帮助用户批量查询顺丰快递信息&#xff0c;大大提高了物流信息的管理和查询效率。 一、下载安装 首先&#xff0c;用户需要从固乔科技网站…

统计学-R语言-2.1

文章目录 前言安装过程总结 前言 上篇文章介绍了统计学-R语言的介绍&#xff0c;本篇文章介绍如何安装R软件。 安装过程 可以登录官网&#xff0c;https://www.r-project.org/&#xff0c;点击此处跳转。 点进去下滑找到China,之后找任意一个链接地址进行下载即可。 我点的是…

【Harmony OS - 消息通知】

应用可以通过接口发送通知消息&#xff0c;提醒用户关注应用中的变化。用户可以在通知栏查看和操作通知内容&#xff0c;通常用于当应用处于后台时&#xff0c;发送&#xff0c;本文主要来介绍在Harmony OS中的三种消息通知。 基础通知 总体流程有三步&#xff1a; 导入noti…

确定了!软考中级「集成」、「监理」新版教程有哪些变化?

新版教程改了哪些内容&#xff1f;2024上半年软考应该如何备考&#xff1f; 准备考24年上集成的朋友们&#xff0c;先不要慌&#xff01;备考脚步不要乱&#xff0c;改版可能还是好事呢&#xff0c;难度可能会降点&#xff1f; 2024年教程改版科目&#xff1a; ✔软考中级-集…

由于找不到msvcp140.dll无法继续执行代码原因及解决教程分享

在计算机打开软件过程&#xff0c;我们经常会遇到一些错误提示&#xff0c;其中之一就是“由于找不到msvcp140.dll无法继续执行代码”。这个错误通常发生在使用Microsoft Visual C 2015或更高版本编译的程序运行时。那么&#xff0c;什么是msvcp140.dll文件&#xff1f;为什么会…

59.螺旋矩阵II

class Solution { public:vector<vector<int>> generateMatrix(int n) {//二维数组初始化 // int dis[4][4]{{-1,0},{1,0},{0,-1},{0,1}};int dis[4][4]{{0,1},{1,0},{0,-1},{-1,0}};//右下左上 0,1,2,3//cout<< dis[0][0]<<" "<<dis…

定制耐酸碱移液吸头PFA移液枪头可重复使用

移液枪是移液器的一种&#xff0c;常用于实验室少量或微量液体的移取&#xff0c;规格不同&#xff0c;不同规格的移液枪配套使用不同大小的枪头&#xff0c;不同生产厂家生产的形状也略有不同&#xff0c;但工作原理及操作方法基本一致。移液枪属精密仪器&#xff0c;使用及存…

电脑可以连接网络但浏览器无法访问部分或全部网页

啾咪&#xff01;离大谱了&#xff0c;电脑一段时间没有用&#xff0c;最近打开却发现可以连接网络但是无法访问部分网页&#xff08;如CSDN&#xff09;&#xff0c;显示如下&#xff1a; 有三种解决方法&#xff1a; &#xff08;1&#xff09;清除DNS缓存 步骤&#xff1a;…

离散数学3

补变元 解释&#xff1a;它是以反^作为一组一组的&#xff0c;因此&#xff0c;对于P反^Q来说&#xff0c;P是一组&#xff0c;Q是一组&#xff0c;又有以下&#xff1a;对缺少变元的项要补齐&#xff0c;P缺少Q&#xff0c;Q缺少P。因此&#xff0c;补齐。 用分配律展开 解释&…

C#,入门教程(15)——类(class)的基础知识

上一篇&#xff1a; C#&#xff0c;入门教程(14)——字符串与其他数据类型的转换https://blog.csdn.net/beijinghorn/article/details/124004562 物以类聚&#xff0c;凡物必类。 类的使用&#xff0c;须遵循几个简单的原则&#xff1a; &#xff08;1&#xff09;能类则类&a…

使用 Ant Design Pro 的图表(展示cpu、内存、硬盘)

文章目录 使用 Ant Design Pro 的图表&#xff08;展示cpu、内存、硬盘&#xff09;一、Ant Design Charts 图表二、快速上手三、ant design chart 图表类型StatisticCard 指标卡结合 Ant Design Charts 图表库丰富数值内容&#xff0c;满足大多数数值展示的场景什么是水波图&a…

鸿蒙原生应用再添新丁!万达 入局鸿蒙

鸿蒙原生应用再添新丁&#xff01;万达 入局鸿蒙 来自 HarmonyOS 微博1月11日消息&#xff0c;#万达酒店及度假村启动鸿蒙原生应用及元服务开发# 作为具有中国特色的国牌服务酒店标杆之一&#xff0c;万达酒店及度假村Wanda 将带来全新的服务和交互方式&#xff0c;一步获取“…

网络之路28:二层链路聚合

正文共&#xff1a;1666 字 14 图&#xff0c;预估阅读时间&#xff1a;2 分钟 目录 网络之路第一章&#xff1a;Windows系统中的网络 0、序言 1、Windows系统中的网络1.1、桌面中的网卡1.2、命令行中的网卡1.3、路由表1.4、家用路由器 网络之路第二章&#xff1a;认识企业设备…

Backtrader 文档学习-Strategy with Signals

Backtrader 文档学习-Strategy with Signals backtrader可以不通过重写策略的方式触发交易&#xff0c;尽管重写策略是首选通用的方式。 下面介绍通过使用信号也是可以实现交易触发的。 1.定义signal import backtrader as btdata bt.feeds.OneOfTheFeeds(datanamemydatana…

14. C++ malloccallocrecalloc

一、malloc函数 谈到malloc函数相信学过c语言的人都很熟悉&#xff0c;但是malloc底层到底做了什么又有多少人知道。 1.1 关于malloc相关的几个函数 可以这样认为&#xff08;window下&#xff09;原型&#xff1a; extern void *malloc(unsigned int num_bytes);如果分配成…

怎么用 Excel 做出专业的 project 甘特图?10个步骤和60个模板

使用Excel来创建Project甘特图的步骤包括&#xff1a;1、基本设置和布局调整、2、数据输入和时间线配置、3、任务依赖性和进度跟踪、4、视觉效果优化、5、数据更新和维护、6、模板保存和共享。尤其突出基本设置和布局调整&#xff0c;它是构建一个清晰、有效的甘特图的基础。 甘…