软件工程选题- 博物馆信息管理系统

一 、引言 1、目的 实现一个能够给博物馆使用的信息系统。在博物馆的文物专栏前方会有我们的二维码,游客、摄影师扫码后可以观看别人拍摄的关于此展品的照片,同时可以上传自己拍摄的关于此展品的照片,这样能够让使用者分享一个展品的不同时间、不同角度的样貌。 此外,提供博物馆的导览地图,二维码的分布在其上可见,用户可根据指示前往核心展区,打卡拍摄。       进一步拓宽系统的文化属性,可以邀请历史学家、历史爱好者、手工艺人、书画家、学校师生、政务机关工作人员等入驻,在相应的模块发挥作用、利用资源,使博物馆行业的主基调——让文物活起来落实落地更加掷地有声。 2、背景 博物馆是保护和传承人类文明的重要殿堂,是连接过去、现在和未来的桥梁,在促进世界文明交流互鉴方面具有特殊的作用。作为中华五千年文明重要承载体的中国博物馆,理所应当坚持新发展理念,着眼文化强国建设和“两个一百年”奋斗目标,不断探索创新,勠力推进博物馆事业全面跨入新时代。 当前,以物联网、大数据、人工智能为代表的新一代信息技术日新月异,新一轮科技革命和产业变革正深刻改变着人们的生产、生活和思维方式。秉持绿色发展理念,博物馆高度注重观众的观展体验,通过改进展览手段,运用 AR/VR、等现代科技手段为观众提供立体化的展览展示服务。 二、任务概述 1、完成目标 1.   本软件通过提供多层次、全方位的文物信息,将博物馆的文化功能在数字化的时代得到进一步拓宽。2.    营造良好的社区文化,提供不同的入驻角色,使优秀的文化资源为更多群体利用。 2、用户特点 本软件面向人群主要分为两类,一类是围绕博物馆提供的文化藏品资源进行各类学习创作的一般用户,另一类是负责建设博物馆藏品数据信息的馆员: 一般用户 博物馆参观人员:普通民众,对历史了解有一定限度,没有对博物馆及其展品有很深的了解,在参观的时候走马观花,无法深入了解。基本需求是获取自己感兴趣的展品信息,购买附加一定文化符号的文创产品; 师生、政务工作者:对历史文化具有一定兴趣和了解的需要,古人云:「以古为镜,可以知兴替」。这个道理很深刻。大家多学历史知识,目的就是为了认识历史发展和社会兴亡的规律,更加自觉、更加紧迫地做好我们自己的工作。但获取知识的途径有限,实践机会不足,没有高效的平台支撑; 历史学家、历史达人:对历史文化了解非常深厚,有分享知识的能力和兴趣; 手工艺人、书画家:具有一定的技能,需要在销售平台出售产品。 博物馆员 拥有渊博的知识,和不同常人的鉴赏能力,善于甄别古品的真伪,具有良好的古代文化底蕴,并善于经营和管理这些古文物和艺术品。有以下职能要求: 征集文物,对文物进行鉴定; 关注文物的保存和保护情况,定期对文物进行全面的维护,并防止文物盗窃; 负责审批、监督博物馆的建设、维修活动; 为博物馆建设筹资,审批博物馆经费使用活动,检查博物馆预算执行情况,关注资金的使用效益和社会效益,在保证博物馆的收益与传播文化两个方面做好平衡工作; 参与博物馆公共宣传活动,提高公民的文化素质; 与其它国内外博物馆沟通,组织国内各个地区之间和国际的文化交流和合作,开展文化交流会和文物展览会,弘扬国家文化和民族精神。 3、应用场景 线下(核心) 游客访问博物馆时,扫码获取文物信息,上传文物图片。 根据导览地图参观,在地点打卡。 线上(延拓) 延伸至生活空间,提供多方位的历史感知,例如: 史图(History Map),参照星图,将不同历史时期的疆域图层叠加,用户可通过选取时间点探索地点在此前的场景。提供标记点,定位重大历史事件,结合AR、VR新技术,可挖掘点很多。 创建兴趣小组,为历史爱好者、相关从业者提供研讨空间。 提供直播平台,邀请手工艺人与书画家入驻,出售文创产品,促进文化产业繁荣。 与“学习强国”平台合作,提供学习平台,为知识性答题提供实践,乐趣发展。以史为鉴,加强文化修养。 三、功能 3.1程序主要功能 3.1.1用户层面 一般用户 用户能够通过该程序实现对博物馆所有藏品的信息查询; 用户能够根据对应的藏品,上传自己的拍摄图像; 用户可以浏览其他用户上传的藏品图像,并进行点赞、评论操作; 用户可以在设定的地点通过定位实现打卡; 用户可以在购物模块进行文创产品的浏览和选购; 用户可以在直播模块观看手艺直播; 用户在账号登录,可以通过身份认证,选择不同的特殊用户角色,实现对平台的多维利用,具体如下: 师生、政务工作者等 用户通过身份认证后,创建或加入兴趣小组,进行线上研讨活动;获取文化资讯、讲座信息;上传老照片、传家宝、家谱等保留家族记忆;进行历史问题的提问。… Continue reading 软件工程选题- 博物馆信息管理系统

