精华内容
下载资源
问答
  • 作为个电脑技术男,有时候并不能顺利的理解技术之外的世界 ------ 人的世界。毕竟电脑的本质,只有0和1。无论从单片机,手机,电脑还是巨型机,中央处理器(CPU)处理的不过就是0和1。再无其他。这的确有时候想...

        作为一个电脑技术男,有时候并不能顺利的理解技术之外的世界 ------ 人的世界。毕竟电脑的本质,只有0和1。无论从单片机,手机,电脑还是巨型机,中央处理器(CPU)处理的不过就是0和1。再无其他。这的确有时候想起来会让我们科幻迷失望。整日面对非0即1,非黑即白,非此即彼的技术世界,再看看人类这个物种的千奇百怪,偶尔会感到十分沮丧。想在人类世界中顺利的做事,弄明白人和事理,远比搞清楚技术与工程困难。

        每个人都在迷宫里。技术宅男有技术宅男的困惑。屌丝有屌丝的迷茫。女神也一样有女神的困扰。比如屌丝为地下室的阴冷苦恼,女神为礼物是富二代的宝马而不是他的爱情而哭泣。

        如果不是运气特别不好,我们身边总会有一位或多位过来人,告诉我们路该怎样走会比较快捷。他们有时候是父母,有时候是某位长者。有时候一个道理一听之下,我们轻而易举地明白。 但其实离真正理解,还有无限远的距离。一个极为简单的例子:人应该有思维高度。 这句话无比简单,大家都认可。不过,什么叫高度?什么样的人做什么样的事,怎么去思考事理,就叫有高度了? 诸如此类的例子很多。

     

        为了描述这种感觉,我举个例子。相信所有对享受思考乐趣的人,这是个不错的话题。

        中学我们学习过基本几何知识。一根线,代表的是一维的几何世界。一个面,代表的是二维。一个立方体盒子,代表三维的几何结构(也就是我们现实世界)。

        在一维的世界中,只有唯一一个纬度的移动方向。那就是沿着这根直线移动。注意这根线没有宽度。是无限细的。 假如这个一维世界居住着居民,这个世界的居民只有长度(一根线段)。他们只能顺着直线走来走去。一旦一个居民挡在前面,那么他身后的居民永远无法越过他。因为一维世界没有宽度。居民的眼睛也只能看到前方与后方。

        同样在二维世界中,有了2个纬度。 这个世界的居民就类似生活在一片无限大无限薄的纸片上。这个世界的居民有2个纬度,长和宽。于是居民的形状可以是任意的二维面片。圆,方,五角,或象剪纸那样任意复杂的图样。居民的眼镜如同比目鱼,只能看到前后左右,因为世界没有高度。居民可以在这个平面上任意游走,但是永远不会有厚度。也无法脱离这个平面。

        来到我们熟悉的三维世界,由于有了长宽高3个纬度。于是我们的世界成为了我们世界的模样…… 我们能感知前后,左右,上下。我们能用x,y,z三个数字代表我们这个世界中任意一点位置。假如我们人类去看二维世界的居民,那会类似象在看一群永远趴在地面蠕动的甲虫。这些甲虫只知道在地面上爬来爬去。从不知道往天上看。 如果我们有能力去看见一维世界的居民,那会如同动画片里的景象,一段段的线段在一条无限细的线里面前后移动。

        接下来考验你思维能力的时候到了。 有了一、二、三纬几何世界的概念,为什么不能有四维五纬或者六维的世界?大自然就必须是三维的么?如果有人看过《三体》,应该了解另外一个技术宅对四维几何空间的幻想。在《三体》里,没有什么物理常数是不可改变的。说来也对,凭什么我们这个世界的光速就是30万公里/秒,而不是29万公里/秒或者31万公里/秒呢? 同样为啥宇宙就非得是3维空间的。难道不能是4维或者2维的么。。。(我一定不会和你提《生活大爆炸》里面谢尔多研究的具有11维度的超弦理论的)

        做了那么多铺垫,现在让我们想象一下四维几何世界的样子。 为了想象4维几何世界,我们用一个简单的方法。 想象一维世界时我们用一根线段。想象二维世界我们用一张正方形纸片。三维世界用一个立方体盒子。 四维世界也一样,我们只用想象一个四维盒子就可以了。由于我们人类只能理解三维世界,所以只能从低维往高维去尝试。

        以下是想象的推导:

    我们用一维的线段构建二维的正方形。把一根线段,复制一根。沿着第二维方向平行延展一段距离。这个距离长度和线段一样。这样我们有了2根平行的线段。这两根平行线段构成了一个面,也就是二维世界。两根线段的两端,再用两根一样的线段垂直连接上,这时我们有了一个正方形。这个正方向就在我们构建的二维世界上。

    大概是这样:

    ---------

    |         |

    |         |

    |--------

    接下来,用二维世界构建三维。 同样做法,我们复制已经有的这个正方形。沿着第三维(也就是高),平行移动一段距离(这段距离和正方形边长一样)。现在我们就有了2个平行的正方形。我们再用4个一样的正方形,把这平行正方形四条边垂直的连接起来,于是我们得到了一个立方体!这就是现实三维世界里的盒子。

    大概是这样

    \----------\

    | \            \

    |    -----------\

    |   |              |

    |   |              |

    \   |              |

      \|------------

     

     

     

    同样,利用以上的做法,用三维构建四维。我们把三维世界的一个立方体盒子,复制一个,然后往第四维的方向平行移动。。。。。。

    到了这里,我们发现脑子卡壳了。

     

        其实,人类是无法真正想象出第四维的。第四维对人类大脑是陌生且永远无法具象化。因为就像生活在二维平面的甲虫,永远看不到高度。它们眼中只有前后左右。我们生活在三维的人类,也永远想象不出第4个维度。但是不妨碍我们对它进行字面描述。

        假设复制的盒子向第4维平行移动了一个立方体边长的距离。为了构建四维盒子,我们还是按照从二维构建三维立方体的做法一样,我们要用6个三维立方体,连接已有2个立方体的6个面。这样,一个四维盒子就构建成了。可以看成上下2个立方体是盒子的底和盖子。它们俩的6个面由6个立方体连接。

        这是由8个三维立方体垂直组成了8个“面”的四维盒子。犹如三维立方体是由6个二维正方形垂直组成。二维正方形是由4根一维线段垂直组成。(其实一维线段可以看做由2个零维的点连接构成)

     

        看,我们可以很容易的从字面描述一个四维“四方体盒子”的构建。 但是我们大脑永远无法想象和理解这么个玩意儿。 

        借助计算机,也许我们可以绘制出这个四维盒子在三维世界中的投影,再通过三维到二维投影显示在屏幕上。不过,这个经过数次投影的图案,也完全无法通过我们大脑还原回它在四维空间的样子。

     

        这个冗长的例子说明了,其实有些人世间的道理也是一样的。字面上极其容易理解。但我们大脑对这个道理的真正参悟,那就是另外一回事了。有时候,也许一辈子都无法真正理解,犹如人类无法理解四维几何空间的一个盒子一样。

     

        所以,说到思维高度这个问题,我更倾向认为它是个思维维度问题。有时候过来人看到的景象,了解的原理,是在另外一个维度上。虽然真正理解它不应象理解四维几何世界那么绝望。但是难度也异常巨大。这个例子只是想说明,并不是看不到的就不存在。只不过有些事理,以你我的水平无法理解而已。

    转载于:https://www.cnblogs.com/puzzy3d/p/3339940.html

    展开全文
  • :野指针: char *ptr; 定个指针,没有赋值,用NULL。 char *ptr = NULL 即表示指向空,不能再做赋值,不能对0地址操作访问。   //#define NULL (void *)o 如果出现段错误,看看对NULL有没有赋值。 ...

    一:野指针:

    char *ptr

    定一个指针,没有赋值,用NULL

    char *ptr = NULL 即表示指向空,不能再做赋值,不能对0地址操作访问。

     

    //#define NULL void *o

    如果出现段错误,看看对NULL有没有赋值。

     

    如何避免野指针而不是杜绝:

    1.如果没有对指针进行赋值,可把指针指向空,可避免野指针

    2.如果出现段错误,可查看有没有对NULL进行赋值

    3.当你要把指针指向的空间赋值时,应先分配一下空间

     

    char *ptr=hello world

    *ptr=L

    不对,会出现段错误,ptr是个常量,没有办法赋值。

     

    ptr=char *malloc100*sizeofchar);蓝色部分是为了增加可移植性

    指针必须是相同类型赋值,如果不是相同类型1.会越界2.取数据不完整

     

    void*:称为万能指针

    缺点:不能作取值操作

     

     

     

    二:获取字符串的两种方法。以及malloccallocralloc的使用注意点

    获取字符串两种方法

    1.char ptr[100];

      1#include<stdio.h>

      2 #include<stdlib.h>

      3 #define MAX_SIZE 1024

      4 int main()

      5 {

      6     char *ptr=(char *)malloc(MAX_SIZE*sizeof(char));   malloc分配内存空间。

      7     if(NULL==ptr)

      8     {

      9         printf("malloc error!\n");         看内存是否分配成功。

     10         exit(1);

     11     }

     12         //memset(ptr,'\0',sizeof(ptr));     其中‘\0’是表示拿0来填充这100个字节。

     13         memset(ptr,'\0',sizeof(char)*MAX_SIZE);    指把空间全部清空。

     14         //bzero(ptr,MAX_SIZE)

     15         scanf("%s",ptr);

     16         printf("ptr=%s\n",ptr);

    17         free(ptr);     释放空间。释放以后,ptr没值了,但是还保存了原来的地址,      如果不置为空,会变成野指针

     18         ptr=NULL;

     19         return 0;

     20 }

    malloc的头文件#include<stdlib.h>

     

    用了空间再用一次的时候一定要记得清空

     

    通常都是先分配空间,然后检验空间是否分配成功,把空间里面的残留元素都清空,然后初始化,再释放,最后再初始化。

    通常用memset来初始化一块内存。

     

     

    mallocrelloccalloc的区别。

    char *ptr=(char *)malloc(MAX_SIZE*sizeof(char));

    char *ptr=(char *)calloc(20,sizeof(char));

     

    1. malloc不能初始化所分配的内存空间,而函数calloc能。如果malloc函数分配的内存空间原来没有被使用过,则其中的每一位可能都是0;反之,如果这部分内存曾经被分配过,则其中可能遗留各种各样的数据,也就是说,使用malloc函数的程序开始时(内存还没有被重新分配)能正常进行,但经过一段时间(内存已经被重新分配,可能会出现一些问题)。

    2. calloc会将所分配的空间中的每一位都初始化为零,也就是说如果你是字符类型或整数类型的元素分配内存,那么这些元素将保证会被动的初始化为0,如果你为指针类型的元素分配内存,那么这些元素通常会被初始化为空指针。如果你为实型元素分配内存,则这些元素会被初始化为浮点型的0。

    3. realloc可以对给定的指针所指向的空间进行扩大或缩小,无论是扩大还是缩小,原有的内存中的内容将保持不变对于缩小,则被缩小的那一部分的内容将会丢失,realloc并不保持调整后的内存空间和原来的 内存空间保持同一内存地址,realloc返回的指针很可能指向新的地址。

     

    实现原理

    malloc、calloc函数的实质体现在,它有一个将可用的内存连接为一个长长的链表(即所谓的空闲链表)。调用malloc函数时,它沿连接表寻找一个大到足以满足用户请求所需要的内存块,然后将该内存块一分为二(一块的大小与用户申请的大小一样,另一块就是剩下的字节),接下来,将分配给用户的那块内存传给用户,并将剩下的那块(如果有的话),返回到链表上,调用free函数 时,它将用户释放的内存块连接到空链上,到最后,空闲链表会被切成很多的小内存片段,如果这时用户申请一个大的内存片段,那么空闲链上可能没有可能满足用户要求的片段了,于是malloc函数请求延时,并开始在空间中翻箱倒柜的检查内存片段,对它们进行整理,并将相邻的小空闲块合成较大的内存块

     

    三.指针转换的表现形式以及二维数组三维数组的详解

    指针+整数:加步长

    指针+指针:指两个地址之间相差的数据类型的个数


     

      1#include<stdio.h>

      2 #define MAX_SIZE 3

      3 int main()

      4 {

      5     int a[MAX_SIZE]={0};

      6     int *p=a;

      7     scanf("%d",&a[i]);

      8     scanf("%d",a+i);

      9     scanf("%d",p+i);

     10     scanf("%d",p);

     11     scanf("%d",p++);

     12     scanf("%d",&p[i]);

     13     scanf("%d",a++);error 错的因为a是数组的首地址,没有办法自加。

             指针常量,保存的是数组a的首地址。

     14     p=a;

     15     for(i = 0; i < MAX_SIZE; i++)

     16     printf("a[%d]=%d\n",a[i]);

     17     printf("a[%d]=%d\n",p[i]);

     18     printf("a[%d]=%d\n",*(p+i));

     19     printf("a[%d]=%d\n",*(a+i));

     20     printf("a[%d]=%d\n",*(p++));

     21     printf("a[%d]=%d\n",)

     22 }

     

     

    对数组地址取值:为数组首元素的地址

    对数组名取地址:为数组的地址

    变量存数,指针变量存的是地址

    指针数组:array of pointers,即用于存储指针的数组,也就是数组元素都是指针

    数组指针:a pointer to an array,即指向数组的指针

    函数指针:保存的函数地址

    总之一句话,定义了指针一定要知道指针指向哪里,不然要悲剧。

                           

    二维数组可以省略列不可以省略行

     

     

    二维数组名,a代表首个一维数组的地址。

    二维数组的单位是一个一维数组。

    scanf("%d",&a[i][j]);

    printf("a[%d][%d]"=%d\n",i,j,a[i][j]);

    scanf("%d",*(a+i)+j);

    printf("a[%d][%d]"=%d\n",i,j,*(*(a+i)+j));

    *(*(a+i)+j):

    a+i:第i+1个一维数组的地址。

    *(a+i):第i+1个一维数组首元素的地址

    *(a+i)+j:第i+1个一维数组第j+1个元素的地址

    *(*(a+i)+j):第i+1个一维数组第j+1个元素的值

     

    三维数组:a代表首个二维数组的地址


    *(&a)=a:为首个一维数组的地址

     

    *(*(*(a+i)+j)+k)

    a+i:第i+1个二维数组的地址。

    *(a+i):第i+1个二维数组的第一个一维数组的地址

    *(a+i)+j:第i+1个二维数组的第j+1个一维数组的地址

    *(*(a+i)+j):第i+1个二维数组第j+1个一维数组的首元素的地址

    *(*(a+i)+j)+k:第i+1个二维数组第j+1个一维数组第k+1个元素的地址

    *(*(*(a+i)+j)+k):第i+1个二维数组第j+1个一维数组第k+1个元素的值

     

    sizeof里面存放的是字节

    []=*()

     

    四.

    函数中传送和接受的对应

    1传一维数组名,用元素指针来接

    2传二维数组名,用一维数组指针来接

    3传三维数组名,用二维数组指针来接

    4.指针数组,用指针的指针来接。

    void print_src(char(*src)[100])

    void print_ktc(char(*ktr)[3][100])

    指针就是间接性的访问。

     

    数组和指针的区别:

      数组要么在静态存储区被创建(如全局数组),要么在栈上被创建。数组名对应着(而不是指向)一块内存,其地址与容量在生命期内保持不变,只有数组的内容可以改变。

    指针可以随时指向任意类型的内存块,它的特征是“可变”,所以我们常用指针来操作动态内存。指针远比数组灵活,但也更危险。

     

     

     

                                     

    展开全文
  • 在MATLAB中,每个图形窗口只能有个色图。 色图是m×3的数值矩阵,它的每行是RGB三元组。色图矩阵可以人为地生成,也可以调用MATLAB提供的函数来定义色图矩阵。 色图代表的就是个映射(彩色映射),它不是...
        色图(color map)MATLAB系统引入的概念。在MATLAB中,每个图形窗口只能有一个色图   
        色图是m×3 的数值矩阵,它的每一行是RGB三元组。色图矩阵可以人为地生成,也可以调用MATLAB提供的函数来定义色图矩阵。    
        色图代表的就是一个映射(彩色映射),它不是连续函数类型的映射,而是用一个有三列的矩阵来代表,这三列分别代表颜色的R、G、B分量。
     

    1、数字图像处理中的应用:生成伪彩色图像

     

        索引图像(伪彩色图像)有两个分量,即整数矩阵X和彩色映射矩阵map。映射矩阵map是一个大小为m行3列,且范围在[0,1]之间的浮点值构成的double类二维数组。map的每一行都定义单色的红、绿、蓝三个分量。索引图像将亮度值(灰度)“直接映射”到彩色值。每个像素的颜色有对应的整数矩阵X的值作为指向map的一个指针决定。
    下面是常用颜色的RGB值

     

    这种映射,一般是一种多对一的映射,当colormap的行数m比较小时,图像上的多个灰度值就会映射到一个颜色。例如:假设灰度图X只有4个像素,它们的值分别为1,64,128,256。若指定彩色映射map=[0 0 0;0.9 0.9 0.9],则所有X中的值为1的元素会指向该图map的第一行(黑色),其他所有元素都会指向第二行(浅灰色)。下面是代码演示:
    X = [1,65;128,256];
    map = [0 0 0;0.9 0.9 0.9];
    imtool(X,map);
    参考自:《数字图像处理Matlab》,冈萨雷斯,P147 

    在数字图像中,它可以利用它将灰度图映射为伪彩色图像,如下图:

    A = imread('pout.tif') ; 
    % 第一步 显示图像
    imshow(A);colorbar
    % 第二步
    colormap jet  % 内置的colormap
    % 第三步
    colormap autumn  % 内置的colormap
    % 第四步  % 返回到原图
    colormap gray  内置的colormap
     
    下面是Matlab内置的Colormap

     

    应用2、更美观地展示你的三维图像

     

    通过上面的展示,我们其实可以把图像上的“灰度值”看做普通三维图像的Z轴。利用colormap可以将Z轴高度/值映射为对应的颜色;
     
    使用系统内置的colormap
    syms x y;
    ezmesh(x*exp(-x^2-y^2),[-2.5,2.5],40);
    colormap(hot);
     
    自定义colormap
    syms x y
    ezmesh(x*exp(-x^2-y^2),[-2.5,2.5],40)
    colormap([0,1,0.5 ;1,0,0]) % 分成两部分,分别映射成红色和绿色
    syms x y
    ezmesh(x*exp(-x^2-y^2),[-2.5,2.5],40)
    colormap([0,1,0.5;1,0,0;0,0,0])        
    % 分成3部分,由图可以看出是按函数值的大小映射颜色
     
    %来一个更漂亮的
    surf(peaks);
    mymap = [0 0 0;1 0 0;0 1 0;0 0 1;1 1 1];
    colormap(mymap);
     
     
    应用3、绘制动图
    慢慢更新。。。
     
     
     
     

    转载于:https://www.cnblogs.com/stxs/p/8617250.html

    展开全文
  • (1)SO(3)为三纬旋转矩阵构成的特殊正交群。 根据群的定义(种结合加一种运算),书中定义式式4.1可以表示集合,运算选择乘法; 将以上依次代入性质群性质1-4,性质12显然满足;选幺元为3*3单位阵I3×3I_{3\times...

    前言

    书中这部分讲的太快,并且未能和已有知识做足够的联系,乍看起来还是有点不好理解的。
    但如果联系了实际的物理意义以及向量叉乘等已有知识后,就变得好理解了。
    另外,推导公式的确有利于理解,作者或许也是为此才出的这些习题吧。
    推导过程中用到的知识:
    1、分块矩阵运算。
    2、向量叉积性质,二重叉积、反交换律等。
    文中推导,均是笔者手推,水平有限,如有纰漏,还望不吝赐教。

    1、验证SO(3)、SE(3)和Sim(3)关于乘法成群。

    (1)SO(3)为三纬旋转矩阵构成的特殊正交群。
    根据群的定义(一种结合加一种运算),书中定义式式4.1可以表示集合,运算选择乘法;
    将以上依次代入性质群性质1-4,性质12显然满足;选幺元为33单位阵I3×3I_{3\times3},性质34显然也满足;
    (2)SE(3)为变换矩阵构成的特殊欧氏群。
    根据群的定义,书中定义式式4.2表示群的集合,运算选择乘法;
    性质1 显然。
    性质2 矩阵的结合律也容易得到(可以展开看看,一目了然)。
    性质3 选幺元为4
    4单位阵I4×4I_{4\times4},显然满足。
    性质4 根据分块矩阵求逆公式[AC0B]1=[A1A1CB10B1]\begin{bmatrix} A & C \\ 0 & B \end{bmatrix}^{-1}=\begin{bmatrix} A^{-1} & -A^{-1}CB^{-1} \\ 0 & B^{-1} \end{bmatrix}
    T1=[R1R1t0T1]T^{-1}=\begin{bmatrix} R^{-1} & -R^{-1}t \\ 0^T & 1 \end{bmatrix}
    显然T1T^{-1}也属于SE(3),并且TT1=I4×4TT^{-1}=I_{4\times4},于是性质4满足;
    (3)仿照(2)很容易可以验证。

    2、验证(R3,R,×)(\mathbb{R}^3, \mathbb{R}, \times)构成李代数。

    将此李代数视为3维向量,利用向量相关性质,性质1-3均容易得到。
    对于性质4,利用向量二重叉积公式,将下面三式相加,立得。
    在这里插入图片描述
    值得一提的是,向量点积结果为标量,满足交换律。

    3、验证so(3)\mathfrak{so}(3)se(3)\mathfrak{se}(3)满足李代数要求的性质。

    (1)so(3)\mathfrak{so}(3)
    先来看看其李括号是啥意思
    在这里插入图片描述
    根据上面的推导,结合问题2,性质1-4容易得到。
    (2)se(3)\mathfrak{se}(3)
    性质1-3容易得到,讨论性质4。
    其中利用了(1)中所推导的李代数so(3)\mathfrak{so}(3)的李括号为矢量叉积。
    在这里插入图片描述

    4、验证性质(4.20)和(4.21)

    (1)性质(4.20)直接展开即可得到。
    (2)性质(4.21)也很明显,书中写的比较清楚了,
    记得用aTa=03×1a^Ta^\wedge=0_{3\times1}就行了,直接展开立即得到。

    5、证明RpRT=(Rp)Rp^\wedge R^T=(Rp)^\wedge

    这实际属于向量的相似变换,
    可以参考我讲角速度相似变换定理的博文: 角速度的相似变换定理的证明.

    6、xx

    (1)对于SO(3)的伴随性质
    根据P79的(4.22),
    在这里插入图片描述
    (2)对于SE(3)的伴随性质
    Step1 由定义,可得
    在这里插入图片描述
    Step2 等式左边
    在这里插入图片描述
    Step3 等式右边
    在这里插入图片描述
    其中,
    在这里插入图片描述
    于是等式右边化简为,
    在这里插入图片描述

    Step4 比较等式左右两边
    在这里插入图片描述

    7、在这里插入图片描述

    (1)SO(3)
    在这里插入图片描述
    其中隐含了扰动是小量,在进行指数映射忽略了二阶小量,可以回到定义式,一目了然。
    (2)SE(3)
    在这里插入图片描述

    8、cmake的find_package()指令

    可参考博文:: Cmake语句find_package()函数.

    展开全文
  • 篇 基础篇 第1章 开发基础 第2章 ArcGIS Engine中的控件 第3章 几何对象和空间坐标系 第4章 地图组成及图层控制 第5章 地图制图 第6章 空间数据管理 第7章 数据编辑 第8章 栅格数据 第9章 三可视化 第1章 开发...
  • (1)面向局部区域的大比例尺二维平面:高斯投影(横轴墨卡托) 说明:在市级的小范围区域的GIS系统,比如规划局、国土局、建设局的系统,大都使用高斯投影,以便与地方地形图测绘、工程报建一直采用的坐标系相...
  • 深度学习-神经网络

    2019-07-25 13:23:19
    层是通过数据张量的运算实现,因此神经网络完全由系列的张量运算组成,而这些张量运算是输入数据的几何变换。可以将神经网路解释为高纬空间中非常复杂的几何变换,这种几何变化可以通过许多步骤来...
  • 部分:化繁为简,突破个人生产力挑战 在接下来的内容里面,其实我们想跟大家来谈一下为什么Office要有全新的种用户界面。正像我刚才提到一样,随着国际化的发展,包括一体化的趋势,每个员工,无论是高成本...
  • 神舟系列飞船介绍--转自百度百科

    千次阅读 2008-09-28 10:21:00
    转贴:http://baike.baidu.com/view/35233.html?wtp=tt 目录神舟一号神舟号神舟三号神舟号神舟五号神舟六号神舟七号神舟飞船构成舱段介绍宇航员的不同舱段介绍宇航员的不同 编辑本段神舟一号 发射...
  • openCV矩阵操作

    万次阅读 2013-08-07 08:49:10
    有很多函数有mask,代表掩码,如果某位mask是0,那么对应的src的那位就不计算,mask要和矩阵/ROI/的大小相等 大多数函数支持ROI,如果图像ROI被设置,那么只处理ROI部分 少部分函数支持COI,如果COI设置,只处理...
  • 兴业研发晨会纪要2008年 10月 30日

    万次阅读 2008-10-31 07:58:00
    兴业研发晨会纪要2008年 10月 30日星期 兴业研发晨会纪要2008年 10月 30日星期 股票市场 概览涨跌幅(%) 指数 收盘 1日1周 海外成熟市场 兴业视点 道琼斯指数 8990.96 -0.82 5.54 标普 500指数 930.09 -1.11 ...
  • C语言实现分三列显示的万年历

    千次阅读 2018-05-30 12:38:23
    printf(" 五 六 日*** 五 六 日*** 五 六 日\n"); //显示日历本层核心行第1行(本日历每层核心行共六行) printf(" "); printblank(week); for(i1=1;i1;i1++)printf("%2d ...
  • 能够让人飞起来的东西很棒,因为飞机和火车事实上是一维的运动,你自己开车你可能变成二维的运动,自由地飞起来就是三维的运动。而且喷漆背包会比轴小一些,所以我更喜欢它。 关于我们 Makerpapa创客老爹是...
  • 诺禾致源学习笔记

    千次阅读 2019-03-03 22:40:17
    操作:在第行后追加行。(在第行之前是i) 1.5.6.1 sed的定位 sed 第行表示: 1 最后行表示: $ 正则匹配: /REGEXP/ 步长处理: first~step 选择选定行和后面几行: addr,+N 1.5....

空空如也

空空如也

1
收藏数 16
精华内容 6
关键字:

一维二维三维四维都是什么