下标值既不是数组也不是指针,也不是C程序中的向量

彼得·M

我有一个传递了大小为448x448的img_ptr的程序,该程序分为4个相等的部分,每个角均应用了滤镜,现在我尝试使用每个存储在subBlock subBlockList []中的4个部分一起将图像重新重建;

我被抛出此错误:每行的“错误:下标值既不是数组,也不是指针,也不是向量”:“ subImageTempHolder [i] [j] = subBlockList [x] .vertMask [i] [j]

我怀疑它与指针有关,该如何纠正。

子块结构

struct subBlock {
    unsigned char *horizMask;
    unsigned char *vertMask;
    unsigned char *combMask;
    float localMean;
    float localSD;
    float localMedian;
};
static struct subBlock subBlockList[4];
#define BLOCK_ROW 224 //sub-block row
#define BLOCK_COL 224 //sub-block col
#define imageSize 448

该结构的每个位置都占总图像的四分之一,如下所示:

subBlockList [0] .vertMask包含一个无符号char * 2d(大小为224x224的数组)NW值

subBlockList [1] .vertMask包含一个未签名的char * 2d(大小为224x224的数组)NE值

subBlockList [2] .vertMask包含未签名的char * 2d(大小为224x224的数组)SW值

subBlockList [3] .vertMask包含未签名的char * 2d(大小为224x224的数组)SE值

将4个部分放回一个image_ptr中的函数(一个抛出错误)

image_ptr buildImage(){
   image_ptr retVal; // contains the image pointer to return
   unsigned char subImageTempHolder[imageSize][imageSize];
   int subBlockSize = 224;
        //NW Corner
        for (int i=0; i< subBlockSize; i++) { // 0<224
            for (int j=0; j< subBlockSize; j++){ // 0<224
                   subImageTempHolder[i][j] = subBlockList[0].vertMask[i][j];
            }
        }
        //NE Corner
        for (int i=0; i< subBlockSize; i++) { //0 <224
            for (int j=subBlockSize; j< imageSize; j++){ //224 < 448
                subImageTempHolder[i][j] = subBlockList[1].vertMask[i][j];
            }
        }
        //SW Corner
        for (int i=subBlockSize; i< imageSize; i++) { //224 <448
            for (int j=0; j< subBlockSize; j++){ //0 < 224
                subImageTempHolder[i][j] = subBlockList[2].vertMask[i][j];
            }
        }
        //SE Corner
        for (int i=subBlockSize; i< imageSize; i++) { //224 < 448
            for (int j=subBlockSize; j< imageSize; j++){ //224 <448
                subImageTempHolder[i][j] = subBlockList[3].vertMask[i][j];
            }
        }
        retVal = (image_ptr) subImageTempHolder;
        return retVal;
}

设置如下:

subBlockList[blockPos].vertMask = verticalMask(block); 
//I didnt include the function using line above ^ but you should get the idea.


unsigned char* verticalMask(unsigned char paramBlock[BLOCK_ROW][BLOCK_COL]) {
    unsigned char retVal[BLOCK_ROW][BLOCK_COL]; //return value
    double pixelVal;
    double min = DBL_MAX;
    double max = -DBL_MAX;
    //3x3 Gy Sobel Mask
    int Gy[3][3];
    Gy[0][0] = 1; Gy[0][1] = 2; Gy[0][2] = 1;
    Gy[1][0] = 0; Gy[1][1] = 0; Gy[1][2] = 0;
    Gy[2][0] = -1; Gy[2][1] = -2; Gy[2][2] = -1;

    //filtering
    for (int y = 0; y<= BLOCK_COL-1; y++) {
        for (int x=0; x <= BLOCK_ROW-1; x++) {
            pixelVal = 0.0;
            for (int i = -1; i <= 1; i++) {
                for (int j = -1; j <= 1; j++) {
                    pixelVal += Gy[i+1][j+1] * paramBlock[y+i][x+j];
                }
            }
            if (pixelVal < min) {
                min = pixelVal;
            }
            if (pixelVal > min) {
                max = pixelVal;
            }
        }
    }
    if((int)(max - min) == 0) {
        printf("Error nothing exists");
    }

    //generate image
    for (int y = 1; y < BLOCK_COL - 1; y++) {
        for (int x = 1; x < BLOCK_ROW - 1; x++) {
            pixelVal = 0.0;
            for (int j = -1; j <= 1; j++) {
                for (int i = -1; i <= 1; i++) {
                    pixelVal += Gy[j + 1][i + 1] * paramBlock[y + j][x + i];
                }
            }
            pixelVal = max * (pixelVal - min) / (max - min); //MAX_BRIGHTNESS
            retVal[y][x] = (unsigned char)pixelVal;
            }
        }
    return retVal;
}

这是vertMask[i][j]subBlockList[0].vertMask[i][j]

subBlockList[0]返回struct subBlock.vertMask是无符号字符的数组。.vertMask[i]返回第i个unsigned char.vertMask.vertMask[i][j]要求的第j个元素unsigned char没有意义。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C:下标值既不是数组也不是指针

来自分类Dev

C下标值既不是数组也不是指针也不是向量

