精华内容
下载资源
问答
  • 列数字完全相同则在另一列D记录为1怎么表示?(a、b、c中均有.null.) if a==b ==c replace D with 1 endif 这样遇到null就输出的不对,该怎么...
  • 表格中展示的比率,对比率的处理是:保留两位小数,并向上保留。通过对某的值进行数字格式化来实现保留两位小数
  • 对比机器人一级考试,二级考试难度增加很多,刚刚经历了一场艰辛的备考。今天从如何准备一个考试角度进行思考和总结,以“干一件事情吃透一件事情”的心态对待每次学习。01机器人等级考试机器人等级考试主要以考察青...

    第93篇

    bf6e8e808e826dfa77c53c99eda72fb2.png

    Booker参加的电子学会青少年机器人二级考试,今天终于考完了。之前专门有一篇文章介绍过电子学会的机器人考级,如下:

    青少年机器人考级简介及思考!

    对比机器人一级考试,二级考试难度增加很多,刚刚经历了一场艰辛的备考。今天从如何准备一个考试角度进行思考和总结,以“干一件事情吃透一件事情”的心态对待每次学习。

    01机器人等级考试

    机器人等级考试主要以考察青少年在机械结构、电子电路、软件编程、智能硬件应用、传感器应用、通信等方面的知识能力和实践能力。同时,符合人工智能进入中小学编程教育的主要技术框架。

    面向青少年群体的年龄为8-18周岁,学级为小学1年级至高中3年级。考试形式包括理论考试和实践搭建考试。

    官方网站

    http://www.qceit.org.cn/bos/default.html

    a03bd692769815deebfda5d6c8cf005d.png

    下面配套的练习网站,有基础知识讲解和模拟练习题,非常不错。

    http://robottest.cn/index.php

    510863b73acf276393779be9ea4fa269.png

    02艰辛的学习过程

    机器人二级考试的内容需要理解机械结构、了解机器人常用知识和基本原理。通过对凸轮、滑杆、棘轮、曲柄、连杆等特殊结构,并使用电机和乐高积木搭建这些机械模型。

    下图知识点,我也基本都不懂,只能跟着孩子一起学一遍。

    311b23b4e8315a678f849bd83f125c26.png

    高强度的培训考试

    我们每周日下午3点多有乐高课,而机器人考级还要每周额外参加培训课,所以最近两个半月从下午2点多开始到晚上8点,都一直在上乐高课。

    在这10周,家长长时间的陪课也很耗时间,基本都是我全程陪同,中间还要带着吃晚饭,直到晚上8点。后来换了个方式,找个了教室安全静下来写一些文章,时间才算过得快一点。

    03我们遇到的3个困难

    我们基本从前两周开始考前准备模式,这两周对孩子和家长都是艰辛的考验,实际备考过程中我们遇到一些问题。

    1.时间超级不够用


    算了算孩子的可用时间,除了周一到周五的上课时间,晚上回来要做学校作业,星期一、星期五还有围棋和英语课,周末又有新东方在线网课和篮球课。还有周日长时间的乐高课,可供孩子复习考级的时间太少了。

    2.考级知识点有点复杂

    Booker模拟考试都是在60分左右,观察到他对这些内容掌握的不太理想。这些知识有点超出孩子的理解范围,很多机械知识、电学、摩擦力这些都是初中孩子的学习点。

    3.搭建模型太多,需要注意的细节点多

    二级考试涉及11个搭建模型,每个模型都使用电机,运用齿轮、皮带、连杆、凸轮等各种结构。

    4bc31fa4833f5dea9ef20d192a472270.png

    04备考准备过程

    1.针对时间不足,适当调整其他课程,减少作业量

    将备考的事情优先级调整第一位,我们家长时间也适当调整。虽然说这个考试可以补考,如果真涉及补考就更加浪费时间,后面还要上课、还要搭建。所以我们决定和Booker冲一下,调整他的时间和我的时间,只要有时间就抓他复习。最近两周,晚上基本保证1.5小时的陪同学习和搭建。

    2.高质量的陪伴和帮助孩子理解知识

    A.每天一套模拟卷,孩子先做,做完题目后再一道道和他确认,重点理解错误的选项。卷子整体过完一遍后,让孩子单独再做一遍,基本能保证在90分以上。

    B.陪他一起读题干、找出题目的要点和考试知识点,不放过选择题的每个选项。即使简单的题目也要认真看A、B、C、D,不仅把题目答案做对,更重要是让他真正的理解考察的知识点,为什么对?为什么错?

    举个例子:习惯性的错误,小a、b、c、d和答案的A、B、C、D不匹配

    616d2c774f8f5d231d9461533ca0d123.png

    题目有坑时,要注意看答案

    3.遇到抽象知识时,多借助网络资源,把知识串联起来

    这些机械结构我都不懂,为了和孩子讲清楚这些知识点,只能一个个百度搜索,寻找这些知识点的动图和视频,通过简短的视频和孩子一起学习、一起理解。

    举个例子:齿轮的传动比率的题目,无法用语言表达清楚时,让孩子搭建一个和题目的一样的模型,就能很快吸收理解。

    f08f7b1bbe06ddaa92474d3c87ebd208.png

    寻找配套的动图,帮助孩子理解复杂知识,调动孩子的积极性。将理论知识和机械的动作联动起来,再回想题目知识点时,就会更加通俗易懂。

    82f843e10ec16c6f56cfbee708172528.gif

    333ac6e79b1c7b27e56446ef65097aa0.gif

    5d5797f65a4d93deff1c1c2f50f66861.gif

    a937b7f43238bbf0bd8ff03f82d9314f.gif

    c4d78341425362d2072842fe07553a52.gif

    把各种模型的关联关系和区别进行总结,有些是共性的知识,使用了相同的原理。

    这里举一个简单的例子,关于皮带、链条、齿轮的各自特点。

    从方向角度看,齿轮是反方向,链条是相同方向,皮带可以反方向(皮带交叉传动)、可以正方向(皮带平行传动)。

    从传输距离看,皮带和链条都是远距离传动、齿轮因为相互咬合在一块不能实现远距离传动,因为咬合在一块传动力是最精准,但是会造成的磨损、噪音等问题。

    因为齿轮的缺点,就出现了皮带和链条来解决它的问题。

    0a62123076e06885871dba760cd552cb.gif

    串联起来看,很多技术工具的出现是互补的,有缺点就会有优点,这时候就涉及到应用场景了。我们需要根据实际业务需求来选择不同技术组合。如果学习能到这个层面和深度,距离理解知识就很近了。

    4.不留任何模糊问题,即时解决

    在实际学习过程中,我们遇到了很多问题,有些网上没法解决的。需要一个个向培训老师请教,做到求实务真,把问题化解在每一刻,不留困惑在脑海中,侵占大脑空间。

    即使看起来很简单、很傻瓜的题目,只要有困惑,就要及时解决。比如有一道判断题,机械手臂是不是机器人?在旧的认知前,手臂只是手臂,经后来确认机械手臂可以是机器人。

    5.让孩子说出搭建过程和蕴含的知识

    11个模型的搭建,大部分和生活都是相关的。在与Booker搭建过程,给他提了几个要求:

    a.搭建模型前,要能清晰表达出该模型运用的机械知识;

    b.搭建过程中,遇到配件缺失、异常情况,要思考变通的办法解决;

    c.搭建完后,需要把搭建步骤进行分解,先分成几个核心大步骤,再考虑大步骤下的小步骤,最后再说出搭建需要注意点,规避已经犯过的错误。

    在实际准备过程中,对11套模型分批次搭建,说出搭建模型,观察他不熟悉的模型,花更多的时间帮助他理解。

    73891c006112449dc6532b127056bae7.png

    缝纫机

    b1c9a7b956e6c039bc09ccc15beab7ab.png

    机械尺蠖

    37be8b282dc952aaed9cbf3afcb4c483.png

    六足机器人

    89e87aee21178c982a4342eb54433561.png

    石油开采机

    b9454a621446d5cf22755c16f3cd0c14.png

    挖掘机

    3abab7e0934c266972258d116c5420c8.png

    直行飞机

    乐高搭建的模型和生活世界中的内容还是有区别,把生活中这些机械应用场景找出来和孩子分享,更加有意义。

    9851bf788adfe55072a04cbdadad3b63.png

    e640f5abdbbff79b0b7badd2282e56c0.png

    c8d368006e49cee38eb1f59ddaf433f3.png

    05思考总结

    9月份我自己也有个培训考试,也经历了一个考试。个人原则,培训拿证仅仅是学习过程很小的一部分,我更看重在学习过程对新知识的理解和吸收,看中这些培训知识之间逻辑关系和相互联系。

    即做一件事情成一件事情,做过一件事情就现有能力下全面透彻的去做好这件事情,当同样的事情再来一遍,一定能比第一次做的更出色。

    对于Booker的机器人二级考试,也给了他同样的要求。

    所以,在他的考试准备过程中,我也投入了大量的时间:给他打印模拟考题、网上给他找在线题目练习、协助建立错题集提高复习效率、搭建的模型打印出来一个个要点做、遇到疑难杂症时一定找老师问清楚原理,还有整理的一堆堆资料。

    77278b8a27d88ef6ca65846db5da4c3f.png

    讲解错题

    1ea6a7e53c88b1f101bcf42b77a5d224.png

    花了大量时间整理的资料库,原来题目都是有答案,为了打印出来给Booker考试只能手工一个个把答案去除再打印出来。

    e635981cd9d75d766c881e1e0700293d.png

    陪伴他搭建,把搭建模型拍照打印,让他说出关键点。

    3cbaf34d6da2accd57f87e50c2a913aa.png

    打印的一堆堆的复习资料,虽然是个简单的考试,但是通过这种认真态度,希望孩子能感受到。

    5dff727e92eeccc3a7ae0a5046350301.png

    和老师反复确认问题、包根问底,拒绝模糊的知识留在脑海中。

    680ad48e1b2ed49243792258229ef0ca.png

    整理二级问答手册,编辑图片和文字。

    欣喜和警醒

    今天终于考完了,在这过程中虽然只是一个小小的考试,我们还是做了大量的工作,让孩子感受到该如何准备一个考试。在低年级的时候,培养做一件事情吃透一件事情的态度。

    在整个过程中,让人欣慰的是Booker全程都很认真积极、没有表现出抗拒和厌烦的一面,仍然保持了学习的热度。

    不侵害孩子的学习热情,不过度“教授”,提供更好的环境给孩子理解知识为主。通过一次次的准备和练习,孩子建立好的学习方法,从低年级逐步过渡到高年级,逐渐成熟。而家长的角色则刚好相反,参与程度是逐步退出的过程。

    文中部分配图来源互联网,侵权请联系删除。

    机器人一级、二级考试资料和问题,欢迎添加微信“smartlinking2018”交流,拉入数学和逻辑群。

    5a88334ccaa38af51605b2017b510548.png

    smartlinking,链接父母和孩子一起成长!d79a7e630f827018fa3610b6369765a9.png

    数学

    .

    逻辑

    057490dbd314d293a6111da983c4ba5b.png相关的文章小学数学1:排队问题,体现孩子不同逻辑思维!小学数学2:解析生活语言和数学语言的关系小学数学3:数墙,隐藏很多加减法的数字游戏!小学数学4:如何指导孩子列应用题算式?(附题目)小学数学5:竖式计算的好与坏,提供几个新鲜玩法!小学数学6:九九乘法表的故事!幼儿逻辑书单1 逻辑启蒙和习题(已实践)!幼儿逻辑书单2 数学-科学绘本(已实践)!幼儿逻辑第1课:一起认识各种神奇的形状!幼儿逻辑第2课:数字起源,寻找生活中数字物品!幼儿逻辑第3课:扑克牌,老少皆宜的益智游戏!幼儿逻辑第4课:玩转方向的几个趣味游戏!幼儿逻辑第5课:和孩子探索“时间”的奥秘!幼儿逻辑第6课:数独,让人越玩越聪明的游戏!幼儿逻辑第7课:“点连线”锻炼孩子视觉注意力!幼儿逻辑第8课:和孩子玩“量词”游戏--玩中识字幼儿逻辑第9课:帮助孩子理解复杂的空间思维幼儿逻辑第10课:简单好玩、提升专注力的迷宫游戏幼儿逻辑第11课:解决复杂难懂的火柴棒游戏!幼儿逻辑第12课:如何有趣的教孩子识字?幼儿逻辑第13课:数感能力培养,基础计算和进阶模式幼儿逻辑第14课:测量与估算,一把直尺测量小区长度!幼儿逻辑第15课:安全交通标志线,隐藏了大智慧!幼儿逻辑第16课:等待逻辑启蒙时机,3个简单的启蒙实例幼儿逻辑第17课 :玩汉诺塔游戏,探究它和数学的关系幼儿逻辑第18课:N种“百数表”的游戏玩法
    展开全文
  • 1、问题背景  一般的,表格中展示的比率,对比率的处理是:保留两位小数,并向上保留 2、实现实例 xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.ad

    1、问题背景

         一般的,表格中展示的比率,对比率的处理是:保留两位小数,并向上保留


    2、实现实例

    <?xml version="1.0" encoding="utf-8"?>
    <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
    			   xmlns:s="library://ns.adobe.com/flex/spark" 
    			   xmlns:mx="library://ns.adobe.com/flex/mx"
    			   width="100%" height="100%" fontSize="12"
    			   fontFamily="微软雅黑">
    	<s:layout>
    		<s:BasicLayout/>
    	</s:layout>
    	<fx:Script>
    		<![CDATA[
    			import mx.collections.ArrayCollection;
    			import mx.events.FlexEvent;
    
    			[Bindable]
    			//表格数据绑定
    			private var gridArray:ArrayCollection = new ArrayCollection([
    				{week:"星期一",apple:"3676",rate:"0.7868"},
    				{week:"星期二",apple:"4534",rate:"0.65454"},
    				{week:"星期三",apple:"6758",rate:"0.876454"},
    				{week:"星期四",apple:"9808",rate:"0.34224"},
    				{week:"星期五",apple:"6567",rate:"0.9876523"},
    				{week:"星期六",apple:"9000",rate:"0.566777"},
    				{week:"星期日",apple:"4533",rate:"0.988787"}
    			]);
    			
    			/**
    			 * 对表格中的比率进行格式化
    			 */
    			private function formatDataGrid(item:Object,column:DataGridColumn):String
    			{
    				var temp:Number = item.rate;
    				var data:String = dataFormatter.format(temp);
    				return data;
    			}
    			
    		]]>
    	</fx:Script>
    	<fx:Declarations>
    		<!--格式化数字-->
    		<mx:NumberFormatter id="dataFormatter" precision="2" rounding="up"/>
    	</fx:Declarations>
    	
    	<mx:VBox width="100%" height="100%" paddingBottom="10" paddingLeft="10" paddingRight="20"
    			 paddingTop="10" horizontalAlign="center">
    		<mx:DataGrid id="dataGrid" width="100%" height="90%" dataProvider="{gridArray}" textAlign="center">
    			<mx:columns>
    				<mx:DataGridColumn headerText="星期" dataField="week"/>
    				<mx:DataGridColumn headerText="苹果" dataField="apple"/>
    				<mx:DataGridColumn headerText="比率" dataField="rate" labelFunction="formatDataGrid"/>
    			</mx:columns>
    		</mx:DataGrid>
    		
    	</mx:VBox>
    </s:Application>
    

    3、实现结果


    展开全文
  • 灰度数字图像与矩阵灰度图像:一张灰度图像根据其竖直位置(行)与水平位置()可以对应于一个二维矩阵,其中为图像的尺寸。而表示的为图像的灰度,图像灰度值通常在数据文件中以uint8,即八位无符号整型的整数来...

    458f8b03dc66e5c3e2bbe7df764cfcaa.png

    灰度数字图像与矩阵

    • 灰度图像:一张灰度图像根据其竖直位置(行)与水平位置(列)可以对应于一个二维矩阵
      equation?tex=+%28+%2C+%29%2C+%E2%89%A4+%E2%89%A4+%2C+%E2%89%A4+%E2%89%A4+,其中
      equation?tex=%28+%2C+%29为图像的尺寸。而
      equation?tex=+%28+%2C+%29表示的为图像的灰度,图像灰度值通常在数据文件中以
      uint8,即八位无符号整型
      equation?tex=%280%2C+255%29的整数来表示灰度。0为黑色,255为白色。

    5529cd296ff931bc280a4b2e9333a08d.png
    • 彩色图像:彩色图像最为常用的存储模式为RGB存储模式,即彩色图像的红、绿、蓝三种颜色分别对应一种亮度(灰度)值。记为
      equation?tex=+%28+%2C+%2C+%29%2C+%E2%89%A4+%E2%89%A4+%2C+%E2%89%A4+%E2%89%A4+%2C+%E2%88%88%7B+%2C+%2C+%7D

    0cf68f2fe8283ae1cb9eb718f1e2c80d.png

    注意:jpg文件为有损压缩,png文件为无损压缩

    数字图像基础API

    • 信息获取:函数info=imfinfo('filename')可获取灰度或彩色图像文件的基本信息,如假设文件名为mcm1.png,可见:
      例如我展示一个图片的信息,结果为:
    info = 
    
      包含以下字段的 struct:
    
               Filename: 'D:matlabAFiletemppicsongshu.jpg'
            FileModDate: '26-Jul-2020 15:49:11'
               FileSize: 720467
                 Format: 'jpg'
          FormatVersion: ''
                  Width: 1920
                 Height: 1080
               BitDepth: 24
              ColorType: 'truecolor'
        FormatSignature: ''
        NumberOfSamples: 3
           CodingMethod: 'Huffman'
          CodingProcess: 'Progressive'
                Comment: {}
            Orientation: 1
            XResolution: 72
            YResolution: 72
         ResolutionUnit: 'Inch'
               Software: 'Adobe Photoshop CS Windows'
               DateTime: '2017:02:26 10:40:49'
          DigitalCamera: [1×1 struct]
          ExifThumbnail: [1×1 struct]
    • 读取图像:进入图像所在的文件夹,键入A=imread('filename'),即可获取灰度或彩色图像的信息,并且将其储存在矩阵A中
    • 展示图像:MATLAB函数imshow(A)可以弹出Figure并显示图像A

    注意

    1. 数字图像的默认储存格式uint8并不适合进行数值计算。在进行数值计算时,矩阵往往被自动转化成双精度型。因此图示前往往将矩阵强制转换为uint8型。
    2. 对双精度型矩阵,直接使用imshow默认最小值为0,最大值为1。0~255双精度图像可标准化图示如imshow(A/255)

    彩色图像处理

    彩色图像的通道分离与图像存储

    对于RGB格式的彩色图像矩阵A,B=A(:,:,1)即可提取彩色图像的红色通道值,其中B将以二维矩阵的形式存储表示

    535311e91ce980d0c5bd4281e9310e5f.png

    相应API:

    • imshow(B):将会得到对应红色通道的灰度图像
    • C=rgb2gray(A):可以根据彩色图像A的整体亮度均匀的转化为灰度图像C
    • imwrite(A,'file_name')可以将任何的灰度或彩色图像矩阵存入对应文件名。注意:double型矩阵存储时范围为0~1

    彩色图像的颜色编码更换

    RGB格式是大多数彩色图像的存储格式,按照红、绿、蓝三种颜色分别存储一张灰度图像。另一种非常流行的颜色模型为HSV模型,分为色调(Hue),饱和度(Saturation)以及明度(Value)三种信息

    B = rgb2hsv(A),可以将RGB模型的矩阵A化为hsv型的矩阵B,而C=hsv2rgb(B)可以完成逆变换。若A为uint8型的数据,则会自动转为双精度型并除以255,再进行对应的色彩空间变换,HSV的指标范围均为0~1

    f0b333dd90291a821d03230712f86c54.png

    数字图像的简单处理

    数字图像的放大

    RGB2 = imresize(RGB,[192,256]);  % 图像长宽减半

    数字图像的放大

    RGB3=imresize(RGB,[1000,NaN]);   % 等比例放大

    Matlab默认使用双三次插值的方法获取更大的图像

    数字图像的裁剪

    RGB4=RGB3(401:600,401:600,:);  % 将前页放大图像的第401~600行,401~600列裁剪下来
    RGB5=RGB3(600:-1:401,600:-1:401,:); % 与上述结果相比,进行了水平和垂直翻转
    RGB6=RGB3(1:2:end,1:2:end,:);  % 本质上是一种“粗暴”的图像缩小算法

    数字图像映射到曲面

    [x,y,z] = sphere(100);  %生成101层高度的单位球面坐标,每层101X101个点坐标
    warp(x,y,z,RGB)   %将彩椒图像映射到球面显示
    view(45,-45)   %改变观察角度,也改变了图像相对位置

    数字图像的亮度与对比度

    亮度:设uint8型的灰度图像的二维矩阵为A,设置常整数-255<=c<=255,则A+c就表示亮度的调整。若A+c超过255则自动设置为255,反之若A+c小于0则自动设置为0

    2855e55c12eb17de1dd8c4ac10f406d2.png

    对比度:设uint8型的灰度图像的矩阵为A,设置正常数c>00~255之间的整数k,则

    equation?tex=c%2A%28A-k%29%2Bk则表示以
    k为灰度中心,将对比放大/缩小c倍。通常,因对比度常定义为最大最小灰度比值,故假设k=0,注意:结果仍会自动转化为uint8型的数据。

    826768397709d45c185265d62c9c34c7.png

    图像的直方图显示与均衡化

    • imhist(A)可绘制图像的灰度直方图,统计各灰度出现频率
    • B = histeq(A)可将矩阵A进行灰度均衡化(一般增大对比度)
    I=imread('peppers.png');    %读取图像并在左上角显示其灰度
    I=rgb2gray(I); 
    figure;subplot(2,2,1);
    imshow(I);
    title('原始图像');
    
    subplot(2,2,2);   %绘制直方图
    imhist(I);
    title('原始图像直方图');
    
    I1=histeq(I);        %图像均衡化后的效果
    subplot(2,2,3);
    imshow(I1);title('图像均衡化');
    
    subplot(2,2,4);
    imhist(I1);
    title('直方图均衡化');

    01b80321f16b37f8d09a2faf0f4182ce.png

    图像的背景提取与计算

    图像的背景提取可以基于图像的开运算算法(属于形态学图像基础,这里对原理不作要求),对应的MATLAB函数为imopen,开运算的核心是对图像的腐蚀再膨胀的运算,主要效果除了对细节平滑化外,可以去掉前景亮色的边缘毛刺等,后面将专门介绍。

    clear all;coins=imread('coins.png'); %打开MATLAB內建的硬币图像
    background=imopen(coins,strel('disk',15));
    %利用半径为15的圆盘做开运算
    
    subplot(2,2,1),imshow(coins);title ('原始图像')
    subplot(2,2,2);imshow(background);title ('背景图像')
    %可以发现,背景图像提取了每一个硬币的所在区域并进行了一定的光滑化
    
    coins1=imsubtract(coins,background);%MATLAB提供的更专业的相减函数
    subplot(2,2,3),imshow(coins1);  
    title ('imsubtract函数相减结果')
    
    K = imabsdiff(coins,background);%前景值不论正负都可以保留
    subplot(2,2,4);imshow(K,[]) %按K的范围比例放缩输出(扩大对比度)
    title ('imabsdiff函数相减结果')

    c380dfb693f804aa9f5eb6911680614b.png

    图像的前景抠图与背景更换

    ind = background>=80;  %硬币区域背景值均大于等于80
    figure;subplot(2,2,1);
    imshow(ind)
    title('获取的前景位置')
    
    coins_f = immultiply(coins,ind); 
    %两个uint8与logical矩阵做图像式乘法时,*或.*均会出现错误(非double)
    subplot(2,2,2);imshow(coins_f)
    title('抠取的前景图像')
    
    background_new = imread('nbg.png');
    %这个文件MATLAB没有,可自己尝试生成一个同型的灰度背景图像
    subplot(2,2,3);imshow(background_new)
    title('新背景图像')
    
    coins_new = coins_f + immultiply(background_new,~ind);
    %逻辑型矩阵ind做非运算后,1变成0,0变成1。因此背景部分代替无硬币区域
    %有硬币区域使用最初coins的图像灰度,进行整合
    subplot(2,2,4);imshow(coins_new)
    title('新合成图像')

    14435f7f5595ef5e68447ec76d960ca5.png

    二维离散傅里叶变换

    二维离散傅里叶变换可以理解为一维离散傅里叶变换的张量积,或理解按照两个方向分别作一次一维傅里叶变换。定义:

    equation?tex=F%28u%2C+v%29%3D%5Csum_%7Bx%3D1%7D%5E%7Bm%7D+%5Csum_%7By%3D1%7D%5E%7Bn%7D+f%28x%2C+y%29+%5Cmathrm%7Be%7D%5E%7B%5Cfrac%7B%28-2+%5Cpi+j%29%28x-1%29%28u-1%29%7D%7Bm%7D%2B%5Cfrac%7B%28-2+%5Cpi+j%29%28y-1%29%28v-1%29%7D%7Bn%7D%7D+%5C%5C

    equation?tex=1+%5Cleq+u+%5Cleq+m%2C+1+%5Cleq+v+%5Cleq+n%2C
    equation?tex=j为虚数单位。特别的当
    equation?tex=%28u%2C+v%29%3D%281%2C1%29 时,
    equation?tex=F%281%2C1%29%3D%5Csum_%7Bx%3D1%7D%5E%7Bm%7D+%5Csum_%7By%3D1%7D%5E%7Bn%7D+f%28x%2C+y%29 称为离散傅里叶变换的低频系数。 余系数称为高频傅里叶系数。低频系数表达了函数的区域总和。 高频系数则在不同程度刻画函数的变化情况。 回函数
    fft2 (X)可计算出矩阵或图像X的二维离散傅里叶变换 离散傅里叶逆变换定义

    equation?tex=f%28x%2C+y%29%3D%5Cfrac%7B1%7D%7Bm+n%7D+%5Csum_%7Bu%3D1%7D%5E%7Bm%7D+%5Csum_%7Bv%3D1%7D%5E%7Bn%7D+F%28u%2C+v%29+%5Cmathrm%7Be%7D%5E%7B%5Cfrac%7B%282+%5Cpi+j%29%28x-1%29%28u-1%29%7D%7Bm%7D%2B%5Cfrac%7B%282+%5Cpi+j%29%28y-1%29%28v-1%29%7D%7Bn%7D%7D+%5C%5C

    equation?tex=1+%5Cleq+x+%5Cleq+m%2C+1+%5Cleq+y+%5Cleq+n%2C MATLAB对应函数
    ifft2 (Y)​

    对Cameraman图像进行二维傅里叶变换,模的最大值必为低频值,除左上角外,大值多位于四个角落。因此可以使用MATLAB函数fftshift来平移傅里叶变换函数将大值置于中部

    clear,close all;
    A = imread('cameraman.tif');%MATLAB自带的图像
    FA = fft2(A);
    subplot(1,2,1),imshow(abs(FA),[0,1e4]),title('原始傅里叶变换');
    FAS = fftshift(FA); %本身不改变FA的值,只是进行一个水平与竖直方向的平移
    subplot(1,2,2),imshow(abs(FAS),[0,1e4]),title('平移傅里叶变换');
    %这里1e4并不是变换的最大模,只是为了能够尽量反映傅里叶系数模的对比度

    傅里叶变换对于自然图像往往不具有稀疏性。对于小块亮度函数,其频谱线会集中在坐标轴,并且保持旋转不变性。

    f=zeros(900,900);
    f(351:648,476:525)=1;
    subplot(221);imshow(f,[]);title('原始图像');
    
    F=fftshift(fft2(f));
    subplot(222);imshow(log(1+abs(F)),[]) 
    %log(1+abs(F))进行合理比例变化,保证图谱清晰
    
    title('原始图像的频谱');
    f=imrotate(f,45,'bilinear','crop');  
    %对其进行旋转,双线性,如果出格则裁剪掉的算法
    subplot(223),imshow(f,[])
    title('图像正向旋转45度')
    
    Fc=fftshift(fft2(f));
    subplot(224);
    imshow(log(1+abs(Fc)),[])
    title('旋转后图像的频谱')

    7edd66d1222ddd8e8b48174d170eb73d.png

    二维离散余弦变换

    • 二维离散余弦变换与二维离散傅里叶变换类似,但不同点为余弦变换是实变换,并且更贴近于真实图像的频谱分析需求(因为真实图像在二维空间往往并不具有周期性),定义:
      equation?tex=C%28u%2C+v%29%3Da%28u%29+b%28v%29+%5Csum_%7Bx%3D1%7D%5E%7Bm%7D+%5Csum_%7By%3D1%7D%5E%7Bn%7D+f%28x%2C+y%29+%5Ccos+%5Cfrac%7B%282+x-1%29%28u-1%29+%5Cpi%7D%7B2+m%7D+%5Ccos+%5Cfrac%7B%282+y-1%29%28v-1%29+%5Cpi%7D%7B2+n%7D
      equation?tex=%5Cmathbf%7B1%7D+%5Cleq+u+%5Cleq+m%2C+%5Cmathbf%7B1%7D+%5Cleq+v+%5Cleq+n_%7B%5Ccirc%7D 其中
      equation?tex=a%28u%29%3D%5Cleft%5C%7B%5Cbegin%7Barray%7D%7Bl%7D%5Csqrt%7B%5Cfrac%7B1%7D%7Bm%7D%7D%2C+u%3D1+%5C%5C+%5Csqrt%7B%5Cfrac%7B2%7D%7Bm%7D%7D%2C+u+%5Cneq+1%5Cend%7Barray%7D%2C+b%28v%29%3D%5Cleft%5C%7B%5Cbegin%7Barray%7D%7Bl%7D%5Csqrt%7B%5Cfrac%7B1%7D%7Bn%7D%7D%2C+v%3D1+%5C%5C+%5Csqrt%7B%5Cfrac%7B2%7D%7Bn%7D%7D%2C+v+%5Cneq+1%5Cend%7Barray%7D%5Cright.%5Cright. 特别的当
      equation?tex=%28u%2C+v%29%3D%281%2C1%29 时,
      equation?tex=C%281%2C1%29%3D%5Cfrac%7B1%7D%7B%5Csqrt%7Bm+n%7D%7D+%5Csum_%7Bx%3D1%7D%5E%7Bm%7D+%5Csum_%7By%3D1%7D%5E%7Bn%7D+f%28x%2C+y%29 称为
      离散余弦变换的低频系数。其余系数称为高频余弦系数
    • 函数dct2 (X)可计算出矩阵或图像X的二维离散余弦变换
    • 离散余弦逆变换可以类似定义,其MATLAB对应函数idct2 (Y)

    实际的自然图像,大都在整体区域上不满足恒为常值,也不满足具有周期纹理状的统一分布。但是往往在局部分片上满足相应形式,因此,分片傅里叶变换或分片余弦变换就有了很大的存在和利用价值。

    图像恢复问题

    图像去高斯噪声问题

    与信号去噪问题相似,图像去噪问题即图像对应的目标函数受到了一些未知的退化变换,得到了一幅带有噪点的不准确图像。去噪问题即利用图像的内在性质与噪声分布的特点,完成目标清晰图像的估计与获取的过程。

    函数imnoise可生成各种类型的带有各种噪声的图像

    B = imnoise(A,'gaussian',0,0.05);
    % 对图像A添加高斯噪声,均值0,方差0.05*(255^2),与个人生成随机矩阵计算相比,imnoise可以自动将结果化为uint8型

    7b4df39d3fefe8e804ba0cb66791c818.png

    均值滤波

    最简单也最直接的二维图像高斯噪声的去噪方法即为均值滤波方法,对应的MATLAB函数为imfilter。用法形如:

    filt = 1/25 * ones(5)
    C = imfilter(B,filt,'symmetric','same');

    解释:设立25点均值滤波的方法,即以每个像素为中心,周围

    equation?tex=5X5的范围的均值代替原有的含有噪声的图像函数值,这个和一元信号去噪使用
    smooth函数的原理基本相同。对称边界条件,滤波时不改变图像大小(对应’same’,否则为’full’)

    33b6c3c91aec4ee30f59d7b5a2718aed.png

    恢复结果的衡量-峰值信噪比(PSNR)

    除了直接通过肉眼观察图像质量外,基于图像函数误差定义的峰值信噪比,可以对图像的恢复质量进行数值上的分析。峰值信噪比的定义(8位无符号整型)为:

    equation?tex=10%2A%5Ctext%7Blog%7D_%7B10%7D%28%5Cfrac%7B255%5E2%2A%5Ctext%7B%E6%80%BB%E7%82%B9%E6%95%B0%7D%7D%7B%5Csum%5By-f%28x%29%5D%5E2%7D%29+%5C%5C

    可以注意到,峰值信噪比的值往往大于信噪比,仅取决于图像函数的绝对误差。

    psnr(B,A)   % 真实图像在前后均可
    % ans = 13.8864,带有噪声的图像PSNR值较低,单位分贝dB
    psnr(C,A)
    % ans = 21.0560,均值滤波确实减小了误差,提高了PSNR

    椒盐噪声与图像填充问题

    椒盐噪声,即随机选择图像中的若干像点,将他们的值变为0(黑椒点)或255(白盐点),使其与真实值无关。

    B = imnoise(A,'salt & pepper',0.1); % 将10%随机的像点转化为非黑即白的椒盐噪声

    椒盐噪声所在位置的直接检测方法讲就是直接找出像素值 为0与255的点,用周围像素值填充。这些信息被认定为是无效的,需要通过其他位置的灰度值来恢复这些被破坏的灰度值。因此椒盐噪声去噪本质上是一种图像填充问题(估计完全未知元素)

    ind = (B==0) | (B==255);
    
    sum(ind(:))/numel(ind)
    % ans = 0.1000 噪点比例检测

    椒盐噪声的简单恢复方法-中值滤波

    因为椒盐噪声噪点周围,我们认为绝大多数的信息是准确的,因此可以在噪点周围3X3或5X5的范围内取灰度值的中位数来估计噪点的灰度,可以削弱信息缺失的影响。

    C = medfilt2(B,[3 3]);  % 3X3的中值滤波,即一个像点上下左右3X3区域内取中位数估计
    psnr(B,A)          % ans = 15.0481 
    psnr(C,A)    % ans  = 25.8709
    C(~ind) = B(~ind);  % 未填充区域应取消滤波效果
    psnr(C,A)    % ans  = 33.4267

    图像区域填充问题与逐步填充的思想

    • 图像有时候会整块的丢失或不再需要(如部分PS或美图软件中的擦除笔功能),此问题本质上也是一个图像填充问题,需要利用已知或未擦除区域对剩余区域进行估计。
    • 反复进行中值滤波,真实值会渐渐渗透到填充区域内部,从而达到图像填充的理想效果。滤波半径尽量大一些

    图像模糊

    卷积

    A = imread('XX.png');
    kernel = fspecial('disk',10);    %对焦不准模糊核,半径为10
    B = imfilter(A,kernel,'replicate'); %复制型边界条件,PSNR=21.05dB

    移动模糊核

    A = imread('XX.png');
    kernel = fspecial('motion',15,90);  %向上平移15格的移动模糊
    B = imfilter(A,kernel,'replicate'); %复制型边界条件,PSNR=23.67dB

    周期型边界条件

    A = imread('XX.png');
    kernel = fspecial('disk',10);  %对焦不准模糊核,半径为10
    C = imfilter(A,kernel,'circular');  %周期型边界条件,PSNR=20.79dB

    MATLAB的图像反卷积函数-deconvreg

    D = deconvreg(B,kernel); %复制型边界恢复效果很差,PSNR=7.79dB
    E = deconvreg(C,kernel); %周期型则几乎完全恢复,PSNR=28.94dB

    MATLAB的盲反卷积函数-deconvblind

    F = deconvblind(B,kernel);   
    % 以kernel为初值,即使与真实的模糊核有差距,边界条件也有一些差距,仍可恢复到勉强的水平。PSNR=22.05dB

    可以将模糊化过程定义为函数句柄,再用cgs,gmres等反问题求解函数来获取较为准确的解。但由于整数化近似带来的误差所造成的的不可逆影响。结果仍然无法得到完全的清晰。PSNR=27.44dB,使用正则化将结果进行分片光滑的逼近可以进一步改善相应的结果。

    - END -

    展开全文
  • 用Excel函数对比数的相同与不同举例:方法:首先,在C1输入公式=MATCH(A1,B:B,)回车后下拉公式,如果返是数字,比如说C1的3说明A1单元格的内容再B列里第3行存在,也就是B3="A"。如果A的内容再B列里没有就返回...

    用Excel函数对比两列数的相同与不同

    举例:

    方法:

    首先,在C1输入公式

    =MATCH(A1,B:B,)

    回车后下拉公式,如果返是数字,比如说C1的3说明A1单元格的内容再B列里第3行存在,也就是B3="A"。如果A列的内容再B列里没有就返回错误值#N/A。

    如果嫌错误值难看,可以将公式改成:

    =ISNUMBER(MATCH(A1,B:B,))

    ISNUMBER判断返回值是不是数字,如果是数字就返回TRUE,反之返回FALSE。

    这个过程也可以用COUNTIF函数来完成。

    C1输入公式=COUNTIF(B:B,A1),下拉即可。如果C列返回的是大于0的数字(因为B列里可能有重复出现A列某个单元格内容)就说明A列内容再B列里出现过,反之是0的话就是没有出现过。

    如果只想在A列标示出哪些内容再B列里出现过怎么办 可以用条件格式。

    首先,从A1开始选中A列数据,点击【开始】-【条件格式】-【新建规则】。

    选择【使用公式确定要设置格式的单元格】。

    输入公式=COUNTIF(B:B,A1)>0,然后点击【格式】按钮。

    选择一个填充颜色,并确定。

    关闭条件格式设置对话框,可以看到A列中在B列存在的内容就都被标上了颜色。

    怎样用IF函数在电子表格中检测两行数据是否一致准确,谢谢!

    假设两个数据分别在A1和B1内,结果放在C1内

    则在c1内输入 =if(a1=b1,"一样","不一样")

    在excel中,如何用if函数求同时满足两个条件的数?

    =IF(AND(A1=B1,A1>C1),"好","")ADN是指1并且满足条件2,则返回 好,否则返回 坏。

    2.=IF(OR(A1=B1,A1>C1),"好","坏")OR则是指满足条件1或者条件2,只要满足两个条件中的一个,则返回 好,否则返回 坏。

    3.=if(条件1,if(条件2,"xxx","yyy"),"zzz")

    excel中if 函数如果有两个条件,怎么输公式

    1.以图中为例,额大于等于【4000】,金为【500】;销售额大于等于【3500】奖励金为【300】;销售额低于【3500】,没有奖励金,所以奖励金为【0】。选中要输入函数公式的单元格,开始输入公式。

    2.输入【=IF】,等于号一定要输入,输入的公式所有的标点符号都是需要用英文输入法输入。

    3.然后输入括号,【(B2>=4000,"500",】,其中,B2单元格为编号为【01】的员工的销售额,填写的条件要由大到小,所以要先输入>=4000,而不是>=3500。

    当销售额大于等于4000时显示【500】,这个【500】在公式中要用英文的双引号输入,然后用英文的逗号分隔开,继续写下一个条件。

    4.重新输入一个条件,需要再输入if和括号,格式跟上一步一样,就是【IF(B2>=3500,"300",】,同样用逗号隔开。

    5.输入最后一个条件【IF(B2<3500,"0"】,输入后不需要再输入逗号,直接输入右边的括号。

    6.因为有三个if条件,所以对应需要在最后保留三个右边的括号,敲回车键确定公式,退出单元格。

    7.选中单元格,可以看到表格上方的完整公式,鼠标放到单元格右下角,出现十字符号时拖动鼠标,复制公式到下面的单元格。

    8.这样表格就制作完成了。

    Excel中,运用IF函数,比较两个单元格数值,以求输出不同的函数值,我输入

    要说错?你公式中个逗号是中文号,全角字符,是不对的,要改成英文中的逗号,半角字符才行。

    还有一个要注意的就是你的A1,B1单元格,必须是数值型,才能够比较大小,若是字符型的则不能直接比较大小,需要用value函数,将它们转换为数值型再比

    展开全文
  • 图像间(或者开关,或者连续)的对比度通过单独出的全白和全黑图像来测量。图像内的对比度是通过测量如由ANSI IT72281997规定的(现在已经撤回,由于投影仪)或者ITUR BT815规定的,单个测试图像中的白色...
  • 大家好,我是琪琪妈妈,今天给大家分享EXCEL的函数功能, 将单元格内的文字数字拆成文字和数值两列。 我们来看案例,表格中某班同学的成绩,姓名和分数在同一单元格内,要把姓名和成绩分开,分别在姓名和成绩两列...
  • BOM对比工具

    2018-03-14 13:28:51
    或 c) 选择BOM存放路经,例如:BOM存放在桌面上,可以直接把BOM拖放至“BOM表地址栏”,如下图: 按照Excel表中内容的设置对应号,如下图: 可根据Excel表中实际情况更改号; d) 点击“开始”按钮进行BOM比对...
  • 由于这是两个单独的,所以似乎没有办法使用VLOOKUP去进行匹配标记,但是你可以使用MATCH+ISNUMBER+IF函数进行判断最里层有MATCH来进行判断,如果存在就会是数字显示右侧表格单元格在左侧表格中的行位.接下来可...
  • css3-多属性

    2020-03-23 22:01:04
    属性 1、column-count 属性规定元素应该被分隔的数 ...效果,分为四数字为几分为几列 2、column-gap 属性规定之间的间隔大小 column-gap:100px;效果和column-gap默认效果对比 3、column-ru...
  • 我有两个表,都是手机号码,其中A表包含B表,两个表的col001列都是手机号,col002b表是数字,a表为0,现在想通过两个表对比,只要是b表在a表中的手机号,那么这个手机号在b表中的col002对应的数字自动更新到a...
  • 对比的架构

    2012-03-22 10:16:18
    对比的架构 锦绣:俺都佩服俺自己了 源明:为什么? 锦绣:小时候,俺最不喜欢数学了,没想到现在整天鼓捣数字,而且进步挺快 源明:呦,还没怎么着,自夸上了 锦绣:你说,是不是俺的数学潜质还没发挥出来呀?...
  • MySQL中不要将字符串与数字比较

    千次阅读 2018-10-25 17:59:57
    得到下面的数据,可以看到第2是字符串类型,明显与整数不相等,但是mysql却当做相等查询了出来,mysql在处理字符串与整形数据对比时,会依次将字符串与整形数据对比,直到字符串不为整数的字母为止! 所以我们在...
  • Excel 对比两列

    2018-06-15 09:32:44
    原文:https://jingyan.baidu.com/article/c843ea0b7a2a7477921e4a47.html首先,在C1输入公式=MATCH(A1,B:B,)回车后...如果A的内容再B列里没有就返回错误值#N/A。如果嫌错误值难看,可以将公式改成:=ISNUMBER(MA...
  • 第二步,在B和D列加数字1,相当于索引,相同的数据长度,做匹配,下图A和C的数据取反了 第三步,数据--筛选,然后过滤掉C数据 最后复制A的数据,已经处理好的数据,到其他页面,验证完成 ...
  • 数组的每行从左到右是递增的,每从上到下是递增的. 在这样的数组中查找一个数字是否存在。 时间复杂度小于O(N) 数组: 1 2 3 4 5 6 7 8 9 正文 思路: 如果一个一个对比的话,时间复杂度为O(n)。 因为对于左上角...
  • R函数对比

    2016-07-12 10:47:40
    apply(data,MARGIN,FUN):MARGIN可取1或2,1表示对行操作,2表示对操作。 sapply(data,FUN,……) : ……是数字则作用到FUN上,比如: sapply(data,sum,1):将把1加到求和后的结果上。 **但是,例外**: sapply(data...
  • 分列时让超过15位的数字不变成科学计数法Excel情报局生产搬运分享Excel基础技能 OFFICE知识新青年用1%的Excel基础搞定99%的日常工作做一个有文艺范的Excel公众号Excel是门手艺玩转需要勇气边听边学,阅读文章更轻松...
  • 在工作中,我们经常需要对比两列数据或...下边分两种情况给大家介绍几种快速对比两列数据的方法:对比An与Bn单元格内容是否相同例如对比下图中一与二两数据是否相同,注意这里对比的是同一行不同的数据,即A...
  • 1.提取A列数字的第7-11位的数字 2.若此数字大于1993 3.则返回20,不然返回0 于是我在B和C列上写了两个函数,分别是MID(A1,7,4) IF(B1>1993,20,0) 但是并没有正确的显示我的结果,因为1987小于1993,应该返回0...
  • 列数字:准确,有科学根据 打比方:天上的星星像一颗颗宝石。作比较:春天的雨细腻柔媚,夏天的雨粗犷热烈。举例子:晕能预示天气。比如,在新疆地区,出现晕就代表将要下雨。(根据大的范围列举相应的例子 举列子 为...
  • Python问题 求两个表格中部分数据交集1....如果A的内容再B列里没有就返回错误值#N/A。2.如果嫌错误值难看,可以将公式改成:=ISNUMBER(MATCH(A1,B:B,))ISNUMBER判断返回值是不是数字,如果是数字就返回T...
  • 批处理学习实例之对比COPY(原创) bat批处理,读取sn.txt文本里的数字序号,查找对应文件夹里含有数字序号的文件COPY到另一目录中 用法:直接另存为bat文件即可。 @echo off dir d:\1\*.* /b >>name.txt #...
  • 从《Thinking in Java》(中文第四版)中第4章的练习10看到“吸血鬼数字”,特编程实现,以下为3种算法(针对四位数的)及其对比: 首先解释一下吸血鬼数字:吸血鬼数字是指位数为偶数的数字,可由一对数字相乘而得到...
  • java导出excel组件alibaba easyexcel和apache poi性能对比 ...其他参数:导出excel是xlsx文本,20,单个数据长度10英文字符或数字 组件 alibaba easyexcel apache poi jvm参数 -Xms500M -Xmx500M -XX:+
  • 1.输入的格式是字符串,需要转换成数; 2.数列中的每个值都是字符串,把字符串用循环拆开,转换成整型,再树立“全字符”规范进行对比; 3.返回的结果为值是字符串类型的列表,通过自定义函数外的for循环输出。 ...

空空如也

空空如也

1 2 3 4 5 ... 17
收藏数 324
精华内容 129
关键字:

对比列数字