Tôi đang sử dụng this library for GPUImage processing.MultiInputFilter không hoạt động cho 3 yếu tố đầu vào trong AndroidFastImageProcessing
Tôi đang cố gắng chạy bộ lọc song song giống như trong thư viện iOS GPUImage, nhưng tôi gặp sự cố khi thêm 3 đầu vào vào một bộ lọc mở rộng MultiInputFilter
. Tôi cố gắng để kết hợp
BasicCameraInputFilter
CannyEdgeDetectionFilter
SobelEdgeDetectionFilter
nơi BasicCameraInputFilter
là đầu vào camera trực tiếp.
BasicCameraInputFilter cameraInput = new BasicCameraInputFilter();
CannyEdgeDetectionFilter cannyEdgeDetectionFilter = new CannyEdgeDetectionFilter(1.0f,0.3f,0.6f);
SobelEdgeDetectionFilter sobelEdgeDetectionFilter = new SobelEdgeDetectionFilter();
CombinationFilter combinationFilter = new CombinationFilter();
cameraInput.addTarget(combinationFilter);
cannyEdgeDetectionFilter.addTarget(combinationFilter);
sobelEdgeDetectionFilter.addTarget(combinationFilter);
combinationFilter.registerFilterLocation(cameraInput,0);
combinationFilter.registerFilterLocation(cannyEdgeDetectionFilter,1);
combinationFilter.registerFilterLocation(sobelEdgeDetectionFilter,2);
combinationFilter.addTarget(this);
registerInitialFilter(cameraInput);
registerFilter(cannyEdgeDetectionFilter);
registerFilter(sobelEdgeDetectionFilter);
registerTerminalFilter(combinationFilter);
Đây là shader đoạn của tôi cho tôi CombinationFilter
"precision mediump float;\n"
+"uniform sampler2D " + UNIFORM_TEXTURE0 + ";\n"
+"uniform sampler2D " + UNIFORM_TEXTUREBASE + 1 + ";\n"
+"uniform sampler2D " + UNIFORM_TEXTUREBASE + 2 + ";\n"
+"varying vec2 " + VARYING_TEXCOORD + ";\n"
+"void main(){\n"
+" vec4 color1 = texture2D(" + UNIFORM_TEXTURE0 + ", " + VARYING_TEXCOORD + ");\n"
+" vec4 color2 = texture2D(" + UNIFORM_TEXTUREBASE + 1 + ", " + VARYING_TEXCOORD + ");\n"
+" vec4 color3 = texture2D(" + UNIFORM_TEXTUREBASE + 2 + ", " + VARYING_TEXCOORD + ");\n"
+" vec4 whiteColor = vec4(1.0);\n"
+" whiteColor.r = color1.r * color2.r * color3.r;\n"
+" whiteColor.g = color1.g * color2.g * color3.g;\n"
+" whiteColor.b = color1.b * color2.b * color3.b;\n"
+" gl_FragColor = whiteColor;\n"
+"}\n";
Bạn đang gặp phải vấn đề gì? – Brian
Bạn đã đăng một ví dụ được xác định rõ. Nhưng vấn đề là gì? Bạn có thể hiển thị cho chúng tôi thông báo lỗi hoặc ảnh chụp màn hình của kết quả không mong muốn không? – Rabbid76
không có lỗi, nó chỉ không hoạt động, và chúng tôi không thể gỡ lỗi shaders đúng .. – Thesoham24