正如標題中所述,我試圖找到迭代通過灰度圖像並創建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