滤波操作涉及卷积,位置(x,y)
的滤波值也取决于(x-a,y-b)
与a,b >0
像素的强度。
因此,直接使用相同的图像作为目的地将导致意外的行为,因为在计算过程中,我使用一些已经过滤的数据而不是原始数据。
问题 opencv
是否在cv::GaussianBlur(.)
, cv::blur
等功能中内部管理此问题?对src
和dst
参数引用相同的Mat
是否安全?由于
可以,这样做不会有任何问题。这种事我已经做过好几次了。openCV会自动处理的
我测试了下面的代码,它工作完美:
int main(int argc, char* argv[])
{
Mat src;
src = imread("myImage.jpeg", 1);
imshow("src", src); //Original src
cv::blur( src, src, Size(25,25) , Point(-1,-1), BORDER_DEFAULT );
imshow("dst", src); //src after blurring
waitKey(0);
}