C表算法(访问网格的某些单元格)

时间:2015-05-22 15:18:24

标签: c algorithm

所以这就是我的问题:enter image description here

我有这个像素网格,我逐个阅读,每个像素都有一个RGB值。我想要做的是计算所代表的颜色组中的每一个(所以3x3),然后我想将其添加,以计算像素组的RGB,然后我必须将其转换为ASCII。所以基本上将9个像素降级为1并将其转换为ASCII字符,然后转到下一组,但我真的不知道它背后的逻辑,这是我的代码:

void izvedi1 (int visina, int sirina, FILE *in, FILE *o,
              int znak, int n, int* tab)
{
    int* tab2 = calloc(10000, sizeof(int));
    int count = 0;
    int num = 0;
    for(int i = 0; i < visina; i++) {
        for(int j = 0; j < sirina; j++) {
            unsigned char r = fgetc(in);
            unsigned char g = fgetc(in);
            unsigned char b = fgetc(in);
            znak = (r+g+b)/3;
            tab[count] = znak;
            count++;
        }
    }
    for (int i = 0; i < visina; i+=n) {
        for (int j = 0; j < sirina; j+=n) {
            for (int k = 0; k < n; k++) {
                for (int l = 0; l < n; l++) {
                    tab2[num] += tab[k];
                }
           }
           fprintf(o, "%c", assign(tab2[num]));
        }
        fprintf(o,"\n");
    }

    fclose(in);
    fclose(o);      
}

0 个答案:

没有答案