我试图水平翻转灰度图像。指针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循环中... plz帮助我
答案 0 :(得分:3)
你确定你没有混合宽度和高度吗?代码似乎假设当数据最有可能按行顺序时,按列顺序读取数据。尝试翻转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);