Изображение GrayScale Отразить в c или c ++?

Я пытаюсь перевернуть изображение в оттенках серого по горизонтали. Указатель 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);

в заголовочной копии изображения нет проблем. Я думаю, что проблема заключается в петле … Пожалуйста, помогите мне

0

Решение

Вы уверены, что не смешиваете ширину и высоту? Код, кажется, предполагает, что данные читаются в порядке столбцов, когда они, скорее всего, в порядке строк. Попробуйте перевернуть циклы 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);
3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]