机器视觉 生物视觉成像 & 特征提取(不同特征转换到不同空间) & rgb和gray之间的互转

1. 眼睛(生物视觉)和计算机视觉的成像过程(http://blog.csdn.net/zouxy09/article/details/38639349)

 物体发出或者反射的光会被收集和度量,当然了,这里没有特定任务的信息提取的处理。生物视觉系统和人工视觉系统都通过同一种方式来完成这第一个步骤,也就是将这些光投影到一个二维的图像中。对于人眼和摄像头,虽然存在不少差别,但图像信息的处理基本是相同的。通过非常多的感光的细胞或者感光的原件接受光,然后将这些光的强度变成一个二维图像。然后图像的每个点的光强度就保存了某种信息。

       一般来说,投影图像还具有时间和彩色的维度。但我们大部分关注静态和灰度的图像。这个图像可以表示为二维的标量函数I(x,y),也就是给定每个位置(x,y),会得到一个对应的灰度值I(x,y)。尽管位置和灰度值都应该是连续的,但典型的情况是离散采样。也就是说x和y是整数,而灰度值在每个点采样。在数字系统中,采样一般也是矩形。但实际上,生物系统中的空间采集采样并不是矩形的,甚至是无规律的。



2. 特征提取: http://blog.csdn.net/zouxy09/article/details/45276053】

特征脸EigenFace从思想上其实挺简单。就相当于把人脸从像素空间变换到另一个空间,在另一个空间中做相似性的计算。这么说,其实图像识别的基本思想都是一样的,首先选择一个合适的子空间,将所有的图像变换到这个子空间上,然后再在这个子空间上衡量相似性或者进行分类学习。那为什么要变换到另一个空间呢?当然是为了更好的做识别或者分类了。那为什么变换到一个空间就好识别或者分类了呢?因为变换到另一个空间,同一个类别的图像会聚到一起,不同类别的图像会距离比较远,或者在原像素空间中不同类别的图像在分布上很难用个简单的线或者面把他们切分开,然后如果变换到另一个空间,就可以很好的把他们分开了。有时候,线性(分类器)就可以很容易的把他们分开了。那既然人类看起来同类的图像本来就是相似的,不同类的图像就不太相似,那为什么在原始的像素空间他们同类不会很近,不同类不会很远,或者他们为什么不好分开呢?因为图像各种因素的影响,包括光照、视角、背景和形状等等不同,会造成同一个目标的图像都存在很大的视觉信息上的不同。

世界上没有存在任何两片完全相同的叶子,虽然他们都是叶子。万千世界,同一类事物都存在共性,也存在个性,这就是这个世界多彩的原因。那怎么办呢?很自然,只要在我们想要的粒度上把同一类目标的共性找出来就好了,而且这个共性最好和我们要区分的类是不一样的。什么叫我们想要的粒度?我理解和我们的任务相关的。例如我们要区分人和车,那人的共性就是有脸、有手、有脚等等。但如果我们要区分亚洲人和非洲人,那么亚洲人的共性就是黄色皮肤等等。

要变换到什么空间,才具备上述这种良好类内相似、类间区分的效果?到这,我就只能say sorry了。计算机视觉领域发展了几十年,就为了这一个问题倾注了无数研究者的智慧与心血。当然了,也诞生和孕育了很多经典和有效的解答。(个人理解,上述说的实际上就是特征提取)。从一开始的颜色特征(颜色直方图)、纹理特征(Harr、LBP、HOG、SIFT等)、形状特征等到视觉表达Bag of Words,再到特征学习Deep Learning,技术的发展总能带给人希望,曙光也越来越清晰,但路还很远,是不?     

3. 灰度图转化为rgb(http://www.ilovematlab.cn/thread-141180-1-1.html)

根据阈值重新设定该坐标的RGB矩阵。

在第一个区间内: f(y,x,1) = 255;  f(y,x,2) = 0;  f(y,x,3) = 0; (显示红色)
在第二个区间内: f(y,x,1) = 0;  f(y,x,2) = 255;  f(y,x,3) = 0; (显示绿色)
在第三个区间内: f(y,x,1) = 0;  f(y,x,2) = 0;  f(y,x,3) = 255; (显示蓝色)

最后f 矩阵就是恢复后的RGB图像

matlab代码:

  1. % By lyqmath @ Matlab中文论坛
  2. clc; clear all; close all;
  3. I = imread('rice.png');
  4. I1 = I; I2 = I; I3 = I;
  5. I1(I1>60 & I1<120) = 255;
  6. I2(I2>20 & I2<50) = 255;
  7. I3(I3>80 & I3<160) = 255;
  8. J = cat(3, I1, I2, I3);
  9. figure;
  10. subplot(1, 2, 1); imshow(I, []); title('By lyqmath 原图', 'FontWeight', 'Bold', 'Color', 'r');
  11. subplot(1, 2, 2); imshow(J, []); title('By lyqmath 彩色图', 'FontWeight', 'Bold', 'Color', 'r');

4.  3D重构 【立体成像原理:http://www.doc88.com/p-183639630081.html ]

在眼睛中成像都是二维的,利用视差在眼睛中生成2张图,而大脑合成后形成立体感。

目前所有的3D影像 需要通过眼镜才能成3D的像

  3D电影: 是电影播放两个源,有一定视差,然后戴偏振光眼镜,而电影仍然是2个有视差的二维平面图

    3D游戏: 不是平面,三维可以旋转都能全方位看到各个组件。  3d 游戏是画面从二维平面图像变维三维透视图像

http://blog.csdn.net/timidsmile/article/details/8180178


3D重构,一般都是通过两个(模拟人的双眼)或者多个摄像头来获取图像,再配准的。当然,也有研究单张图像的,但是都会对场景做很多的假设,例如由明暗恢复形状shape from shading(SFS)(利用单幅图像中物体表面明暗变化恢复其表面各点的法向方向进而求得其相对高度),运用光学辅助等,使用有很大的局限性。现在呢,就有很多的深度摄像头出来了,例如kinect,但还是两个摄像头(一个彩色,一个红外用于测图像深度,也就是测场景中物体到相机的距离)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值