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);
}
}
}
}