1721a5a24e2278f4012109865d62b98190b3185afJason Sams/* 2721a5a24e2278f4012109865d62b98190b3185afJason Sams * Copyright (C) 2014 The Android Open Source Project 3721a5a24e2278f4012109865d62b98190b3185afJason Sams * 4721a5a24e2278f4012109865d62b98190b3185afJason Sams * Licensed under the Apache License, Version 2.0 (the "License"); 5721a5a24e2278f4012109865d62b98190b3185afJason Sams * you may not use this file except in compliance with the License. 6721a5a24e2278f4012109865d62b98190b3185afJason Sams * You may obtain a copy of the License at 7721a5a24e2278f4012109865d62b98190b3185afJason Sams * 8721a5a24e2278f4012109865d62b98190b3185afJason Sams * http://www.apache.org/licenses/LICENSE-2.0 9721a5a24e2278f4012109865d62b98190b3185afJason Sams * 10721a5a24e2278f4012109865d62b98190b3185afJason Sams * Unless required by applicable law or agreed to in writing, software 11721a5a24e2278f4012109865d62b98190b3185afJason Sams * distributed under the License is distributed on an "AS IS" BASIS, 12721a5a24e2278f4012109865d62b98190b3185afJason Sams * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13721a5a24e2278f4012109865d62b98190b3185afJason Sams * See the License for the specific language governing permissions and 14721a5a24e2278f4012109865d62b98190b3185afJason Sams * limitations under the License. 15721a5a24e2278f4012109865d62b98190b3185afJason Sams */ 16721a5a24e2278f4012109865d62b98190b3185afJason Sams 17721a5a24e2278f4012109865d62b98190b3185afJason Sams#include "ip.rsh" 18721a5a24e2278f4012109865d62b98190b3185afJason Sams#pragma rs_fp_relaxed 19721a5a24e2278f4012109865d62b98190b3185afJason Sams 20721a5a24e2278f4012109865d62b98190b3185afJason Samsrs_allocation inputImage; 21721a5a24e2278f4012109865d62b98190b3185afJason Sams 22721a5a24e2278f4012109865d62b98190b3185afJason Samsfloat intensityLow = 0.f; 23721a5a24e2278f4012109865d62b98190b3185afJason Samsfloat intensityHigh; 24721a5a24e2278f4012109865d62b98190b3185afJason Samsuchar4 color; 25721a5a24e2278f4012109865d62b98190b3185afJason Samsconst static float3 mono = {0.299f, 0.587f, 0.114f}; 26721a5a24e2278f4012109865d62b98190b3185afJason Sams 27721a5a24e2278f4012109865d62b98190b3185afJason Samsvoid setParams(float intensHigh, float intensLow, uchar r, uchar g, uchar b) { 28721a5a24e2278f4012109865d62b98190b3185afJason Sams intensityLow = intensLow; 29721a5a24e2278f4012109865d62b98190b3185afJason Sams intensityHigh = intensHigh; 30721a5a24e2278f4012109865d62b98190b3185afJason Sams uchar4 hats = {r, g, b, 255}; 31721a5a24e2278f4012109865d62b98190b3185afJason Sams color = hats; 32721a5a24e2278f4012109865d62b98190b3185afJason Sams} 33721a5a24e2278f4012109865d62b98190b3185afJason Sams 34721a5a24e2278f4012109865d62b98190b3185afJason Samsuchar4 RS_KERNEL root(uchar4 v_in, uint32_t x, uint32_t y) { 35721a5a24e2278f4012109865d62b98190b3185afJason Sams uchar4 refpix = rsGetElementAt_uchar4(inputImage, x, y); 36721a5a24e2278f4012109865d62b98190b3185afJason Sams float pixelIntensity = dot(rsUnpackColor8888(refpix).rgb, mono); 37721a5a24e2278f4012109865d62b98190b3185afJason Sams if ((pixelIntensity <= intensityHigh) && (pixelIntensity >= intensityLow)) { 38721a5a24e2278f4012109865d62b98190b3185afJason Sams return color; 39721a5a24e2278f4012109865d62b98190b3185afJason Sams } else { 40721a5a24e2278f4012109865d62b98190b3185afJason Sams return v_in; 41721a5a24e2278f4012109865d62b98190b3185afJason Sams } 42721a5a24e2278f4012109865d62b98190b3185afJason Sams} 43721a5a24e2278f4012109865d62b98190b3185afJason Sams 44721a5a24e2278f4012109865d62b98190b3185afJason Sams 45