用OpenCV搜索整个图像中的nxn像素
如标题中所述,我正试图找到迭代灰度图像并创建用OpenCV搜索整个图像中的nxn像素,opencv,Opencv,如标题中所述,我正试图找到迭代灰度图像并创建nxn内核扫描像素值的最佳方法。主要目标是创建最小/最大过滤器,并将其扩展到自定义中值过滤器 我已经为3x3创建了一个硬编码的解决方案,但是有很多代码,将其扩展到5x5将是一个痛苦的过程 我想知道OpenCV是否有任何功能可以管理这样的任务 可以与矩形遮罩一起使用吗 编辑:我基本上想要的是以下内容 将矩形从图像复制到子图像 确定/分析子图像中像素的最小值或最大值 编辑(测试): for(int y=1;y P>定义C++中的矩形区域是非常容易的。 cv
nxn
内核扫描像素值的最佳方法。主要目标是创建最小/最大过滤器,并将其扩展到自定义中值过滤器
我已经为3x3创建了一个硬编码的解决方案,但是有很多代码,将其扩展到5x5将是一个痛苦的过程
我想知道OpenCV是否有任何功能可以管理这样的任务
可以与矩形遮罩一起使用吗
编辑:我基本上想要的是以下内容
图像
复制到子图像
子图像中像素的最小值或最大值
for(int y=1;y0){
图像在(x,y)=uchar(最大值);
}
}
}
}
<代码> > P>定义C++中的矩形区域是非常容易的。
cv::Mat subImage = image(cv::Rect(upper_left_x,upper_left_y,ROI_width,ROI_height));
应允许您根据需要处理子图像
如果您需要的是中值滤波器,OpenCV也具有该功能:
cv::medianBlur(image, outputImage, n);
对于nxn过滤器。关于这个函数的更多文档可以在我上面第一条评论的链接中找到。你要找的函数是什么?@Hammer,你指的是哪个函数?我指的是腐蚀和扩张,它们将内核中的所有值设置为该内核中的最大值或最小值。Smooth还有一个中间值选项,我认为它符合您的要求。我将查看文档,特别是BaseFilter和FilterEngine类。看起来您可以创建一个自定义子类来完成您需要的任务。@Aurelius,我意识到我的问题可能比我想象的要简单。感兴趣区域(ROI)与我需要的类似,但此函数来自较旧的API。我可以从我的图像中剪下一块(矩形天使)作进一步分析吗?你能回顾一下我问题中的代码吗?这是我尝试使用ROI的结果,但并没有达到我想要的结果。我发现了错误。我颠倒了x和y。虽然我在边境有问题。你能澄清一下你在“边境”有什么问题吗?
cv::medianBlur(image, outputImage, n);