学习小结-GitHub使用

任务 幸运结识大佬,在超牛的博客网站https://www.limfx.pro/上有很多优质文章,勤于学习、感受知识暴涨的同时还是加以记录,慢慢填坑。 Github使用 多人协作创建新分支 多人协作-廖雪峰 创建并切换到该分支 可以在此分支做修改,同步到远程仓库的[branchname]分支 pull request About pull requests-GitHub官网 对他人项目进行修改后,请求对方拉取 1.先fork到我的GitHub远程仓库里 2.再git clone到我的本地仓库 3.在本地仓库创建一个新分支robust 4.用修改后的新分支去pull request(在GitHub网站上操作) git pull,这个命名相当于连续执行两个命令:git fetch然后git merge pull request简称PR,是github的概念,不是git的概念, 同步更新 github fork 别人的项目源作者更新后如何同步更新 按步骤操作即可,意味着自己用源作者的分支向自己发起pull request请求。 冲突 Git冲突:commit your changes or stash them before you can merge. git diff查看不同 找到对应的文件,进行手动修改完成merge git更新 本地打开Git,输入

频域增强-同态滤波

任务 对一张暗度较高的图像进行处理,直方图均衡的结果差强人意。 感到有白色噪点分布,视觉效果不好。采用同态滤波的方式进行处理,滤波方式尝试理想滤波、butterworth滤波以及gaussian滤波。 代码 思路 按照光图像的成像原理,可以对一幅图像进行简单建模: 𝒇(𝒙,𝒚)=𝒊(𝒙,𝒚)·𝒓(𝒙,𝒚) 即把图像亮度 𝒇(𝒙,𝒚) 看成是由入射分量(入射到景物上的光强度)𝒊(𝒙,𝒚) 和反射分量(景物反射的光强度)𝒓(𝒙,𝒚) 组成。 同态滤波的基本思想是减少入射分量 ,并同时增加反射分量 𝒓(𝒙,𝒚) 来改善图像 𝒇(𝒙,𝒚) 的显示效果;𝒊(𝒙,𝒚) 在空间上变化缓慢,其频谱集中在低频段,𝒓(𝒙,𝒚) 反映图像的细节和边缘,其频谱集中在高频段。 为了将入射分量和反射分量分离,方便进行入射分离的削弱和反射分量的增强,需要对图像先取对数,再进行傅里叶变换,对频谱上设计相应的传递函数进行滤波后,反变换回空域,指数处理后就得到了相应的增强图像。 整个过程的流程是比较清晰的,最初容易迷惑的一点是如何获得入射分量 𝒊(𝒙,𝒚) 和反射分量 𝒓(𝒙,𝒚)——二者无法分离得到具体数据,只是在频域中有区分度。 此外,最核心的一点是设计滤波器实现对两种分量的作用,这对整个滤波效果的影响是最为显著的。过程中,我首先简化问题,设计理想滤波器实现,思路如下: 在傅氏变换后的频谱图中,未经频移时,低频分量在四个角落,高频分量在中心点处。为了符合认知,故先将变换后图片进行频移,进行处理后,再反向频移。 此后,为了达到更好的效果,又采用butterworth函数与gaussion函数实现滤波,并对其效果进行对比。 实现效果 理想滤波 代码 第一开始出现的效果很好,如右下角图所示,整个画面出现了一些事物的轮廓。但发现函数中未增加取指数部分,因此效果主体原因是动态范围压缩的作用(log(1+s))。当用直接动态压缩做为对比时,可见二者没有明显差别。 在原函数的基础上进行参数的调整,并没有较好的效果出现。 对不同截止频率得到的结果图像放大细节,可以看到有振铃效果出现。 butterworth滤波 用幂系数n可以改变滤波器的形状。n越大,则该滤波器越接近于理想滤波器。高通滤波即用1减低通滤波函数。 代码 不同截止频率 随着截止频率的提升,被压的低频成分增加,图像颜色愈深。 不同下限倍乘 不同上限倍乘 Gaussian滤波 代码 最终运用Gaussian滤波,将三者进行对比 对比总结 直方图均衡对于改善低照图图像的灰度分布有更好的效果,可以显著地凸显暗部,增强对比度,将原图中难以观察到的物体都能够很好地显示。但由于直方图均衡合并了一些灰度级,也使一些部位的边缘细节被抹去,例如车上的车窗,集装箱上的条纹等等。 而同态滤波仅仅对具有丰富,锐利边缘的细节进行了增强,但并不能改善原图像的暗部,因为原图像的暗部也是低频成分居多。 同时,直方图均衡的效果与图像本身的性质关联不大,在任何图像上都能取得不错的效果。但同态滤波参数的设置需要根据图像的特点进行配置,同一套参数在往往在另一幅图像上的效果很不理想,若想要同态滤波取得比较好的效果,需要先根据图像设置参数。        总的来说,直方图均衡更具有自适应性,同时能从图像总体上进行增强,无论是暗部还是高光,都起到增强对比度,提升细节的效果。同态滤波可以提升边缘的细节,压缩图像的动态范围,从而提升对比度。 参考文章 把一个矩阵矩阵范围拉伸到minVal~maxVal的范围内 数字图像处理-频域滤波-高通/低通滤波 《数字图像处理 实验报告》施珉

