C#图像的平移和镜像处理程序设计(8)
时间:2017-06-01 11:15 来源:毕业论文 作者:毕业论文 点击:次
2) 对于平移后的坐标的横坐标在零与图像的宽度之间的并且纵坐标在零与图像的高度之间的处理方法:先把要平移的图像按照坐标分割分成横坐标的间隔为1的整数和纵坐标的间隔为1的整数的一个个小方块,然后把小方块的像素值全部放在一个字节数组中,这个字节数组的长度为图像的宽度乘以图像的高度,然后一行一行的来利用字节来复制像素,对于一个横坐标为j、纵坐标为i的像素用字节数组的下标表示为j+i*curBiemap.Width在横坐标平移了x、纵坐标平移了y之后的像素用字节数组的下标表示为j+x+(i+y)* curBitmap.Width,然后复制,用数学表达式表示为:平移前的坐标为(j,i),平移后的坐标为(j+x,i+y),平移之前的像素存放在名为grayValues字节数组中,平移之后的像素存放在名为tempValues字节数组中,则表示为tempArray[(j + x) + (i + y) * curBitmap.Width] = grayValues[j + i * curBitmap.Width]。 图像镜像处理算法 镜像是一个物体相对于一个镜面的复制品。图像镜像分为水平镜像和垂直镜像两种。水平镜像就是将图像左半部分和右半部分以图像垂直中轴线为中心镜像进行对换,垂直镜像就是将图像上半部分和下半部分以图像水平中轴线为中心镜像进行对换。 设图像的宽度为W,则水平镜像变换的映射关系如下: {█(〖 x〗^'=W-x@ y^'=y)┤ (2.10) 水平镜像用矩阵形式表示为: [■(〖 x〗^'@ y^'@1)]=[■(-1&0&W@0&1&0@0&0&1)][■(x@y@1)] (2.11) 相应的逆运算矩阵表示如下: [■(x@y@1)]=[■(-1&0&W@0&1&0@0&0&1)][■(〖 x〗^'@ y^'@1)] (2.12) 我们可以发现水平镜像变换的向前映射与向后映射关系式相同。 设图像的高度为H,则垂直镜像变换的映射关系如下: (责任编辑:qin) |