c - 图像翻转不正确...为什么?

标签 c image struct flip

我试图在 Y 轴上翻转我的图像,它确实翻转了,但它在中间和右侧留下了奇怪的空间,它不会完美地翻转整个图像,我将图像限制为 450 450和一个P3...任何人都有任何想法,因为我的算法是正确的

for(j=0; j < imgur.width/2; j++)
  {
     for(i=0; i < imgur.height; i++)
        {
           temp.red = imgur.image[i][j].red;
           imgur.image[i][j].red = imgur.image[i][imgur.height-j-1].red;
           imgur.image[i][imgur.height-j-1].red = temp.red;

           temp.green = imgur.image[i][j].green;
           imgur.image[i][j].green = imgur.image[i][imgur.height-j-1].green;
           imgur.image[i][imgur.height-j-1].green = temp.green;

           temp.blue = imgur.image[i][j].blue;
           imgur.image[i][j].blue = imgur.image[i][imgur.height-j-1].blue;
           imgur.image[i][imgur.height-j-1].blue = temp.blue;
     }
  }

这是我的算法...在此之前,我打印出 P3、注释、宽度和高度以及 maxColor。我正在使用两个结构来获取数据并从终端读取文件... 这是我打印数据的方式。有人有主意吗?

 for(i=imgur.height-1; i >= 0; i--)
  {
     for(j=0; j < imgur.width; j++)
        {
           printf("%i\n", imgur.image[i][j].red);
           printf("%i\n", imgur.image[i][j].green);
           printf("%i\n", imgur.image[i][j].blue);
        }
  }

最佳答案

我的对称检测器被(上半部分)弄糊涂了

for(j=0; j < imgur.width/2; j++) {
  for(i=0; i < imgur.height; i++) {

和(在下部)

for(i=imgur.height-1; i >= 0; i--) {
  for(j=0; j < imgur.width; j++) {

关于c - 图像翻转不正确...为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20498673/

相关文章:

C:sha256 哈希函数在结构体数组的字段中输出,导致将结构体内容写入磁盘时崩溃

c - 如何确定 malloc 将分配在不同的区域

c - 18f4620 上的 Microchip TCPIP 堆栈

image - 寻找图像比较/模式识别库

javascript - css - 以较少的服务器请求频繁更改图像

php - 带有 alpha 颜色的 imagerotate 不起作用

c - 在平台上获取可移植的、更大更快的(无符号)整数类型

java - Python、Java、C : Pass by Reference or Pass by Value Differences

go - 有没有更好的方法来遍历结构的字段?

C++结构数组定义