空域锐化滤波与高频增强滤波

任务 在空域进行系列实验后,形成一个灵活性较强的函数,能够传递3*3的卷积核进行卷积,若采用拉普拉斯算子,则为锐化滤波;同期进行频域增强的实验,比较二者的区别。 (另:想要实现对模糊图像的增强处理,目前没有方法) 空域锐化 代码 效果展示 不同算子 高频增强 采取理想高通滤波器,且进行近似简化——把圆形转化为矩形域,方便矩阵操作。可以快速一窥效果如何 代码 效果展示 显示的反变换图像为截去至原图大小后的结果(边缘被扩充),可以验证FFT算法的有效性。此外,可以看到,随着阈值的提高,图像的边缘处得到增强,大量细节丢失。直到最后损失所有信息。 参考文章 灰度图像的频率域滤波——理想高通滤波器(Matlab) matlab 傅里叶变换 高斯高通滤波

空域滤波-中值滤波

任务 在进行均值滤波后,相类的对空域的操作是中值滤波。即百分比滤波的一种特例,使中心点像素值为模板覆盖所有像素值排列后某特定位的值。 百分比滤波 代码 实现效果 与均值滤波对比 与均值滤波相比,去噪效果较好,且清晰度较高。 不同百分比对照 可见,在百分比选取在0.2~0.5之间时,去噪效果较好,当百分比升高,选取的像素值趋近噪点,使图像出现大片雪花。 修改模板大小 代码 实现效果 百分比选取固定值不变(中值0.5),随着模板的增大,图像的噪点趋于平滑。但模板更大时,整幅图像模糊化。

空域滤波——均值滤波

