我正在尝试在iOS的OpenGL ES2.0中实现2D轮廓着色器.这太疯狂了.如在5fps慢.我已将其跟踪到texture2D()调用.但是,如果没有这些,任何卷积着色器都是可撤消的.我尝试过使用lowp而不是mediump,但是一切都只是黑色,虽然它确实给了另外5fps,但它仍然无法使用.
这是我的片段着色器.
varying mediump vec4 colorVarying;
varying mediump vec2 texCoord;
uniform bool enableTexture;
uniform sampler2D texture;
uniform mediump float k;
void main() {
const mediump float step_w = 3.0/128.0;
const mediump float step_h = 3.0/128.0;
const mediump vec4 b = vec4(0.0, 0.0, 0.0, 1.0);
const mediump vec4 one = vec4(1.0, 1.0, 1.0, 1.0);
mediump vec2 offset[9];
mediump float kernel[9];
offset[0] = vec2(-step_w, step_h);
offset[1] = vec2(-step_w, 0.0);
offset[2] = vec2(-step_w, -step_h);
offset[3] = vec2(0.0, step_h);
offset[4] = vec2(0.0, 0.0); …Run Code Online (Sandbox Code Playgroud)
在ios中是否有可用于将图像转换为卡通图像的过滤器,如上图所示?
我正在用C++实现一个Kuwahara过滤器,OpenCV帮助打开和显示图像.这个想法非常简单,但不知怎的,我得到了奇怪的结果.这是'cose:
#include "opencv2/opencv.hpp"
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
using namespace cv;
//This class is essentially a struct of 4 Kuwahara regions surrounding a pixel, along with each one's mean, sum and variance.
class Regions{
int* Area[4];
int Size[4];
unsigned long long Sum[4];
double Var[4];
int kernel;
public:
Regions(int _kernel) : kernel(_kernel) {
for (int i = 0; i<4; i++) {
Area[i] = new int[kernel*kernel];
Size[i] = 0;
Sum[i] = 0;
Var[i] = 0.0;
}
}
//Update …Run Code Online (Sandbox Code Playgroud) 我想在我的应用中将滤镜效果应用于图像.我是Open GL的新手,想在我的应用程序中将Sepia,RGB,GrayScale效果应用于图像.我已经实现了亮度,对比度,饱和度效果,但无法在灰度,RGB和棕褐色效果上找到任何解决方案.
提前致谢.
如果我不需要,我宁愿不重新制作轮子,而且之前必须这样做.是否有使用OpenGL ES的Sobel滤波器的实现?