编写一个Matlab程序,实现基于DCT的图像变换编码。
编码过程:将原始图像划分成8×8的图像块,采用离散余弦变换(DCT)对图像块进行变换。
解码过程:对于每个图像块,使用一定比例的最低频DCT系数(被舍弃的高频DCT系数设为0)做逆离散余弦变换(IDCT),得到重构的图像块。
最后,将所有重构的图像块按顺序拼接成完整的解码图像。
分别取32、16、8个最低频DCT系数(如图1所示)进行反变换得到重构的图像,比较图像的质量,计算这三种情况下的峰值信噪比。
峰值信噪比的计算公式:PSNR=10log10(2552/MSE)其中,MSE(MeanSquaredError)指原始图像和重构图像之间的均方误差。
2024/9/16 0:17:38 2KB matlab DCT
1
第二题[提示](1) 假定系统有五个进程,每一个进程用一个进程控制块PCB来代表。
进程控制块的格式为:进程名指针要求运行时间已运行时间状态其中,进程名----作为进程的标识,假设五个进程的进程名分别是Q1,Q2,Q3,Q4,Q5。
指针----进程按顺序排成循环队列,用指针指出下一个进程的进程控制块首地址,最后一个进程中的指针指出第一个进程的进程控制块首地址。
要求运行时间----假设进程需要运行的单位时间数。
已运行时间----假设进程已经运行的单位时间数,初始值为“0”。
状态----有两种状态,“就绪”状态和“结束”状态,初始状态都为“就绪”,用“R”表示,当一个进程运行结束后,它的状态变为“结束”,用“E”表示。
(2) 每次运行你所设计的处理器调度程序之前,为每个进程任意确定它的“要求运行时间”。
把五个进程按顺序排成循环队列,用指针指出队列连接情况。
另用一标志单元记录轮到运行的进程。
(3) 处理器调度总是选择标志单元指示的进程运行。
由于本实验是模拟处理器调度的功能,所以,对被选中的进程并不实际启动运行,而是执行:已运行时间+1来模拟进程的一次运行,表示进程已经运行过一个单位的时间。
请注意:在实际的系统中,当一个进程被选中运行时,必须置上该进程可以运行的时间片值,以及恢复进程的现场,让它占有处理器运行,直到出现等待事件或运行满一个时间片。
在这里省去了这些工作,仅用“已运行时间+1”来表示进程已经运行满一个时间片。
(4) 进程运行一次后,应把该进程的进程控制块中的指针值送到标志单元,以指示下一个轮到运行的进程。
同时,应判断该进程的要求运行时间与已运行时间,若该进程要求运行时间≠已运行时间,则表示它尚未执行结束,应待到下一轮时再运行。
若该进程的要求运行时间=已运行时间,则表示它已经执行结束,应把它的状态修改为“结束”(E)且退出队列。
此时,应把该进程的进程控制块中的指针值送到前面一个进程的指针位置。
(5) 若“就绪”状态的进程队列不为空,则重复上面(4)和(5)的步骤,直到所有进程都成为“结束”状态。
(6) 在所设计的称序中应有显示或打印语句,能显示或打印每次被选中进程的进程名以及运行一次后进称对列的变化。
(7) 为五个进程任意确定一组“要求运行时间”,启动所设计的处理器调度程序,显示或打印逐次被选中进程的进程名以及进程控制块的动态变化过程。
1
(1)创建生产者和消费者线程在Windows2000环境下,创建一个控制台进程,在此进程中创建n个线程来模拟生产者或者消费者。
这些线程的信息由本程序定义的“测试用例文件”中予以指定。
该文件的格式和含义如下:31P32P43C414P25C3124第一行说明程序中设置几个临界区,其余每行分别描述了一个生产者或者消费者线程的信息。
每一行的各字段间用Tab键隔开。
不管是消费者还是生产者,都有一个对应的线程号,即每一行开始字段那个整数。
第二个字段用字母P或者C区分是生产者还是消费者。
第三个字段表示在进入相应线程后,在进行生产和消费动作前的休眠时间,以秒计时;
这样做的目的是可以通过调整这一列参数,控制开始进行生产和消费动作的时间。
如果是代表生产者,则该行只有三个字段。
如果代表消费者,则该行后边还有若干字段,代表要求消费的产品所对应的生产者的线程号。
所以务必确认这些对应的线程号存在并且该线程代表一个生产者。
(2)生产和消费的规则在按照上述要求创建线程进行相应的读写操作时,还需要符合以下要求:①共享缓冲区存在空闲空间时,生产者即可使用共享缓冲区。
②从上边的测试数据文件例子可以看出,某一生产者生产一个产品后,可能不止一个消费者,或者一个消费者多次地请求消费该产品。
此时,只有当所有的消费需求都被满足以后,该产品所在的共享缓冲区才可以被释放,并作为空闲空间允许新的生产者使用。
③每个消费者线程的各个消费需求之间存在先后顺序。
例如上述测试用例文件包含一行信息“5C3l24”,可知这代表一个消费者线程,该线程请求消费1,2,4号生产者线程生产的产品。
而这种消费是有严格顺序的,消费1号线程产品的请求得到满足后才能继续往下请求2号生产者线程的产品。
④要求在每个线程发出读写操作申请、开始读写操作和结束读写操作时分别显示提示信息。
(3)相关基础知识本实验所使用的生产者和消费者模型具有如下特点:本实验的多个缓冲区不是环形循环的,也不要求按顺序访问。
生产者可以把产品放到目前某一个空缓冲区中。
消费者只消费指定生产者的产品。
在测试用例文件中指定了所有的生产和消费的需求,只有当共享缓冲区的数据满足了所有关于它的消费需求后,此共享缓冲区才可以作为空闲空间允许新的生产者使用。
本实验在为生产者分配缓冲区时各生产者间必须互斥,此后各个生产者的具体生产活动可以并发。
而消费者之间只有在对同一产品进行消费时才需要互斥,同时它们在消费过程结束时需要判断该消费对象是否已经消费完毕并清除该产品。
Windows用来实现同步和互斥的实体。
在Windows中,常见的同步对象有:信号量(Semaphore)、互斥量(Mutex)、临界段(CriticalSection)等。
使用这些对象都分为三个步骤,一是创建或者初始化:接着请求该同步对象,随即进入临界区,这一步对应于互斥量的上锁;
最后释放该同步对象,这对应于互斥量的解锁。
这些同步对象在一个线程中创建,在其他线程中都可以使用,从而实现同步互斥。
2024/7/25 19:35:19 1.63MB 多线程同步生产者和消费者问题
1
linux中文支持包,包含文件:fonts-chinese-3.02-12.el5.noarch.rpmm17n-db-chinese-1.3.3-48.el5.noarch.rpmm17n-db-common-cjk-1.3.3-48.el5.noarch.rpm拷贝到linux系统中,按顺序双击运行或在命令窗口中输入Rpm-v+Rpm软件包,按照以下顺序安装fonts-chinese-3.02-12.el5.noarch.rpmm17n-db-common-cjk-1.3.3-46.el5.noarch.rpmm17n-db-chinese-1.3.3-46.el5.noarch.rpm这几种包,一般装fonts-chinese-3.02-9.6.el5.noarch.rpmfonts-ISO8859-2-75dpi-1.0-17.1.noarch.rpm这两个包足矣。
安装完成后点击“系统-管理-语言”选择“简体中文”,转换语言环境。
2024/7/7 8:32:40 24.46MB linux redHat 中文 乱码
1
1、服务器(推荐配置2核2G+50G硬盘+5M+Windowsserver2008R264位)2、域名3、个人支付方式安装步骤:环境:宝塔+Nginx+php5.5+mysql5.51)把压缩包上传到服务器空间,并解压2)配置虚拟主机,进入宝塔Web面板-网站-设置-网站目录,目录指向/服务器目录/public,在网站目录那里,选择public目录3)新建数据库,将数据库文件weikerenwu.sql导入进数据库4)修改/服务器目录/app/database.php和public/codepay/codepay_config.php中的数据库名、用户名、密码5)保证/服务器目录/public/uploads目录可写温馨提示:如果后台登录不进去,请设置伪静态规则为:tkinkphp后台登录:域名/admin/auth/login.html后台默认账号:admin密码:www.riyao.net个人支付码支付申请地址:https://codepay.fateqq.com/home.htm回调地址:你的域名/codepay/notify.php码支付配置路径public/codepay/codepay_config.php和public/codepay/pay.php软件使用教程:https://codepay.fateqq.com/details/SJl0QUWEM.html还需要下载软件:https://codepay.fateqq.com/help.html说明文档1.手机任务面,一个手机版的任务需要,支持雇主入住发布任务,用户是雇主也是做任务可以自己发任务,做任务。
2.雇主发布任务需要付保证金,用户完成任务后就会付佣金,从保证金里面扣,雇主每发任务平台都会扣一定数额的费用。
3.提交页面,简介,有要求跳转链接,提交,任务要求图,提交审核图,可以,完成4.支付方式,用支付宝提现,人工审核有提现记录。
5.雇主发布任务会有时间限制,超时不审核就会自动审核通过,佣金进入用户帐号中,6.任务可置顶,可以付费置顶,按天算,7.雇主可以自己审核任务,可以留言用户是否完成,8.用户提现后会扣除一定数额的费用,给平台使用。
9.用户可以对任务进行隐藏处理,在个人中心可以查看解除隐藏。
10.后台说明:1.用户管理:可以对用户进行人工充值,扣除金额,可以对违规的用户封禁,2.提现管理:有详细用户提现记录,提现完会给提示扣除。
可以人工审核付款。
用户提现时会显示扣除一定数量的手续费给平台使用。
3.任务管理:可以对用户进行任务编辑审核,放弃审核任务,管理员可以后台审核任务通过,才能显示出来4.会员管理:每天可以签到有积分,5.后台管理:拥有手机端管理和电脑端管理,可以自适应各个平台,给你创业的梦想。
6.充值管理:可以根据你的需要更改,需要定制接口另算费用!任务平台新版的开发前台页面:1.任务平台任务发布功能,发布功能:①.发布功能要有任务标题,开始时间和截止时间,总的任务要求介绍审核图样,金额,数量,单价,跳转链接,自定义文字验证提交,比如填写手机号,底下是表单提交。
发布人,项目分类,可以上传多个审核图②.操作说明步骤流程:能够自定义编辑文字任务流程,和上传流程图,跳转链接可以点击添加下一个步骤,无限制。
任务发布时,能按顺序填写发布任务流程,并上传任务流程图,自定义文字步骤,上传截图,流程步骤完成后自定义上传表单,需要雇主审核文字验证或者审核截图,可以上传多个审核例图。
要求跳转链接③.平台扣除平台费用比例数量x(单价x百分之几),比如单价1元一个,百分之10,0.1x10个数量等于1块.2.用户提现时按百分之几扣除提现费用,后台可以自定义提现费用。
3.增加邀请下线功能,邀请返利功能,邀请好友记录。
后台可以设置好友返利多少!按照下线做任务每份百分之几扣除,给邀请上线。
提示:邀请好友功能用链接注册就能成为徒弟5.完成剩下前台页面任务展示,个人中心的任务展示问题前台页面首页展示有任务标题,任务单价,任务编号,剩余数量,置顶到期时间已做任务数量,所属的分类任务项目图标。
6.用户做任务页面要求:1.任务标题2.发布方,任务编号,任务单价,任务要求文字,验证审核例图,操作流程步骤和流程图片,文字验证说明和上传审核所需要的信息,可以上传多个审核图,当雇主提供要求任务链
1
看大小就知道很全啦查看地址https://blog.csdn.net/qq_43333395/article/details/98508424目录:数据结构:1.RMQ(区间最值,区间出现最大次数,求区间gcd)2.二维RMQ求区间最大值(二维区间极值)3.线段树模板(模板为区间加法)(线段树染色)(区间最小值)4.线性基(求异或第k大)5.主席树(静态求区间第k小)(区间中小于k的数量和小于k的总和)(区间中第一个大于或等于k的值)6.权值线段树(求逆序对)7.动态主席树(主席树+树状数组)(区间第k大带修改)8.树上启发式合并(查询子树的优化)9,树状数组模板(求区间异或和,求逆序对)扩展10.区间不重复数字的和(树状数组)11.求k维空间中离所给点最近的m个点,并按顺序输出(KD树)12.LCA(两个节点的公共父节点)动态规划:1.LIS(最长上升子序列)2.有依赖的背包(附属关系)3.最长公共子序列(LCS)4.树形DP5.状压DP-斯坦纳树6.背包7.dp[i]=min(dp[i+1]…dp[i+k]),multset博弈:1.NIM博弈(n堆每次最少取一个)2.威佐夫博弈(两堆每次取至少一个或一起取一样的)3.约瑟夫环4.斐波那契博弈(取的数依赖于对手刚才取的数)5.sg函数数论:1.数论素数检验:普通素数判别线性筛二次筛法求素数米勒拉宾素数检验2.拉格朗日乘子法(求有等式约束条件的极值)3.裂项(多项式分子分母拆分)4.扩展欧几里得(ax+by=c)5.勾股数(直角三角形三边长)6.斯特林公式(n越大越准确,求n!)7.牛顿迭代法(求一元多次方程一个解)8.同余定理(a≡b(modm))9.线性求所有逆元的方法求(1~pmodp的逆元)10.中国剩余定理(n个同余方程x≡a1(modp1))11.二次剩余((ax+k)2≡n(modp)(ax+k)^2≡n(modp)(ax+k)2≡n(modp))12.十进制矩阵快速幂(n很大很大的时候)13.欧拉函数14.费马小定理15.二阶常系数递推关系求解方法(a_n=p*a_{n-1}+q*a_{n-2})16.高斯消元17.矩阵快速幂18.分解质因数19.线性递推式BM(杜教)20.线性一次方程组解的情况21.求解行列式的逆矩阵,伴随矩阵,矩阵不全随机数不全组合数学:1.循环排列(与环有关的排列组合)计算几何:1.三角形(求面积))2.多边形3.三点求圆心和半径4.扫描线(矩形覆盖求面积)(矩形覆盖求周长)5.凸包(平面上最远点对)6.求凸多边形的直径7.求凸多边形的宽度8.求凸多边形的最小面积外接矩形9.半平面交图论:基础:前向星1.最短路(优先队列dijkstra)2.判断环(tarjan算法)3.最小生成树(Kruskal模板)4.最小生成树(Prim)5.Dicnic最大流(最小割)6.无向图最小环(floyd)7.floyd算法的动态规划(通过部分指定边的最短路)8.图中找出两点间的最长距离9.最短路(spfa)10.第k短路(spfa+A*)11.回文树模板12.拓扑排序(模板)13.次小生成树14.最小树形图(有向最小生成树)15.并查集(普通并查集,带权并查集,)16.求两个节点的最近公共祖先(LCA)17.限制顶点度数的MST(k度限制生成树)18.多源最短路(spfa,floyd)19.最短路(输出字典序最小)20.最长路图论题目简述字符串:1.字典树(多个字符串的前缀)2.KMP(关键字搜索)3.EXKMP(找到S中所有P的匹配)4.马拉车(最长回文串)5.寻找两个字符串的最长前后缀(KMP)6.hash(进制hash,无错hash,多重hash,双hash)7.后缀数组(按字典序排字符串后缀)8.前缀循环节(KMP的fail函数)9.AC自动机(n个kmp)10.后缀自动机小技巧:1.关于int,double强转为string2.输入输出挂3.低精度加减乘除4.一些组合数学公式5.二维坐标的离散化6.消除向下取整的方法7.一些常用的数据结构(STL)8.Devc++的使用技巧9.封装好的一维离散化10.Ubuntu对拍程序11.常数12.Codeblocks使用技巧13.java大数叮嘱共173页
2024/5/29 4:58:24 8.42MB ACM ICPC CCPC
1
能输入窗口大小,传输的第一个字节号,能实现滑动窗口的动态滑动过程,发送方发送字节,接收方将按顺序接受的字节直接交给上层程序,错序的字节先储存在链表中,等到它之前的字节顺序到达后再一起交给上层程序。
之后发送窗口向前移动。


