Chinaunix首页 | 论坛 | 博客
  • 博客访问: 279441
  • 博文数量: 109
  • 博客积分: 2116
  • 博客等级: 大尉
  • 技术积分: 1062
  • 用 户 组: 普通用户
  • 注册时间: 2009-10-22 15:38
文章分类

全部博文(109)

文章存档

2013年(2)

2011年(16)

2010年(90)

2009年(1)

我的朋友

分类:

2011-01-05 19:15:10

原理
图像的翻转有两种,一种是水平翻转,一种是垂直翻转。水平翻转会产生左右对调的图像,垂直翻转会产生上下对调的图像。

水平翻转代码
void ICETEKDM6437B2Mirror(unsigned char * src, unsigned char * dst, short nPixelsPerLines, short nDisWinWidth, short nDisWinHeight)
{
    int mi,mj;
    unsigned char *psrc,*pdst;

    for(mj = 0 ; mj < nDisWinHeight ; mj++)
    {
        pdst = dst + nDisWinWidth * 2;
        psrc = src;

        for ( mi=0;mi        {
            pdst -= 4;
            pdst[0] /* cr */ = *psrc++;  /* cr */
            pdst[3] /* y2 */ = *psrc++;  /* y1 */
            pdst[2] /* cb */ = *psrc++;  /* cb */
            pdst[1] /* y1 */ = *psrc++;  /* y2 */
        }

        src += nPixelsPerLines * 2;
        dst += nPixelsPerLines * 2;
    }
}
垂直翻转代码
void ICETEKDM6437B2Mirror(unsigned char * src, unsigned char * dst, short nPixelsPerLines, short nDisWinWidth, short nDisWinHeight)
{
    int mi,mj;
    unsigned char *psrc,*pdst;
    unsigned char string[720*2];//临时空间

    for(mj = 0 ; mj < nDisWinHeight ; mj++)
    {
        psrc = src;
        pdst = dst + (nDisWinHeight-mj-1) * nDisWinWidth * 2;

        memcpy(string, psrc, nDisWinWidth * 2);
        memcpy(psrc, pdst, nDisWinWidth * 2);
        memcpy(pdst, string, nDisWinWidth * 2);

        src += nPixelsPerLines * 2;
      //dst += nPixelsPerLines * 2;
    }
}
阅读(916) | 评论(0) | 转发(0) |
0

上一篇:图像线性变换

下一篇:图像灰度直方图

给主人留下些什么吧!~~