如标题中所述,我试图找到迭代灰度图像并创建nxn
内核以扫描像素值的最佳方法。主要目标是创建一个最小/最大过滤器,并将其扩展到自定义中值过滤器。
我已经为 3x3 创建了一个硬编码的解决方案,但是有很多代码,将其扩展到 5x5 将是一个痛苦的过程。
我想知道 OpenCV 是否有任何可以管理此类任务的功能?
minMaxLoc 可以以某种方式与矩形掩码一起使用吗?
编辑:我基本上想要的是以下
- 将一个矩形从 复制
image
到subImage
。 - 确定/分析像素的最小值或最大值
subImage
。
编辑(测试):
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);
}
}
}
}