Ignore:
Timestamp:
09/14/10 14:51:23 (9 years ago)
Author:
rlentz
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • OpenCLIterative3DDeconvolution/src/publication/sobel.cl

    r6962 r6963  
     1#pragma OPENCL EXTENSION cl_khr_fp64: enable 
    12__kernel void sobel( __global float* input, 
    23        __global float* output, 
     
    67    int x = get_global_id(0); 
    78    int y = get_global_id(1); 
    8     float p0, p1, p2, p3, p4, p5, p6, p7, p8 = 0; 
     9    float p0, p1, p2, p3, p5, p6, p7, p8 = 0; 
    910    int offset = y * width + x; 
    10 if( x < 1 || y < 1 || x > width - 2 || y > height - 2 ) 
    11 { 
    12   output[offset] = 0;  
     11     
     12        if( x < 1 || y < 1 || x > width - 2 || y > height - 2 ) 
     13        { 
     14          output[offset] = 0;  
     15        } 
     16        else 
     17        { 
     18            p0 = input[offset - width - 1] ; 
     19            p1 = input[offset - width] ; 
     20            p2 = input[offset - width + 1] ; 
     21            p3 = input[offset - 1] ; 
     22            p5 = input[offset + 1] ; 
     23            p6 = input[offset + width - 1] ; 
     24            p7 = input[offset + width] ; 
     25            p8 = input[offset + width + 1] ; 
     26         
     27            double sum1 = p0 + 2*p1 + p2 - p6 - 2*p7 - p8;  //GY 
     28            double sum2 = p0 + 2*p3 + p6 - p2 - 2*p5 - p8;  //GX 
     29            
     30            output[offset] = sqrt(  sum1*sum1 + sum2*sum2 ); 
     31        } 
    1332} 
    14 else 
    15 { 
    16     p0 = input[offset - width - 1] ; 
    17     p1 = input[offset - width] ; 
    18     p2 = input[offset - width + 1] ; 
    19     p3 = input[offset - 1] ; 
    20     p4 = input[offset] ; 
    21     p5 = input[offset + 1] ; 
    22     p6 = input[offset + width - 1] ; 
    23     p7 = input[offset + width] ; 
    24     p8 = input[offset + width + 1] ; 
    25  
    26     float sum1 = p0 + 2*p1 + p2 - p6 - 2*p7 - p8;  //GY 
    27     float sum2 = p0 + 2*p3 + p6 - p2 - 2*p5 - p8;  //GX 
    28     
    29     output[offset] = sqrt(  sum1*sum1 + sum2*sum2 ); 
    30 } 
    31 } 
Note: See TracChangeset for help on using the changeset viewer.