任务 对于空域滤波主要是提供某种卷积核,使图片中与这一模板相似的成分得到增强。 平滑滤波器 均值滤波 主要思路是,将边缘像素值保留,内部置0;因为整数运算更快,所以先将边缘*9,与之后进行处理的其他像素点的范围一致,再最终/9得到滤波后图像。 均值滤波函数 matlab的添加噪声函数imnoise需要下载图像处理工具箱,可以利用文章MATLAB–数字图像处理 添加椒盐噪声的方法得到椒盐噪声图像,进行滤波效果的展示。 椒盐噪声函数 结果展示 不同大小卷积核的作用效果 教材中提到的一点,当变换不同大小的平滑模板作为卷积核时,图像效果会有变化:具体表现在,平滑模板越大,噪声消除增强,但图像更模糊。 改进函数,可以对平滑模板的大小利用传参n进行设置。 模板大小可调节函数 实现效果 分别将模板大小调节为3×3/5×5/7×7/9×9,对比显示,可见效果确实与推测一致。 只是由于模板越大,保留的边缘也越大,出现了边缘像素值的噪声分布明显的情况,现提出两种解决方案: 直接截去边缘像素部分 对边缘像素部分减小模板进行计算 下面对方法二进行实现。 边缘处理 思路是,通过补-1(不在像素值0~255的有效值表示范围内)扩展原灰度图的大小,使得边缘的像素点也能够使用同一模板计算。 核心需要一个能够统计矩阵中不为-1个数的表达式,形如[cnt,~]=size(sum(convM(convM~=(-1)),3));其中cnt为矩阵convM中不为(~=)-1的个数。 边缘处理函数 最终效果 可见,此时边缘的噪声也得到了一定程度的去除。 参考文章 MATLAB–数字图像处理 添加椒盐噪声 matlab怎么求一个matrix中非0的平均值

Linux命令小结

任务 总结一下最近使用linux时比较有用的命令,还有遇到问题的解决方式 编译make时not compatible 问题背景 初次安装gnuradio时,我为了稳定性选择3.7版本,而当前子模块项目的版本都是默认与gnuradio 3.8相匹配,每次编译时,都会出现not compatible的错误 解决方法 因为git提供不同分支的版本管理,方便切换.可以通过git checkout命令,利用tab的补全功能,查看有那些版本可供选择,再选择即可. ssh上传文件permission denied 问题背景 在更新博客图片时,需要上传无损压缩的bmp格式,但WordPress默认不支持这种格式图片,不想修改博客设置,打算直接将文件上传到服务器实现. 但使用ssh的scp命令遇到一些障碍: 指定端口 文件夹无法访问 解决方法 指定端口与ssh登录相似,加上-p 22,即指定22端口 文件夹无法访问是权限原因,服务器上进行设定chmod 777 filename,则文件或文件夹filename可访问 了解swig时gcc编译缺少头文件 问题背景 在用gnuradio进行wifi信号监测时,安装的模块依赖程序是swig,它能够方便实现其他高级语言对C/C++的调用. 在官网上尝试小例子,但在编译过程中报错,缺少tcl.h 解决方法 主要参考文章Linux编译程序时找不到头文件的解决办法 Linux编译程序时如果找不到头文件会提示如下错误:$ gcc test.c -o testtest.c:9:16: fatal error: xxx.h: No such file or directory #include<xxx.h> 下面叙述以Ubuntu系统为例。先查找 xxx.h 所在路径:$ sudo find / -name xxx.h/usr/local/include/xxx/xxx.h然后用-I选项把目录加上编译:$ gcc test.c -o test… Continue reading Linux命令小结

FM调制(一)安装使用gqrx

任务 通过观看视频学习gnuradio-companion的基本用法后,尝试连接硬件HackRF板子进行实验,选取最安全有趣的方式,解调FM信号实现广播的收听. 但在起步阶段,软件配置方面遇到不小障碍,故在这里做总结,概况各阶段的原因: jack未启动(安装音频控制jackd) 天线选购 问题 层层推进,当将HackRF板接线至电脑后,输入hackrf_info已经可以读取到板子信息:固件版本/序列号等. 但根据教程中的步骤,可以先利用已有的平台gqrx快速测试收取电台信号.它的官网提供了丰富的帮助文档与下载步骤. gqrx Discover devices attached to the computer. Process I/Q data from the supported devices.  I/Q是一个射频信号,在极坐标上可以用振幅和相位来表示,在直角坐标上可以用X和Y的值来表示。但在数字通信系统中,一般X用I来代替,表示同相,而Y用Q来代替,表示90°相位。 Change frequency, gain and apply various corrections (frequency, I/Q balance). AM, SSB, CW, FM-N and FM-W (mono and stereo) demodulators. AM:幅值调制 SSB:单边带调制 CW,等幅电报通信(continuous wave)简称CW方式。由于是形如“1、0”的二进制信号,故一般利用摩尔斯电码发送信息。 P5:单声道与立体声 mono:单声道,无位置信息 stereo:立体声 Special FM mode for NOAA… Continue reading FM调制(一)安装使用gqrx

