Где не указан этот вопрос, просто строится сверху CameraCaptureActivity
в рамках проекта grafika, найденного на github.Android - эффект гауссовского размытия - OpenGL
Он имеет встроенный эффект размытия, который использует 3х3 ядру
kernel = new float[] {
1f/16f, 2f/16f, 1f/16f,
2f/16f, 4f/16f, 2f/16f,
1f/16f, 2f/16f, 1f/16f };
Однако этот эффект размытия не является достаточно сильным, им ищет что-то вроде того, что гауссова эффект может сделать на прошивке с UIVisualEffectView
, это выглядит что-то вроде этого:
Хорошего гладкого тяжелого эффекта размытия, но до сих пор лучший ив удался это:
Как вы можете видеть это не является столь же гладким, а также немного квадратным.
я достиг этого путем преобразования в 5x5 ядра, генерируемого с использованием этого handy tool с сигма 30 и размера ядра из 5. Он производит следующее:
kernel = new float[] {
0.039911f, 0.039978f, 0.04f, 0.039978f, 0.039911f,
0.039978f, 0.040044f, 0.040067f, 0.040044f, 0.039978f,
0.04f, 0.040067f, 0.040089f, 0.040067f, 0.04f,
0.039978f, 0.040044f, 0.040067f, 0.040044f, 0.039978f,
0.039911f, 0.039978f, 0.04f, 0.039978f, 0.039911f
};
Для того, чтобы получить, чтобы работать в пределах Grafika
проект я должен был изменить KERNEL_SIZE
и mTexOffset
в Texture2dProgram
класса
KERNEL_SIZE
теперь 25
и mTextOffset
теперь рассчитывается следующим образом:
public void setTexSize(int width, int height) {
float rw = 50.0f/width;
float rh = 50.0f/height;
float rw50 = rw * 0.5f;
float rh50 = rh * 0.5f;
mTexOffset = new float[] {
-rw, -rh, -rw50, -rh, 0f, -rh, rw50, -rh, rw, -rh,
-rw, -rh50, -rw50, -rh50, 0f, -rh50, rw50, -rh50, rw, -rh50,
-rw, 0f, -rw50, 0f, 0f, 0f, rw50, -0f, rw, 0f,
-rw, rh50, -rw50, rh50, 0f, rh50, rw50, rh50, rw, rh50,
-rw, rh, -rw50, rh, 0f, rh, rw50, rh, rw, rh
};
};
У кого-нибудь есть предложения по поводу того, что я мог бы изменить для достижения iOS-подобного размытия (я думаю, что iOS также является освещающим пиксели)? Я думаю, что, когда я действительно ошибаюсь, это вычисление setTextSize(), в частности значение 50.0f
, я только что выщипывал это из-за тонкого воздуха и наблюдал, что он имеет