二维数组作图像帧时,如何判断坐标点不处于帧上方或后方?
二维图像数组的索引边界检查(下限处理)
首先明确:大部分编程语言中,二维数组的索引是从0开始的,对于定义为I[NROWS][NCOLS]的图像帧来说,合法的索引范围是:
- 行索引:
0 ≤ row < NROWS - 列索引:
0 ≤ col < NCOLS
你当前的判断条件row <= NROWS && col <= NCOLS其实存在上限判断错误(最大合法索引是数组长度减1),不过针对你问的避免点位于帧的上方或后方的需求,核心是补充下限检查:
完整的合法索引判断逻辑
要确保I[row][col]完全在图像帧内,需要同时满足上下限的判断:
row >= 0 && row < NROWS && col >= 0 && col < NCOLS
如果你的场景中数组索引是从1开始的(比如某些特定业务逻辑或老语言),合法范围则是1 ≤ row ≤ NROWS和1 ≤ col ≤ NCOLS,此时完整判断条件为:
row >= 1 && row <= NROWS && col >= 1 && col <= NCOLS
关键说明
row >= 0(或row >= 1):避免索引超出帧的上方(行索引小于起始值)col >= 0(或col >= 1):避免索引超出帧的后方(列索引小于起始值)- 结合上限判断,就能彻底防止数组越界访问的问题。
内容的提问来源于stack exchange,提问作者Still_using_training_wheels
相关产品推荐
相关产品推荐

