【问题标题】:GrayScale Image Flip in c or c++?c 或 c ++ 中的灰度图像翻转?
【发布时间】:2012-09-29 01:58:01
【问题描述】:

我正在尝试水平翻转灰度图像。指针 fp 指向原始图像,指针 fp1 正在创建水平翻转的图像。程序正常执行,但输出图像最差...

    for( i =0 ;i<width ; i++)
     for(j=0; j <height; j++)
              idata[i][height - 1 -j] = ( (unsigned char)fgetc(fp));
    //flipping image          
for( i =0 ;i<width ; i++)
     for(j=0; j <height; j++)
              putc(idata[i][j] , fp1);                

图像的标题副本没有问题。我认为问题出在 for 循环中...请帮助我

【问题讨论】:

    标签: c++ c image grayscale


    【解决方案1】:

    您确定没有混淆宽度和高度吗?代码似乎假设数据是按列顺序读取的,而数据很可能是按行顺序读取的。尝试翻转 for 循环和翻转维度,如下所示:

    for(j = 0; j < height; j++)
        for(i = 0; i < width; i++)
            idata[width - 1 - i][j] = ( (unsigned char)fgetc(fp));
    
    //flipping image          
    
    for(j = 0; j < height; j++)
        for(i = 0; i < width; i++)
            putc(idata[i][j] , fp1);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-27
      • 2016-09-07
      相关资源
      最近更新 更多