0

变量T和总是大于 0,max_gray是一个存储 0-255 值的向量。如果可能,请解释原因,因为它在 CodeBlocks 中似乎可以正常工作,但这对我来说没有意义,因为它们来自不同的类型:一种是,另一种是.qtd_pxnumeros_pxunsigned charunsigned charint

void filtro(unsigned char *numeros_px, int qtd_px, int T, int max_gray){
    int i;
    for(i=0; i<qtd_px; i++){
        if(numeros_px[i]>= T) numeros_px[i]=max_gray;
        else numeros_px[i]=0;
    }
}
4

1 回答 1

1

是的,您可以将 char 分配给 int,因为 char 是 8 位宽,整数是 32(取决于架构,但在 PC 和 32 位 ARM 上,它是 32 位宽。在某些芯片上是 16 位)

您不能做的是相反的事情,因为显然您可能会丢失数据。*在你的代码中这是不好的:* 32 位,你把它放到一个 8 位变量中。如果<255这不是问题numeros_px[i]=max_gray;max_greymax_grey

于 2013-09-04T20:26:01.713 回答