2024/5/22 8:24:42 5KB 滑动窗口协议 C语言
1
词法分析是完成编译程序的第一个阶段的工作。
所谓词法分析就是对输入字符串形式的源程序按顺序进行扫描,识别其中的字符串作为输出。
词法分析是从左向右扫描每行源程序的符号,拼成单词,换成统一的机内表示形式——TOKEN字,送给语法分析程序,TOKEN字是一个二元式:(单词种别码,单词属性值),单词属性包括了常数、变量、关键字、运算符、界符等。
它分为非确定有限自动机和确定有限自动机,可以用状态图描述,本次实验是通过模拟教材上的状态图进行设计的。
能做简单的词法分析,判别>,>=,+=等符号。
2024/3/26 14:14:16 11KB python 词法分析
1
识别0-9十个数字,BP神经网络数字识别源代码使用说明第一步:训练网络。
使用训练样本进行训练。
(此程序中也可以不训练,因为笔者已经将训练好的网络参数保存起来了,读者使用时可以直接识别)第二步:识别。
首先,打开图像(256色);
再次,进行归一化处理,点击“一次性处理”;
最后,点击“R”或者使用菜单找到相应项来进行识别。
识别的结果显示在屏幕上,同时也输出到文件result.txt中。
该系统的识别率一般情况下为90%。
此外,也可以单独对打开的图片一步一步进行图像预处理工作,但要注意,每一步工作只能执行一遍,而且要按顺序执行。
具体步骤为:“256色位图转为灰度图”-“灰度图二值化”-“去噪”-“倾斜校正”-“分割”-“标准化尺寸”-“紧缩重排”。
注意,待识别的图片要与win.dat和whi.dat位于同一目录,这两文件保存训练后网络的权值参数。
具体使用请参照书中说明。
2024/3/24 15:29:46 59KB BP神经网络
1
若要在n个城市之间建设通信网络,只需要架设n-1条线路即可。
如何以最低的经济代价建设这个通信网,是一个网的最小生成树问题。
(1)建立一个图,其存储方式可以采用邻接矩阵形式,需要定义两个数组,一个存储顶点,一个存储边,存储边的数组表明节点间的连通关系和边的权值;
(2)利用普里姆算法和克鲁斯卡尔算法求网的最小生成树;
(3)按顺序输出生成树中各条边以及它们的权值。
1
共 42 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