我正在尝试水平翻转灰度图像。指针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循环中...请帮帮我
发布于 2012-10-09 03:35:37
你确定你没有把宽度和高度搞混了吗?代码似乎假定数据是按列顺序读取的,而数据很可能是按行顺序读取的。尝试翻转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);https://stackoverflow.com/questions/12788132
复制相似问题