Skip to content

Commit 194b480

Browse files
committedMar 9, 2020
Fix MedianSideWindowFilter.cpp
1 parent 36f0e62 commit 194b480

File tree

1 file changed

+17
-4
lines changed

1 file changed

+17
-4
lines changed
 

‎MedianSideWindowFilter.cpp

+17-4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
1+
#include <stdio.h>
2+
#include <iostream>
3+
#include <immintrin.h>
4+
#include <opencv2/opencv.hpp>
5+
using namespace cv;
6+
using namespace std;
7+
8+
9+
110
//针对灰度图的中值滤波+CVPR 2019的SideWindowFilter
211
//其他种类的滤波直接换核即可
312

@@ -78,7 +87,8 @@ Mat MedianSideWindowFilter(Mat src, int radius = 1) {
7887
for (int x = -radius; x <= radius; x++) {
7988
for (int y = -radius; y <= radius; y++) {
8089
//if (x == 0 && y == 0) continue;
81-
if (filter[k][id]) now.push_back(src.at<uchar>(i + x, j + y) * filter[k][id++]);
90+
if (filter[k][id]) now.push_back(src.at<uchar>(i + x, j + y) * filter[k][id]);
91+
id++;
8292
//val += src.at<uchar>(i + x, j + y) * filter[k][id++];
8393
}
8494
}
@@ -96,7 +106,8 @@ Mat MedianSideWindowFilter(Mat src, int radius = 1) {
96106
for (int x = -radius; x <= radius; x++) {
97107
for (int y = -radius; y <= radius; y++) {
98108
//if (x == 0 && y == 0) continue;
99-
if(filter[pos][id]) now.push_back(src.at<uchar>(i + x, j + y) * filter[pos][id++]);
109+
if(filter[pos][id]) now.push_back(src.at<uchar>(i + x, j + y) * filter[pos][id]);
110+
id++;
100111
//val += src.at<uchar>(i + x, j + y) * filter[k][id++];
101112
}
102113
}
@@ -127,7 +138,8 @@ Mat MedianSideWindowFilter(Mat src, int radius = 1) {
127138
for (int y = -radius; y <= radius; y++) {
128139
//if (x == 0 && y == 0) continue;
129140
//val += src.at<Vec3b>(i + x, j + y)[c] * filter[k][id++];
130-
if (filter[k][id]) now.push_back(src.at<Vec3b>(i + x, j + y)[c] * filter[k][id++]);
141+
if (filter[k][id]) now.push_back(src.at<Vec3b>(i + x, j + y)[c] * filter[k][id]);
142+
id++;
131143
}
132144
}
133145
sort(now.begin(), now.end());
@@ -145,7 +157,8 @@ Mat MedianSideWindowFilter(Mat src, int radius = 1) {
145157
for (int y = -radius; y <= radius; y++) {
146158
//if (x == 0 && y == 0) continue;
147159
//val += src.at<Vec3b>(i + x, j + y)[c] * filter[k][id++];
148-
if (filter[pos][id]) now.push_back(src.at<Vec3b>(i + x, j + y)[c] * filter[pos][id++]);
160+
if (filter[pos][id]) now.push_back(src.at<Vec3b>(i + x, j + y)[c] * filter[pos][id]);
161+
id++;
149162
}
150163
}
151164
sort(now.begin(), now.end());

0 commit comments

Comments
 (0)
Please sign in to comment.