来自分类Dev

矩阵乘积导致错误:下标值既不是数组也不是指针也不是向量

来自分类Dev

下标值既不是数组也不是指针,也不是带有argv的向量

来自分类Dev

错误-下标值既不是数组也不是指针也不是向量

来自分类Dev

如何解决“下标值既不是数组也不是指针也不是向量”

来自分类Dev

C错误:行梯形形式的“下标值既不是数组也不是指针”

来自分类Dev

二维数组错误:下标值既不是数组,也不是指针,也不是矢量

来自分类Dev

分配数组元素值时,C下标值既不是数组,也不是指针,也不是矢量

来自分类Dev

分配数组元素值时,C下标值既不是数组,也不是指针,也不是矢量

来自分类Dev

值既不是数组也不是指针

来自分类Dev

订阅值既不是数组也不是指针

来自分类Dev

“错误:下标值不是数组、指针或向量”,我使用的是字符串

来自分类Dev

错误:下标的值不是内核中的数组,指针或向量

来自分类Dev

既不是句法也不是语义的错误?

来自分类Dev

当 ParamType 既不是指针也不是引用时自动类型推导

来自分类Dev

如何在C#中检查给定的双数是否正常,即既不是零,次正规,无穷也不是NaN

来自分类Dev

ID既不是DataColumn也不是Table的DataRelation

来自分类Dev

既不是nth-child也不是nth-of-type

来自分类Dev

在脚本错误中创建设置-'既不是多维数据集中的维也不是层次结构'

来自分类Dev

在脚本错误中创建设置-'既不是多维数据集中的维也不是层次结构'

来自分类Dev

“数组下标不是整数” c

来自分类Dev

“数组下标不是整数” c

来自分类Dev

在函数“ test”中调用React Hook“ useState”,该函数既不是React函数组件也不是定制的React Hook函数

来自分类Dev

在函数“ age”中调用React Hook“ useContext”,该函数既不是React函数组件也不是定制的React Hook函数

来自分类Dev

在函数“ shoes”中调用React Hook“ useEffect”,该函数既不是React函数组件也不是自定义React Hook

来自分类Dev

在函数“ appBar”中调用React Hook“ useStyles”,该函数既不是React函数组件也不是自定义的React Hook函数

来自分类Dev

在函数“ onSubmit”中调用React Hook,该函数既不是React函数组件也不是自定义的React Hook函数

来自分类Dev

在函数“ deviceStatus”中调用React Hook“ useState”,该函数既不是React函数组件也不是自定义React

Related 相关文章

  1. 1

    C:下标值既不是数组也不是指针

  2. 2

    C下标值既不是数组也不是指针也不是向量

  3. 3

    矩阵乘积导致错误:下标值既不是数组也不是指针也不是向量

  4. 4

    下标值既不是数组也不是指针,也不是带有argv的向量

  5. 5

    错误-下标值既不是数组也不是指针也不是向量

  6. 6

    如何解决“下标值既不是数组也不是指针也不是向量”

  7. 7

    C错误:行梯形形式的“下标值既不是数组也不是指针”

  8. 8

    二维数组错误:下标值既不是数组,也不是指针,也不是矢量

  9. 9

    分配数组元素值时,C下标值既不是数组,也不是指针,也不是矢量

  10. 10

    分配数组元素值时,C下标值既不是数组,也不是指针,也不是矢量

  11. 11

    值既不是数组也不是指针

  12. 12

    订阅值既不是数组也不是指针

  13. 13

    “错误:下标值不是数组、指针或向量”,我使用的是字符串

  14. 14

    错误:下标的值不是内核中的数组,指针或向量

  15. 15

    既不是句法也不是语义的错误?

  16. 16

    当 ParamType 既不是指针也不是引用时自动类型推导

  17. 17

    如何在C#中检查给定的双数是否正常,即既不是零,次正规,无穷也不是NaN

  18. 18

    ID既不是DataColumn也不是Table的DataRelation

  19. 19

    既不是nth-child也不是nth-of-type

  20. 20

    在脚本错误中创建设置-'既不是多维数据集中的维也不是层次结构'

  21. 21

    在脚本错误中创建设置-'既不是多维数据集中的维也不是层次结构'

  22. 22

    “数组下标不是整数” c

  23. 23

    “数组下标不是整数” c

  24. 24

    在函数“ test”中调用React Hook“ useState”,该函数既不是React函数组件也不是定制的React Hook函数

  25. 25

    在函数“ age”中调用React Hook“ useContext”,该函数既不是React函数组件也不是定制的React Hook函数

  26. 26

    在函数“ shoes”中调用React Hook“ useEffect”,该函数既不是React函数组件也不是自定义React Hook

  27. 27

    在函数“ appBar”中调用React Hook“ useStyles”,该函数既不是React函数组件也不是自定义的React Hook函数

  28. 28

    在函数“ onSubmit”中调用React Hook,该函数既不是React函数组件也不是自定义的React Hook函数

  29. 29

    在函数“ deviceStatus”中调用React Hook“ useState”,该函数既不是React函数组件也不是自定义React

热门标签

归档