Hack RF学习记录(更新中)

资料整理 官方文档 官网:https://greatscottgadgets.com/hackrf/ GitHub-wiki:https://github.com/mossmann/hackrf/wiki 视频: B站:HackRF &GNU Radio&SDR教程 实战系列 无线电安全(SDR)——从安装到FM、GPS步骤演示讲解 文章思路 黑客窃取有无线解锁功能的汽车的7种姿势 1.中继攻击 捕获汽车遥控钥匙开锁信号并重放 2.信号干扰 干扰锁车信号 3.胎压传感器劫持 劫持你的胎压传感器并发送假的胎压读数。而这样的目的是引诱你停下你的车 4.车联网利用 可以远程监控车辆行为的连接系统。其中可能包括你的汽车位置,速度,里程,胎压,燃油使用情况,制动,发动机/电池状态,驾驶员行为等。 5.网络攻击 拒绝服务攻击来达到其目的。例如,关闭你汽车的安全气囊,防抱死制动器和门锁等关键功能。 6.车载诊断系统(OBD)入侵 任何人都可以通过购买漏洞利用工具包来利用这个端口复制密钥,并编程新密钥用它们来窃取车辆。  7.网络钓鱼 下载不明链接 电动车电子钥匙重放(我要偷电动车养你) (原文:0#2 电瓶车钥匙的秘密) 硬件:hack rf+树莓派 软件: 搭建环境GNU Radio 图形化界面 (频谱仪osmocom_fft,也可以录制信号) 查找频率我们使用 osmocom_fft 这个工具,首先查看 443MHz 与315MHz,这两个频率附近。 使用USRP探索无线世界 Part 1:USRP从入门到追踪飞机飞行轨迹 PC:Ubuntu Or Mac SDR:USRP、天线、USB数据线 硬件资料 1 MHz to 6 GHz operating… Continue reading Hack RF学习记录(更新中)

matlab图像增强-利用位面图传输密文

2020.10.4更新: 发现虽然在图像中加入密文成功,但在利用函数imwrite()保存图像时,因为格式jpg为压缩格式,实际上对图像数据进行了变换,属于有损压缩。 因此需要选择矢量图的保存方式,如bmp.因此原本上传的图像无法正常解密,现在更新的图像可以。此处感谢@yezixuan的指正! 任务 数字图像课程中一个很有趣的一个地方是位面图,即把灰度图的8位拆解,并将各位输出图像。但前面的高位体现出图像的细节,低位几乎没有影响。因此老师提到一个思路是通过图像传输密文,这里进行模拟体验。 过程 获取位面图 首先将图片转为灰度图,再将灰度值用二进制编码表示,最终得到各平面的结果。 下面代码是第8位(最低位)的位面图输出过程,其他各位相似。 位面图像 加密 利用工具:汉字二进制转换器。将需要传递的文字信息转化为二进制编码。 下一步,只需要将二进制编码以约定形式集成到图片中,再通过叠加传输至对方手中,进行解密即可。 字符串切分 在工具中将utf-8编码的汉字转化为二进制,根据网页提供的资料可知,每个汉字对应的编码为3字节,即占据3*8bit=24bit。 不同的字符集对同一个多字节字符的编码可能不同,并且对其编码的字节数也可能不同。例如“中”字,Unicode使用4字节表示,UTF-8使用3字节,GB18030则使用2字节不同的编码表示。所以在汉字与二进制转换中需要考虑到字符的编码,通常,按照UTF-8编码与二进制进行转换。 汉字二进制转换器 因为matlab提供字符串分割函数split(str,’ ‘),与python中用法相同,即将字符串str用引号内的字符分割开来,且引号中的字符被舍去。 hint:与split()形成反函数的对应函数为join(),可以将得到的密文字符串重新合并。 需要注意的问题是,应用函数split()后得到的是cell类型的数组,不可能直接赋值给char类型的数组,需要强制类型转换。 加密效果 由于只更改了部分像素点灰度值的最末位,故显示在灰度图上肉眼不可区分,能够实现传输密文功能。 解密 下面是添加密文之后得到的图片,全部过程已经包含在代码中。有兴趣的朋友可以尝试解密,成功者惊喜奉上。 下载图片链接