我正在尝试水平翻转灰度图像。指针 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 循环中...请帮助我
最佳答案
你确定你没有混淆宽度和高度吗?该代码似乎假设数据最有可能按行顺序读取时按列顺序读取。尝试翻转 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);
关于c++ - C 或 C++ 中的灰度图像翻转?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12788132/