最近,我正在OpenCV中阅读cv::getRectSubPix
的代码,该代码涉及从图像中处理矩形。具体来说,我被困在函数adjustRect
上,该函数用于重塑矩形矩形窗口。
根据{{1}}的代码,如果adjustRect
(红色框)如下,则矩形的左上角p=(x,y)
将移至p'=(-x,-y)
(蓝色框):
让我感到困惑的是p
的最后一行:
adjustRect
为什么return src - rect.x*pix_size;
仅沿src
方向移动?据我了解,正确的代码应为:
x
此外,如果return src - rect.x*pix_size-rect.y*src_step
和src
均为负,我认为x
将指向未定义的内存。有人可以帮忙吗?
答案 0 :(得分:0)
基本上,adjustRect
应该与getRectSubPix_Cn_
中的代码一起考虑。当像素矩形不在图像中时,OpenCV将采用不同的插值策略。
索引像素时它将正确取消引用,因为:
s0 = src[r.x*cn + c]*b1 + src2[r.x*cn + c]*b2; .