带指针参数的函数调用异常求助(附图像棕褐色滤镜代码)
带指针参数的函数调用异常求助(附图像棕褐色滤镜代码)
各位大佬好!我正在实现图像的棕褐色滤镜功能,目前大部分逻辑都写出来了,但其中一个带指针参数的函数调用总是出问题,卡了好半天都没搞定,来这儿求助大家!
先给大家看下我的代码,这段代码的作用是对图像每个像素计算棕褐色蓝色通道的值,然后通过自定义函数确保数值不超过255的上限:
// 这段代码用于图像滤镜处理 // 定义变量缩短代码行数 int b = image[i][j].rgbtBlue; int g = image[i][j].rgbtGreen; int r = image[i][j].rgbtRed; int bound = 255; // 用于取整的变量 float Sb = .272 * r + .534 * g + .131 * b; int tempSb = .272 * r + .534 * g + .131 * b; // 四舍五入到最近整数 if (Sb != tempSb && Sb >= tempSb + 0.5) { tempSb++; } // 检查取整后的数值是否超过上限,超过则设为上限值 void nohigherthan_int(&bound, &tempSb); // 设置像素的棕褐色蓝色通道值 image[i][j].rgbtBlue = tempSb; // 定义用于限制数值上限的函数 void nohigherthan_int(int *a, int *b) { if (*a <= *b) { *b = *a; } }
我现在最头疼的就是这个nohigherthan_int函数的调用部分,总觉得指针参数的传递哪里有问题,运行的时候要么直接报错,要么处理后的图像数值不对。有没有大佬能帮我排查下问题所在呀?
备注:内容来源于stack exchange,提问作者user28014007
相关产品推荐
相关产品推荐

