我目前正在运行filter2D
以使图像卷积内核:
cv::filter2D(source,
dest,
CV_64F,
kernal,
cv::Point(-1,-1),
0,
cv::BORDER_CONSTANT);
但是,我对使用内核卷积整个图像不感兴趣,我只想在源图像上的给定像素处运行卷积。
这可能吗?
答案 0 :(得分:2)
答案很简单,来自文档enter link description here:
注意当源图像是较大图像的一部分(ROI)时,该函数将尝试使用ROI外部的像素来形成边框
所以解决方案是:
cv::Point point(x, y);
Mat onePixelSourceROI(source, cv::Rect( point, cv::Size(1, 1) ));
cv::filter2D(onePixelSourceROI,
dest,
CV_64F,
kernal,
cv::Point(-1,-1),
0,
cv::BORDER_CONSTANT);