正如标题中所述,我试图找到迭代通过灰度图像并创建nxn
内核以扫描像素值的最佳方式。主要目标是创建最小/最大过滤器,并将其扩展到自定义中值过滤器。使用OpenCV在整个图像中搜索nxn像素
我已经为3x3创建了一个硬编码解决方案,但是很多代码并将其扩展为5x5将是一个痛苦的过程。
我想知道OpenCV是否有任何功能可以管理这样的任务?
minMaxLoc可以以某种方式与矩形面具一起使用吗?
编辑:我基本上要跟随
- 复制从
image
一个rectangel到subImage
。 - 确定/分析
subImage
中像素的最小值或最大值。
EDIT(试验):
for(int y = 1; y < image.rows - 1; y++) {
for(int x = 1; x < image.cols - 1; x++) {
if(int(image.at<uchar>(x,y)) == 0) {
double maxValue = 0;
Rect roi(y-1,x-1,3,3);
Mat image_roi = image(roi);
minMaxLoc(image_roi, NULL, &maxValue, NULL, NULL);
if (maxValue > 0) {
image_new.at<uchar>(x,y) = uchar(maxValue);
}
}
}
}
are [these](http://opencv.willowgarage.com/documentation/image_filtering.html)功能你在找什么? – Hammer
@Hammer,你指的是哪个函数? – JavaCake
我指的是侵蚀和扩张,它们将内核中的所有值设置为该内核中的最大值或最小值。平滑也有一个中位数选项,我认为你做的是你要找的。 – Hammer