From 83c038643286ebdcd45330d27a1bf397658ecf09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=87=91=E6=B3=BD=E4=BA=AE?= <9328991+jin-zeliang@user.noreply.gitee.com> Date: Sat, 7 May 2022 01:25:46 +0000 Subject: [PATCH] =?UTF-8?q?update=2006-=E8=A1=8C=E7=A8=8B=E7=BC=96?= =?UTF-8?q?=E7=A0=81=EF=BC=88RLE=EF=BC=89-=E5=BE=AE=E9=A1=B9=E7=9B=AE-?= =?UTF-8?q?=E7=AC=AC=E4=BA=8C=E5=8D=95=E5=85=83=20=E6=95=B0=E7=BB=84?= =?UTF-8?q?=E3=80=81=E9=93=BE=E8=A1=A8=E4=B8=8E=E5=AD=97=E7=AC=A6=E4=B8=B2?= =?UTF-8?q?/README.md.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../README.md" | 91 +++++++++++++++++-- 1 file changed, 85 insertions(+), 6 deletions(-) diff --git "a/06-\350\241\214\347\250\213\347\274\226\347\240\201\357\274\210RLE\357\274\211-\345\276\256\351\241\271\347\233\256-\347\254\254\344\272\214\345\215\225\345\205\203 \346\225\260\347\273\204\343\200\201\351\223\276\350\241\250\344\270\216\345\255\227\347\254\246\344\270\262/README.md" "b/06-\350\241\214\347\250\213\347\274\226\347\240\201\357\274\210RLE\357\274\211-\345\276\256\351\241\271\347\233\256-\347\254\254\344\272\214\345\215\225\345\205\203 \346\225\260\347\273\204\343\200\201\351\223\276\350\241\250\344\270\216\345\255\227\347\254\246\344\270\262/README.md" index 85d0b03..38ba9ff 100644 --- "a/06-\350\241\214\347\250\213\347\274\226\347\240\201\357\274\210RLE\357\274\211-\345\276\256\351\241\271\347\233\256-\347\254\254\344\272\214\345\215\225\345\205\203 \346\225\260\347\273\204\343\200\201\351\223\276\350\241\250\344\270\216\345\255\227\347\254\246\344\270\262/README.md" +++ "b/06-\350\241\214\347\250\213\347\274\226\347\240\201\357\274\210RLE\357\274\211-\345\276\256\351\241\271\347\233\256-\347\254\254\344\272\214\345\215\225\345\205\203 \346\225\260\347\273\204\343\200\201\351\223\276\350\241\250\344\270\216\345\255\227\347\254\246\344\270\262/README.md" @@ -1,34 +1,113 @@ # 06-行程编码(RLE)-微项目-第二单元 数组、链表与字符串 ### 一、项目主题 + 行程编码(Run Length Encoding,简称RLE)是一种利用空间冗余度压缩图像的方法,它的主要技术是在数据图像的编码中寻找连续的重复数值,并用出现次数和颜色编号取代这些连续的值。对于计算机生成的图形或二值图像,行程编码能有效减少存储空间。 ### 二、项目内容 - #### 1.项目背景 +行程编码(Run Length Encoding,简称RLE)是一种利用空间冗余度压缩图像的方法,它的主要技术是在数据图像的编码中寻找连续的重复数值,并用出现次数和颜色编号取代这些连续的值。对于计算机生成的图形或二值图像,行程编码能有效减少存储空间。例如,对于某二值图像的颜色编号:0000011111111000利用行程编码技术可以压缩为:908130。 + #### 2.项目设计依据 +利用辅助工具“颜色编号.py”,编写“行程编码”程序,得到计算机生成的图形或二值图像的“行程编码”。 +实践步骤: +1.获取某图形或二值图像的颜色编号。 +①利用“颜色编号py”提取某图形或二值图像的颜色编号,存人“图像编码txt”文件中。 +②利用Python的读取文件功能,从“图像编码.txt”文件中获取颜色编号,用字符串存储。 +2.设计行程编码的算法。 +从左往右扫描颜色编号,统计所有相同的颜色段,用颜色的个数和颜色值存储,得到行程编码,并写入“行程编码txt”文件中。 +3.根据算法分析,编写程序。 + #### 3.项目概述 +本项目在前面学习的基础上,让学生通过对队伍移动方式规律的分析,这既有利于学生理解对事物现象进行归纳总结的重要性,又能激发学生的思维。整个项目的实施,要求学生对队伍移动方式的分析与处理过程清晰明了并设计正确的算法,使用Python语言编写程序,调试运行后得出结果,并能和其他同学进行展示交流。 ### 三、项目指导 +学生需要在理解、体验和分析的基础上,围绕下列问题进行思考: +1.如何进行数据的读取 +2.该怎样进行数据的合并统计 + ### 四、项目实施流程 +问题提出-->问题分析-->问题解决-->总结汇报 + ### 五、项目实施环节安排 #### 第一阶段:项目准备阶段 +1课时 1. 确定项目主题 - - +根据项目内容,确定项目主题。 2. 项目需求分析与总体规划 +(1)明确项目实现的功能以及项目输入(即处理对象或原始数据)与输出(即处理结果)。 +(2)确定项目在实施过程中可以分成几个阶段完成,明确每个阶段需要完成的任务。 3. 分组、分工 - +建议3~~4名学生为一组,确定一个组长作为项目负责人,统一协调组内成员各阶段的任务。项目在不同实施阶段每个组员都有不同的项目分工。 #### 第二阶段:项目的指导阶段 +1课时 1. 抽象与建模 - +根据已有的信息,对一个已有的序列内容进行统计,需要设立两个变量来记录前后元素是否相同,若相同则+1否则切换元素。 2. 设计算法 - +导入pickle库 +打开文件读取序列化数据st +初始化 +new_word = '' 代表最终统计结果 +renum = 0 代表相同数据个数 +pre = word[0] 代表前一个元素 +遍历序列st + 若该元素与pre相同,则 + renum+1 + 否则若还有剩余元素,则 + 记录值为pre的元素数量(renum) + pre= 当前元素, + renum初始化为1 3. 项目程序实现 +``` +import pickle + + +def bian(word = ''): + new_word = '' + renum = 0 + pre = word[0] + for i in range(len(word)): + if word[i] == pre: + renum = renum + 1 + if i == len(word) - 1: new_word += str(renum)+ ' ' + pre + elif i != len(word) - 1: + # 判断结尾 + new_word += str(renum)+ ' ' + pre + ' ' + renum = 1 + pre = word[i] + return new_word + + +f=open("图像编码.txt" ,"rb") +st=pickle.load(f) # 加载序列化文件数据 +f.close() +b1=bian(st) + +f=open("行程编码.txt","wb") +pickle.dump(b1,f) # 序列化输出到文件中 + +f.close() +``` + #### 第三阶段:项目汇报阶段 ### 六、项目汇报环节安排 +1.教学导入。 + +  鼓励学生作为小组项目发言人,自主准备汇报材料,介绍自己所在小组项目实施的过程、成果、意义及感悟,以期待得到同学的“认可”。引导学生以项目评价量化表为标准,客观给予评价。汇报的内容和形式自定,可以是文稿演示、成果报告、展板展示、项目实施手册展示和项目活动过程陈述等方式。教师对小组汇报的项目研究报告进行打分,并对评选出的最佳小组给予奖励。 + +  汇报过程对学生来说是一个非常重要的学习经历,也是对学生的总结反思、整理资料能力及写作能力的一次挑战。 + +2.分组汇报。 + +  每个项目研究小组派小组代表采用合适的方式汇报小组的项目经历与成果。 + +3.学生提问,教师点评,评价打分。 + +  根据“项目成果评价表”进行评价,并记录同学们提出的意见。 + +  每个小组可以根据同学们的评价进一步地修改项目中存在的问题,将自评、他评、师评和专家评价结合起来,借助信息技术更及时呈现评价结果。为了激励学生并检验各组的项目成果,教师合理评价并为“最佳”项目成果颁发奖项,以评价的形式引导学生梳理、总结项目成果。 -- Gitee