当前位置:文档之家› 射影几何几何运算

射影几何几何运算

数字图像处理
几何运算
1.引言
几何运算与点运算不同,它可改变图象中物体(像素)之间的空间关系。这种运算可以看成将各像素 在图像内移动的过程。 几何变换是图像处理和图像分析的重要内容,按照变换性质可以分为位置变换、形状变换以及复合变 换。图像几何变换是指用数学建模的方法来描述图像位置、大小、形状等变化的方法。 几何变换常用于摄像机的几何校正过程,这对于利用图象进行几何测量的工作是十分重要的。在实际
3.几何变换基础
2.欧式几何是几何学的一门分科。又称欧几里德几何。公元前3世纪,古希腊数学家欧 几里德(英文Euclid,希腊文Ε'νκλειδη)把人们公认的一些几何知识作为定义和公理, 在此基础上研究图形的性质,推导出一系列定理,组成演绎体系,写出《几何原本》, 形成了欧氏几何。在其公理体系中,最重要的是平行公理,由于对这一公理的不同认 识,导致非欧几何的产生。按所讨论的图形在平面上或空间中,分别称为“平面几何” 与“立体几何”。欧几里德几何指按照欧几里德的《几何原本》构造的几何学。欧式 几何有时就指平面上的几何,即平面几何。三维空间的欧式几何通常叫做立体几何。 数学上,欧式几何是平面和三维空间中常见的几何,基于点线面假设。数学家也用这 一术语表示具有相似性质的高维几何。
称为旋转变换矩阵(因子),θ 为旋转角度。
cos sin 0 sin cos 0 0 1 0
ห้องสมุดไป่ตู้
图像旋转变换程序
void RotIamge(const Mat &srcImage, Mat &dstImage, double angle) { //弧度 double sita = angle * CV_PI / 180; double a = (srcImage.cols - 1) / 2.0; double b = (srcImage.rows - 1) / 2.0; int srcRow = srcImage.rows; int srcCol = srcImage.cols; double x1 = -a * cos(sita) - b * sin(sita); double y1 = -a * sin(sita) + b * cos(sita); double x2 = a * cos(sita) - b * sin(sita); double y2 = a * sin(sita) + b * cos(sita); double x3 = a * cos(sita) + b * sin(sita); double y3 = a * sin(sita) - b * cos(sita); double x4 = -a * cos(sita) + b * sin(sita); double y4 = -a * sin(sita) - b * cos(sita); int w1 = cvRound(max(abs(x1 - x3), abs(x4 - x2))); int h1 = cvRound(max(abs(y1 - y3), abs(y4 - y2))); dstImage.create(h1, w1, srcImage.type()); ...... }
4.图像中的几何变换
3.缩放变换 将图像乘以一定系数,从而产生新图像的过程。缩放算法是设某点坐标,在x轴方向扩 大 sx倍,y轴方向扩大 sy倍,[x0,y0]为变换前坐标, [x1,y1]为变换后坐标。x1 = sx*x0; y1 = sy*y0。尺度缩小的变换:按照一定的间隔选取某些行和列的像素构成新的图像。新 图像会出现空行和空列,需要用插值的方法加以填补,但存在“马赛克”现象,图像 的细节将变得不明显。尺度放大的变换:在一些点处可能找不到图像原像,就需要进 行近似处理。 其非齐次表示矩阵表示为: 其齐次表示矩阵表示为: 0 0 x0 x1 s x x1 s x 0 x0 y 0 s 0 y0 1 y y 0 s y 0 1 y 0 1 1 0 1 矩阵:
2.知识点
一、几何变换基础知识 齐次坐标 欧式几何 变换矩阵 二、图像中的几何变换 平移变换 旋转变换 缩放变换 仿射变换 射影变换 三、总结
x s cos y s sin 1 0 x a11 a12 y a a22 21 0 1 0 x h11 h12 y h h 21 22 1 h31 h32
x1 cos y sin 1
矩阵:
sin x 0 y cos 0
其齐次表示矩阵表示为: x1 cos sin 0 x0 y sin cos 0 y0 1 0 1 1 0 1
4.图像中的几何变换
2.旋转变换 旋转变换是由一个图形改变为另一个图形,在改变过程中,原图上所有的点都绕一个 固定的点换同一方向,转动同一个角度。旋转变换是欧氏几何中的一种重要变换。在 欧氏平面上(欧氏空间中),让每一点P绕一固定点(固定轴线)旋转一个定角,变成另一 点P′,如此产生的变换称为平面上(空间中)的旋转变换。此固定点(固定直线)称为旋转 中心(旋转轴),该定角称为旋转角。而且旋转是第一种正交变换。 其非齐次表示矩阵表示为:
sx 0 0
0 sy 0
0 0 1
称为缩放变换矩阵(因子),sx和sy为缩放量。
图像缩放变换程序
//最近邻插值的实现代码 void NearstInterpolation(const Mat& srcImage, Mat &dstImage, double kx, double ky) { CV_Assert(srcImage.data != NULL); double inv_kx = 1.0 / kx; double inv_ky = 1.0 / ky; int srcRowNum = srcImage.rows; int srcColNum = srcImage.cols; int dstRowNum = cvRound(srcImage.rows * ky); int dstColNum = cvRound(srcImage.cols * kx); dstImage.create(dstRowNum, dstColNum, srcImage.type()); for(int i = 0; i < dstRowNum; i++) { int y = cvRound(i * inv_ky); if(y > srcRowNum - 1) y = srcRowNum - 1; for(int j = 0; j < dstColNum; j++) { int x = cvRound(j * inv_kx); if(x > srcColNum - 1) x = srcColNum - 1; dstImage.at<Vec3b>(i, j) = srcImage.at<Vec3b>(y, x); } } }
s sin s cos 0 tx x ty y 1 1 h13 x h23 y h33 1
tx x ty y 1 1
3.几何变换基础
1.齐次坐标在电脑图形内无处不在,因为该坐标允许平移、旋转、缩放及透视投影等 可表示为矩阵与向量相乘的一般向量运算。例如,在透视投影里,空间中的位置与该 位置至称为“投影中心”的固定点间的线相关联。该点可透过找出平面与该线之相交 点被映射至该平面上。这是三维物件如何呈现于眼上的一精确表示。在最简单的情况 下,投影中心会是圆点,而点会映射至平面z= 1上,如同在笛卡儿坐标上时一样。对 空间内的一点(x,y,z),其线与平面相交的点为(x/z,y/z, 1)。删掉现在显得多余的 z 坐标, 即变成(x,y,z)。在齐次坐标里,二维点(x,y)的齐次坐标表示为(hx,hy,h)。空间点(x,y,z)表 示为(xw,yw,zw,w),且该点映射至平面上的点表示为(xw,yw,zw)。由此可以看出,一个 向量的齐次表示是不唯一的,齐次坐标的h取不同的值都表示的是同一个点,比如齐次 坐标(8,4,2)、(4,2,1)表示的都是二维点(4,2)。
称为平移变换矩阵(因子),tx和ty为平移量。
图像平移变换程序
void ImageTranslation2(const Mat& src, Mat& dstImage, int Xoffset, int Yoffset) { int nRowNum = src.rows + abs(Yoffset); int nColNum = src.cols + abs(Xoffset); dstImage.create(nRowNum, nColNum, src.type()); for (int i = 0; i < nRowNum; i++) { int y = i - Yoffset; for (int j = 0; j < nColNum; j++) { int x = j - Xoffset; if (x > 0 && x < src.cols && y > 0 && y < src.rows) { dstImage.at<Vec3b>(i, j) = src.at<Vec3b>(y, x); } } } }
4.图像中的几何变换
1.平移变换 初始坐标为(x0,y0)的点经过平移(tx,ty)(以向右,向下为正方向)后,坐标变为(x1,y1)。这 两点之间的关系是x1=x0+tx ,y1=y0+ty。图像的平移变换就是将图像中的所有像素点按 照给定的平移量进行水平(x方向)和垂直(y方向)移动。平移变换分为两种类型: 图像大小变化和图像大小不变。第一种类型保证图像平移的完整信息,第二种图像的 原始信息部分可能丢失。 其非齐次表示矩阵表示为: 其齐次表示矩阵表示为:
相关主题