Example #1
0
        /// <summary>
        /// returns true if the points given are on a line
        /// </summary>
        /// <param name="img_mono">mono image data (1 byte per pixel)</param>
        /// <param name="img_width">width of the image</param>
        /// <param name="img_height">height of the image</param>
        /// <param name="p1">first corner</param>
        /// <param name="p2">second corner</param>
        /// <returns>true if this is a line</returns>
        public static bool isLine(byte[] img_mono,
                                  int img_width, int img_height,
                                  FASTcorner p1, FASTcorner p2,
                                  int line_threshold,
                                  ref int response)
        {
            bool      line = true;
            int       diff_x = 0, diff_y = 0, sample_number = 0;
            const int max_samples = 100;
            const int radius      = 10;

            int dx = p2.x - p1.x;
            int dy = p2.y - p1.y;

            while ((sample_number < max_samples) && (line))
            {
                line = false;

                int x = p1.x + (dx * sample_number / max_samples);
                int y = p1.y + (dy * sample_number / max_samples);

                if ((x > radius) && (x < img_width - radius) && (y > radius) && (y < img_height - radius))
                {
                    int n = (y * img_width) + x;
                    int r = radius;

                    diff_x = (img_mono[n - r] + img_mono[n - r]) -
                             (img_mono[n + r] + img_mono[n + r]);
                    if (diff_x < 0)
                    {
                        diff_x = -diff_x;
                    }

                    if (diff_x < line_threshold)
                    {
                        r = radius * img_width;

                        diff_y = (img_mono[n - r] + img_mono[n - r]) -
                                 (img_mono[n + r] + img_mono[n + r]);
                        if (diff_y < 0)
                        {
                            diff_y = -diff_y;
                        }
                    }

                    if ((diff_x > line_threshold) || (diff_y > line_threshold))
                    {
                        line      = true;
                        response += diff_x + diff_y;
                    }
                }
                else
                {
                    line = true;
                }
                sample_number++;
            }

            return(line);
        }
Example #2
0
        /// <summary>
        /// returns true if the points given are on a line
        /// </summary>
        /// <param name="img_mono">mono image data (1 byte per pixel)</param>
        /// <param name="img_width">width of the image</param>
        /// <param name="img_height">height of the image</param>
        /// <param name="p1">first corner</param>
        /// <param name="p2">second corner</param>
        /// <returns>true if this is a line</returns>
        public static bool isLine(byte[] img_mono, 
		                          int img_width, int img_height,
                                  FASTcorner p1, FASTcorner p2, 
		                          int line_threshold,
		                          ref int response)
		{
            bool line = true;
            int diff_x = 0, diff_y = 0, sample_number = 0;
            const int max_samples = 100;
            const int radius = 10;

            int dx = p2.x - p1.x;
            int dy = p2.y - p1.y;
            while ((sample_number < max_samples) && (line))
			{
                line = false;

                int x = p1.x + (dx * sample_number / max_samples);
                int y = p1.y + (dy * sample_number / max_samples);

                if ((x > radius) && (x < img_width - radius) && (y > radius) && (y < img_height - radius))
                {
                    int n = (y * img_width) + x;
                    int r = radius;

                    diff_x = (img_mono[n - r] + img_mono[n - r]) -
                             (img_mono[n + r] + img_mono[n + r]);
                    if (diff_x < 0) diff_x = -diff_x;

                    if (diff_x < line_threshold)
                    {
                        r = radius * img_width;

                        diff_y = (img_mono[n - r] + img_mono[n - r]) -
                                 (img_mono[n + r] + img_mono[n + r]);
                        if (diff_y < 0) diff_y = -diff_y;
                    }

                    if ((diff_x > line_threshold) || (diff_y > line_threshold))
			        {
                        line = true;
					    response += diff_x + diff_y;
					}
				}
                else line = true;
                sample_number++;
			}

           return (line);
		}
		protected void UpdateCornerDisparities(FASTcorner[] corners, 
		                                       int search_radius_percent)
		{
			int[] disparity_histogram = new int[image_width];
			
			int search_pixels = image_width * search_radius_percent / 100;
			for (int i = 0; i < corners.Length; i++)
			{
				int min_dist = search_pixels;
				min_dist *= min_dist;
				int disparity = 0;
				int max = 0;
				
				for (int d = disparity_histogram.Length-1; d >= 0; d--)
					disparity_histogram[d] = 0;
				
				for (int j = 0; j < features.Count; j++)
				{
					int dx = (int)(features[j].x - corners[i].x);
					int dy = (int)(features[j].y - corners[i].y);
					int dist = dx*dx + dy*dy;
					if (dist < min_dist)
					{
						int disp = (int)features[j].disparity;
						disparity_histogram[disp]++;
						if (disparity_histogram[disp] > max)
						{
							max = disparity_histogram[disp];
							disparity = disp;
						}
						//min_dist = dist;
					}
				}
				if (max > 1)
				{
				    corners[i].disparity = disparity;
				}
				else
					corners[i].disparity = -1;
			}
			
			features.Clear();
			for (int i = 0; i < corners.Length; i++)
			{
				if (corners[i].disparity > 0)					
				    features.Add(new StereoFeature(corners[i].x, corners[i].y, corners[i].disparity));
			}
		}
        protected List<FASTline> DetectLines(FASTcorner[] corners,
		                                     byte[] img, int image_width, int image_height)
		{
			List<FASTline> lines = new List<FASTline>();
			int average_response = 0;
			int hits = 0;

			int min_line_length_pixels = image_width * minimum_line_length / 100;
			int min_line_length_pixels_sqr = min_line_length_pixels * min_line_length_pixels; 
			
			for (int i = 0; i < corners.Length-1; i++)
			{
			    for (int j = i + 1; j < corners.Length; j++)
			    {
					int dx = corners[i].x - corners[j].x;
					int dy = corners[i].y - corners[j].y;
					
					int length_sqr = dx*dx + dy*dy;
					if (length_sqr > min_line_length_pixels_sqr)
					{
						// is this a line ?
						int response = 0;
						if (FASTline.isLine(img, image_width, image_height, corners[i], corners[j], line_detection_threshold, ref response))
						{
							FASTline line = new FASTline(corners[i], corners[j], response);
							lines.Add(line);
							
							average_response += response;
							hits++;
						}
					}
				}
			}
			
			if (hits > 0)
			{
				average_response /= hits;
				int threshold = average_response * 150 / 100;
				for (int i = lines.Count-1; i >= 0; i--)
				{
					if (lines[i].response < threshold)
						lines.RemoveAt(i);
				}
				//Console.WriteLine("average: " + average_response.ToString());
			}
			return(lines);
		}
Example #5
0
        /// <summary>
        /// perform non-maximal supression
        /// </summary>
        /// <param name="img">image - one byte per pixel</param>
        /// <param name="xsize">width of the image</param>
        /// <param name="ysize">height of the image</param>
        /// <param name="corners">returned corner features</param>
        /// <param name="barrier">detection threshold</param>
        /// <returns></returns>
        public static unsafe FASTcorner[] fast_nonmax(byte[] img, int xsize, int ysize, FASTcorner[] corners, int barrier, float calibration_offset_x, float calibration_offset_y)
        {
            bool found;

            fixed (byte* im = img)
            {
                int numcorners = corners.Length;

                // Create a list of integer pointer offstes, corresponding to the 
                // direction offsets in dir[]
                int[] mpointer_dir = new int[16];
                int[] row_start = new int[ysize];
                int[] scores = new int[numcorners];
                FASTcorner[] nonmax_corners = new FASTcorner[numcorners];
                int num_nonmax = 0;
                int prev_row = -1;
                int i, j;
                int point_above = 0;
                int point_below = 0;

                fixed (int* pointer_dir = mpointer_dir)
                {
                    pointer_dir[0] = 0 + 3 * xsize;
                    pointer_dir[1] = 1 + 3 * xsize;
                    pointer_dir[2] = 2 + 2 * xsize;
                    pointer_dir[3] = 3 + 1 * xsize;
                    pointer_dir[4] = 3 + 0 * xsize;
                    pointer_dir[5] = 3 + -1 * xsize;
                    pointer_dir[6] = 2 + -2 * xsize;
                    pointer_dir[7] = 1 + -3 * xsize;
                    pointer_dir[8] = 0 + -3 * xsize;
                    pointer_dir[9] = -1 + -3 * xsize;
                    pointer_dir[10] = -2 + -2 * xsize;
                    pointer_dir[11] = -3 + -1 * xsize;
                    pointer_dir[12] = -3 + 0 * xsize;
                    pointer_dir[13] = -3 + 1 * xsize;
                    pointer_dir[14] = -2 + 2 * xsize;
                    pointer_dir[15] = -1 + 3 * xsize;

                    if (numcorners < 5)
                        return null;

                    // xsize ysize numcorners corners

                    // Compute the score for each detected corner, and find where each row begins
                    // (the corners are output in raster scan order). A beginning of -1 signifies
                    // that there are no corners on that row.

                    for (i = 0; i < ysize; i++)
                        row_start[i] = -1;

                    for (i = 0; i < numcorners; i++)
                    {
                        if (corners[i].y != prev_row)
                        {
                            row_start[(int)corners[i].y] = i;
                            prev_row = (int)corners[i].y;
                        }

                        scores[i] = corner_score(im + (int)corners[i].x + (int)corners[i].y * xsize, pointer_dir, barrier);
                    }

                    // Point above points (roughly) to the pixel above the one of interest, if there
                    // is a feature there.

                    int ctr;
                    for (i = 1; i < numcorners - 1; i++)
                    {
                        int score = scores[i];
                        FASTcorner pos = corners[i];

                        // Check left
                        if (corners[i - 1].x == pos.x - 1 && corners[i - 1].y == pos.y && scores[i - 1] > score)
                            continue;

                        // Check right
                        if (corners[i + 1].x == pos.x + 1 && corners[i + 1].y == pos.y && scores[i - 1] > score)
                            continue;

                        // Check above
                        if (pos.y > 0 && pos.y < ysize - 1 && row_start[pos.y - 1] > -1)
                        {
                            if (corners[point_above].y < pos.y - 1)
                                point_above = row_start[pos.y - 1];

                            // Make point above point to the first of the pixels above the current point,
                            // if it exists.
                            ctr = 0;
                            for (; corners[point_above].y < pos.y && corners[point_above].x < pos.x - 1; point_above++)
                            {
                                ctr++;
                                if (ctr > 100) break;
                            }

                            for (j = point_above; corners[j].y < pos.y && corners[j].x <= pos.x + 1; j++)
                            {
                                int x = corners[j].x;
                                if ((x == pos.x - 1 || x == pos.x || x == pos.x + 1) && scores[j] > score)
                                {
                                    goto cont;
                                }
                            }

                        }

                        // Check below
                        if (pos.y > 0 && pos.y < ysize - 2 && row_start[pos.y + 1] > -1) // Nothing below
                        {
                            if (corners[point_below].y < pos.y + 1)
                                point_below = row_start[pos.y + 1];

                            // Make point below point to one of the pixels below the current point, if it
                            // exists.
                            ctr = 0;
                            if (point_below < corners.Length)
                            {
                                for (; corners[point_below].y == pos.y + 1 && corners[point_below].x < pos.x - 1; point_below++)
                                {
                                    ctr++;
                                    if (ctr > 100) break;
                                    if (point_below >= corners.Length - 1) break;
                                }

                                found = false;
                                j = point_below;
                                while ((!found) && (j < corners.Length))
                                {
                                    if (corners[j].y == pos.y + 1 && corners[j].x <= pos.x + 1) found = true;

                                    int x = corners[j].x;
                                    if ((x == pos.x - 1 || x == pos.x || x == pos.x + 1) && scores[j] > score)
                                    {
                                        goto cont;
                                    }
                                    if (j >= corners.Length) found = true;
                                    j++;
                                }
                            }
                        }

                        int xx = (int)(corners[i].x + calibration_offset_x);
                        int yy = (int)(corners[i].y + calibration_offset_y);
                        if ((xx > -1) && (xx < xsize) && (yy > -1) && (yy < ysize))
                        {
                            nonmax_corners[num_nonmax] = new FASTcorner(xx, yy);
                            nonmax_corners[num_nonmax].score = score;
                            num_nonmax++;
                        }

                    cont:
                        ;
                    }

                    Array.Resize(ref nonmax_corners, num_nonmax);
                    return nonmax_corners;
                }
            }
        }
Example #6
0
        /// <summary>
        /// show the detected corner features in the given image
        /// </summary>
        /// <param name="corners">array containing detected corners</param>
        /// <param name="background">background image to be used</param>
        /// <param name="bmp">image to be returned</param>
        /// <param name="image_width">width of the image</param>
        /// <param name="image_height">height of the image</param>
        public static void Show(FASTcorner[] corners, 
                                byte[] background,
                                byte[] bmp, int image_width, int image_height,
                                int bytes_per_pixel)
        {
            // copy the background
			Buffer.BlockCopy(background,0,bmp,0,image_width * image_height * bytes_per_pixel);
                
            for (int i = 0; i < corners.Length; i++)
            {
                FASTcorner corner = corners[i];
                int n = ((corner.y * image_width) + corner.x) * bytes_per_pixel;
                
                // update the image
                if (bytes_per_pixel < 3)
                {
                    bmp[n] = (byte)255;
                }
                else
                {
                    for (int col = 0; col < bytes_per_pixel; col++)
                    {
                        if (col != 1)
                            bmp[n + col] = 0;
                        else
                            bmp[n + col] = (byte)255;
                    }
                }
            }
        }
Example #7
0
        /// <summary>
        /// detect FAST corners
        //  It is assumed that the image supplied is mono (one byte per pixel)
        /// Note that non-maximal supression should be carried out after running this function
        /// </summary>
        /// <param name="img">image - one byte per pixel</param>
        /// <param name="xsize"></param>
        /// <param name="ysize"></param>
        /// <param name="barrier">detection threshold</param>
        /// <returns>array of corner features</returns>
        public static unsafe FASTcorner[] fast_corner_detect_10(Byte[] img, int xsize, int ysize, int barrier)
        {
            int boundary = 3, y, cb, c_b;
            Byte* line_max;
            Byte* line_min;
            int rsize = 512, total = 0;
            FASTcorner[] ret = new FASTcorner[rsize];
            Byte* cache_0;
            Byte* cache_1;
            Byte* cache_2;
            int[] mpixel = new int[16];

            fixed (int* pixel = mpixel)
            {
                fixed (Byte* im = img)
                {
                    pixel[0] = 0 + 3 * xsize;
                    pixel[1] = 1 + 3 * xsize;
                    pixel[2] = 2 + 2 * xsize;
                    pixel[3] = 3 + 1 * xsize;
                    pixel[4] = 3 + 0 * xsize;
                    pixel[5] = 3 + -1 * xsize;
                    pixel[6] = 2 + -2 * xsize;
                    pixel[7] = 1 + -3 * xsize;
                    pixel[8] = 0 + -3 * xsize;
                    pixel[9] = -1 + -3 * xsize;
                    pixel[10] = -2 + -2 * xsize;
                    pixel[11] = -3 + -1 * xsize;
                    pixel[12] = -3 + 0 * xsize;
                    pixel[13] = -3 + 1 * xsize;
                    pixel[14] = -2 + 2 * xsize;
                    pixel[15] = -1 + 3 * xsize;
                    for (y = boundary; y < ysize - boundary; y++)
                    {
                        cache_0 = im + boundary + y * xsize;
                        line_min = cache_0 - boundary;
                        line_max = im + xsize - boundary + y * xsize;

                        cache_1 = cache_0 + pixel[9];
                        cache_2 = cache_0 + pixel[3];

                        int ctr = 0;
                        for (; cache_0 < line_max; cache_0++, cache_1++, cache_2++)
                        {
                            ctr++;
                            if (ctr > 1000) break;

                            cb = *cache_0 + barrier;
                            c_b = *cache_0 - barrier;
                            if (*cache_1 > cb)
                                if (*(cache_0 + pixel[2]) > cb)
                                    if (*(cache_0 + 3) > cb)
                                        if (*(cache_0 + pixel[6]) > cb)
                                            if (*(cache_0 + pixel[0]) > cb)
                                                if (*cache_2 > cb)
                                                    if (*(cache_0 + pixel[5]) > cb)
                                                        if (*(cache_1 + 2) > cb)
                                                            if (*(cache_0 + pixel[1]) > cb)
                                                                if (*(cache_1 + 1) > cb)
                                                                    goto success;
                                                                else if (*(cache_1 + 1) < c_b)
                                                                    continue;
                                                                else
                                                                    if (*(cache_0 + pixel[14]) > cb)
                                                                        if (*(cache_0 + pixel[15]) > cb)
                                                                            goto success;
                                                                        else
                                                                            continue;
                                                                    else
                                                                        continue;
                                                            else if (*(cache_0 + pixel[1]) < c_b)
                                                                continue;
                                                            else
                                                                if (*(cache_0 + pixel[11]) > cb)
                                                                    if (*(cache_1 + 1) > cb)
                                                                        if (*(cache_0 + pixel[10]) > cb)
                                                                            goto success;
                                                                        else
                                                                            continue;
                                                                    else
                                                                        continue;
                                                                else
                                                                    continue;
                                                        else if (*(cache_1 + 2) < c_b)
                                                            continue;
                                                        else
                                                            if (*(cache_0 + pixel[14]) > cb)
                                                                if (*(cache_2 + -6) > cb)
                                                                    if (*(cache_0 + pixel[15]) > cb)
                                                                        if (*(cache_0 + pixel[1]) > cb)
                                                                            goto success;
                                                                        else
                                                                            continue;
                                                                    else
                                                                        continue;
                                                                else
                                                                    continue;
                                                            else
                                                                continue;
                                                    else if (*(cache_0 + pixel[5]) < c_b)
                                                        continue;
                                                    else
                                                        if (*(cache_0 + -3) > cb)
                                                            if (*(cache_2 + -6) > cb)
                                                                if (*(cache_0 + pixel[11]) > cb)
                                                                    if (*(cache_0 + pixel[14]) > cb)
                                                                        if (*(cache_0 + pixel[15]) > cb)
                                                                            goto success;
                                                                        else
                                                                            continue;
                                                                    else
                                                                        continue;
                                                                else
                                                                    continue;
                                                            else
                                                                continue;
                                                        else
                                                            continue;
                                                else if (*cache_2 < c_b)
                                                    continue;
                                                else
                                                    if (*(cache_0 + -3) > cb)
                                                        if (*(cache_0 + pixel[11]) > cb)
                                                            if (*(cache_2 + -6) > cb)
                                                                if (*(cache_0 + pixel[10]) > cb)
                                                                    if (*(cache_1 + 2) > cb)
                                                                        goto success;
                                                                    else if (*(cache_1 + 2) < c_b)
                                                                        continue;
                                                                    else
                                                                        if (*(cache_0 + pixel[15]) > cb)
                                                                            goto success;
                                                                        else
                                                                            continue;
                                                                else
                                                                    continue;
                                                            else
                                                                continue;
                                                        else
                                                            continue;
                                                    else
                                                        continue;
                                            else if (*(cache_0 + pixel[0]) < c_b)
                                                if (*(cache_0 + pixel[11]) > cb)
                                                    if (*cache_2 > cb)
                                                        if (*(cache_1 + 2) > cb)
                                                            goto success;
                                                        else
                                                            continue;
                                                    else
                                                        continue;
                                                else
                                                    continue;
                                            else
                                                if (*(cache_0 + pixel[10]) > cb)
                                                    if (*(cache_1 + 2) > cb)
                                                        if (*(cache_0 + pixel[11]) > cb)
                                                            if (*(cache_0 + pixel[5]) > cb)
                                                                if (*(cache_1 + 1) > cb)
                                                                    if (*cache_2 > cb)
                                                                        goto success;
                                                                    else if (*cache_2 < c_b)
                                                                        continue;
                                                                    else
                                                                        if (*(cache_2 + -6) > cb)
                                                                            if (*(cache_0 + -3) > cb)
                                                                                goto success;
                                                                            else
                                                                                continue;
                                                                        else
                                                                            continue;
                                                                else
                                                                    continue;
                                                            else
                                                                continue;
                                                        else if (*(cache_0 + pixel[11]) < c_b)
                                                            if (*(cache_0 + pixel[1]) > cb)
                                                                goto success;
                                                            else
                                                                continue;
                                                        else
                                                            if (*(cache_0 + pixel[1]) > cb)
                                                                if (*(cache_0 + pixel[5]) > cb)
                                                                    if (*cache_2 > cb)
                                                                        if (*(cache_1 + 1) > cb)
                                                                            goto success;
                                                                        else
                                                                            continue;
                                                                    else
                                                                        continue;
                                                                else
                                                                    continue;
                                                            else
                                                                continue;
                                                    else
                                                        continue;
                                                else
                                                    continue;
                                        else if (*(cache_0 + pixel[6]) < c_b)
                                            continue;
                                        else
                                            if (*(cache_0 + pixel[15]) > cb)
                                                if (*(cache_0 + -3) > cb)
                                                    if (*(cache_0 + pixel[14]) > cb)
                                                        if (*(cache_0 + pixel[0]) > cb)
                                                            if (*(cache_0 + pixel[11]) > cb)
                                                                if (*(cache_2 + -6) > cb)
                                                                    if (*(cache_0 + pixel[1]) > cb)
                                                                        if (*(cache_0 + pixel[10]) > cb)
                                                                            goto success;
                                                                        else if (*(cache_0 + pixel[10]) < c_b)
                                                                            continue;
                                                                        else
                                                                            if (*cache_2 > cb)
                                                                                goto success;
                                                                            else
                                                                                continue;
                                                                    else
                                                                        continue;
                                                                else
                                                                    continue;
                                                            else if (*(cache_0 + pixel[11]) < c_b)
                                                                continue;
                                                            else
                                                                if (*(cache_0 + pixel[5]) > cb)
                                                                    if (*cache_2 > cb)
                                                                        if (*(cache_2 + -6) > cb)
                                                                            goto success;
                                                                        else
                                                                            continue;
                                                                    else
                                                                        continue;
                                                                else
                                                                    continue;
                                                        else
                                                            continue;
                                                    else
                                                        continue;
                                                else
                                                    continue;
                                            else
                                                continue;
                                    else if (*(cache_0 + 3) < c_b)
                                        if (*(cache_0 + pixel[11]) > cb)
                                            if (*(cache_2 + -6) > cb)
                                                if (*(cache_0 + pixel[0]) > cb)
                                                    if (*(cache_0 + pixel[10]) > cb)
                                                        if (*(cache_0 + -3) > cb)
                                                            if (*(cache_0 + pixel[15]) > cb)
                                                                if (*(cache_0 + pixel[14]) > cb)
                                                                    if (*(cache_0 + pixel[1]) > cb)
                                                                        goto success;
                                                                    else if (*(cache_0 + pixel[1]) < c_b)
                                                                        continue;
                                                                    else
                                                                        if (*(cache_0 + pixel[6]) < c_b)
                                                                            continue;
                                                                        else
                                                                            goto success;
                                                                else
                                                                    continue;
                                                            else
                                                                continue;
                                                        else
                                                            continue;
                                                    else
                                                        continue;
                                                else if (*(cache_0 + pixel[0]) < c_b)
                                                    continue;
                                                else
                                                    if (*(cache_0 + pixel[6]) > cb)
                                                        goto success;
                                                    else
                                                        continue;
                                            else
                                                continue;
                                        else
                                            continue;
                                    else
                                        if (*(cache_0 + -3) > cb)
                                            if (*(cache_0 + pixel[11]) > cb)
                                                if (*(cache_0 + pixel[14]) > cb)
                                                    if (*(cache_0 + pixel[15]) > cb)
                                                        if (*(cache_2 + -6) > cb)
                                                            if (*(cache_0 + pixel[10]) > cb)
                                                                if (*(cache_0 + pixel[0]) > cb)
                                                                    if (*(cache_0 + pixel[1]) > cb)
                                                                        goto success;
                                                                    else if (*(cache_0 + pixel[1]) < c_b)
                                                                        continue;
                                                                    else
                                                                        if (*(cache_1 + 2) > cb)
                                                                            if (*(cache_1 + 1) > cb)
                                                                                goto success;
                                                                            else
                                                                                continue;
                                                                        else
                                                                            continue;
                                                                else if (*(cache_0 + pixel[0]) < c_b)
                                                                    continue;
                                                                else
                                                                    if (*(cache_0 + pixel[6]) > cb)
                                                                        if (*(cache_1 + 2) > cb)
                                                                            goto success;
                                                                        else
                                                                            continue;
                                                                    else
                                                                        continue;
                                                            else
                                                                continue;
                                                        else
                                                            continue;
                                                    else if (*(cache_0 + pixel[15]) < c_b)
                                                        continue;
                                                    else
                                                        if (*(cache_0 + pixel[5]) > cb)
                                                            if (*(cache_0 + pixel[6]) > cb)
                                                                if (*(cache_1 + 2) > cb)
                                                                    if (*(cache_2 + -6) > cb)
                                                                        if (*(cache_0 + pixel[10]) > cb)
                                                                            if (*(cache_1 + 1) > cb)
                                                                                goto success;
                                                                            else
                                                                                continue;
                                                                        else
                                                                            continue;
                                                                    else
                                                                        continue;
                                                                else
                                                                    continue;
                                                            else
                                                                continue;
                                                        else
                                                            continue;
                                                else
                                                    continue;
                                            else
                                                continue;
                                        else
                                            continue;
                                else if (*(cache_0 + pixel[2]) < c_b)
                                    if (*(cache_0 + pixel[14]) > cb)
                                        if (*(cache_0 + pixel[6]) > cb)
                                            if (*(cache_0 + pixel[5]) > cb)
                                                if (*(cache_0 + pixel[11]) > cb)
                                                    if (*(cache_1 + 2) > cb)
                                                        if (*(cache_0 + -3) > cb)
                                                            if (*(cache_0 + pixel[10]) > cb)
                                                                if (*(cache_1 + 1) > cb)
                                                                    goto success;
                                                                else
                                                                    continue;
                                                            else
                                                                continue;
                                                        else
                                                            continue;
                                                    else
                                                        continue;
                                                else
                                                    continue;
                                            else if (*(cache_0 + pixel[5]) < c_b)
                                                if (*(cache_0 + pixel[15]) > cb)
                                                    if (*(cache_0 + -3) > cb)
                                                        if (*(cache_0 + pixel[11]) > cb)
                                                            goto success;
                                                        else
                                                            continue;
                                                    else
                                                        continue;
                                                else
                                                    continue;
                                            else
                                                if (*(cache_0 + pixel[15]) > cb)
                                                    if (*(cache_0 + -3) > cb)
                                                        if (*(cache_0 + pixel[11]) > cb)
                                                            if (*(cache_0 + pixel[10]) > cb)
                                                                if (*(cache_1 + 2) > cb)
                                                                    if (*(cache_2 + -6) > cb)
                                                                        goto success;
                                                                    else
                                                                        continue;
                                                                else
                                                                    continue;
                                                            else
                                                                continue;
                                                        else
                                                            continue;
                                                    else
                                                        continue;
                                                else
                                                    continue;
                                        else if (*(cache_0 + pixel[6]) < c_b)
                                            if (*(cache_0 + pixel[1]) > cb)
                                                if (*(cache_1 + 1) > cb)
                                                    if (*(cache_0 + -3) > cb)
                                                        goto success;
                                                    else
                                                        continue;
                                                else
                                                    continue;
                                            else if (*(cache_0 + pixel[1]) < c_b)
                                                continue;
                                            else
                                                if (*(cache_1 + 2) > cb)
                                                    if (*(cache_0 + pixel[0]) > cb)
                                                        if (*(cache_0 + -3) > cb)
                                                            goto success;
                                                        else
                                                            continue;
                                                    else
                                                        continue;
                                                else
                                                    continue;
                                        else
                                            if (*(cache_0 + pixel[0]) > cb)
                                                if (*(cache_0 + -3) > cb)
                                                    if (*(cache_1 + 1) > cb)
                                                        if (*(cache_0 + pixel[10]) > cb)
                                                            if (*(cache_0 + pixel[11]) > cb)
                                                                if (*(cache_0 + pixel[15]) > cb)
                                                                    if (*(cache_1 + 2) > cb)
                                                                        if (*(cache_2 + -6) > cb)
                                                                            goto success;
                                                                        else
                                                                            continue;
                                                                    else if (*(cache_1 + 2) < c_b)
                                                                        continue;
                                                                    else
                                                                        if (*(cache_0 + pixel[1]) > cb)
                                                                            if (*(cache_2 + -6) > cb)
                                                                                goto success;
                                                                            else
                                                                                continue;
                                                                        else
                                                                            continue;
                                                                else
                                                                    continue;
                                                            else
                                                                continue;
                                                        else
                                                            continue;
                                                    else
                                                        continue;
                                                else
                                                    continue;
                                            else
                                                continue;
                                    else if (*(cache_0 + pixel[14]) < c_b)
                                        if (*(cache_0 + pixel[5]) > cb)
                                            if (*(cache_0 + pixel[10]) > cb)
                                                if (*cache_2 > cb)
                                                    if (*(cache_0 + -3) > cb)
                                                        if (*(cache_0 + pixel[6]) > cb)
                                                            if (*(cache_0 + pixel[11]) > cb)
                                                                goto success;
                                                            else
                                                                continue;
                                                        else
                                                            continue;
                                                    else
                                                        continue;
                                                else if (*cache_2 < c_b)
                                                    if (*(cache_0 + pixel[11]) < c_b)
                                                        if (*(cache_0 + 3) < c_b)
                                                            goto success;
                                                        else
                                                            continue;
                                                    else
                                                        continue;
                                                else
                                                    continue;
                                            else if (*(cache_0 + pixel[10]) < c_b)
                                                if (*cache_2 < c_b)
                                                    goto success;
                                                else
                                                    continue;
                                            else
                                                if (*(cache_0 + 3) < c_b)
                                                    if (*(cache_0 + pixel[11]) < c_b)
                                                        goto success;
                                                    else
                                                        continue;
                                                else
                                                    continue;
                                        else if (*(cache_0 + pixel[5]) < c_b)
                                            if (*(cache_2 + -6) > cb)
                                                if (*(cache_1 + 2) < c_b)
                                                    if (*(cache_0 + 3) < c_b)
                                                        goto success;
                                                    else
                                                        continue;
                                                else
                                                    continue;
                                            else if (*(cache_2 + -6) < c_b)
                                                if (*(cache_0 + pixel[6]) > cb)
                                                    if (*(cache_0 + -3) < c_b)
                                                        if (*(cache_0 + pixel[15]) < c_b)
                                                            goto success;
                                                        else
                                                            continue;
                                                    else
                                                        continue;
                                                else if (*(cache_0 + pixel[6]) < c_b)
                                                    if (*(cache_0 + pixel[15]) < c_b)
                                                        if (*cache_2 < c_b)
                                                            if (*(cache_0 + pixel[1]) < c_b)
                                                                if (*(cache_0 + 3) < c_b)
                                                                    goto success;
                                                                else
                                                                    continue;
                                                            else
                                                                continue;
                                                        else
                                                            continue;
                                                    else
                                                        continue;
                                                else
                                                    if (*(cache_0 + -3) < c_b)
                                                        if (*(cache_0 + 3) < c_b)
                                                            if (*(cache_0 + pixel[15]) < c_b)
                                                                if (*cache_2 < c_b)
                                                                    goto success;
                                                                else
                                                                    continue;
                                                            else
                                                                continue;
                                                        else
                                                            continue;
                                                    else
                                                        continue;
                                            else
                                                if (*(cache_1 + 2) < c_b)
                                                    if (*(cache_0 + pixel[15]) < c_b)
                                                        if (*(cache_0 + pixel[6]) < c_b)
                                                            goto success;
                                                        else
                                                            continue;
                                                    else
                                                        continue;
                                                else
                                                    continue;
                                        else
                                            if (*(cache_0 + pixel[11]) < c_b)
                                                if (*(cache_0 + 3) < c_b)
                                                    if (*(cache_0 + -3) < c_b)
                                                        goto success;
                                                    else
                                                        continue;
                                                else
                                                    continue;
                                            else
                                                continue;
                                    else
                                        if (*(cache_0 + 3) > cb)
                                            if (*(cache_2 + -6) > cb)
                                                if (*(cache_1 + 1) > cb)
                                                    if (*(cache_0 + pixel[15]) < c_b)
                                                        if (*(cache_1 + 2) > cb)
                                                            if (*(cache_0 + pixel[10]) > cb)
                                                                if (*(cache_0 + -3) > cb)
                                                                    goto success;
                                                                else
                                                                    continue;
                                                            else
                                                                continue;
                                                        else
                                                            continue;
                                                    else
                                                        goto success;
                                                else
                                                    continue;
                                            else
                                                continue;
                                        else
                                            continue;
                                else
                                    if (*(cache_0 + -3) > cb)
                                        if (*(cache_0 + pixel[15]) > cb)
                                            if (*(cache_1 + 1) > cb)
                                                if (*(cache_0 + pixel[14]) > cb)
                                                    if (*(cache_0 + pixel[11]) > cb)
                                                        if (*(cache_0 + pixel[0]) > cb)
                                                            if (*(cache_2 + -6) > cb)
                                                                if (*(cache_0 + pixel[10]) > cb)
                                                                    if (*(cache_0 + pixel[1]) > cb)
                                                                        goto success;
                                                                    else if (*(cache_0 + pixel[1]) < c_b)
                                                                        continue;
                                                                    else
                                                                        if (*(cache_1 + 2) > cb)
                                                                            goto success;
                                                                        else
                                                                            continue;
                                                                else
                                                                    continue;
                                                            else if (*(cache_2 + -6) < c_b)
                                                                continue;
                                                            else
                                                                if (*cache_2 > cb)
                                                                    if (*(cache_0 + pixel[5]) > cb)
                                                                        if (*(cache_0 + pixel[6]) > cb)
                                                                            goto success;
                                                                        else
                                                                            continue;
                                                                    else
                                                                        continue;
                                                                else
                                                                    continue;
                                                        else if (*(cache_0 + pixel[0]) < c_b)
                                                            continue;
                                                        else
                                                            if (*(cache_0 + pixel[6]) > cb)
                                                                if (*(cache_1 + 2) > cb)
                                                                    if (*(cache_0 + pixel[10]) > cb)
                                                                        if (*(cache_2 + -6) > cb)
                                                                            goto success;
                                                                        else if (*(cache_2 + -6) < c_b)
                                                                            continue;
                                                                        else
                                                                            if (*cache_2 > cb)
                                                                                if (*(cache_0 + 3) > cb)
                                                                                    goto success;
                                                                                else
                                                                                    continue;
                                                                            else
                                                                                continue;
                                                                    else
                                                                        continue;
                                                                else
                                                                    continue;
                                                            else
                                                                continue;
                                                    else
                                                        continue;
                                                else if (*(cache_0 + pixel[14]) < c_b)
                                                    continue;
                                                else
                                                    if (*(cache_0 + 3) > cb)
                                                        if (*cache_2 > cb)
                                                            if (*(cache_0 + pixel[6]) > cb)
                                                                if (*(cache_0 + pixel[11]) > cb)
                                                                    if (*(cache_0 + pixel[5]) > cb)
                                                                        if (*(cache_0 + pixel[10]) > cb)
                                                                            if (*(cache_1 + 2) > cb)
                                                                                goto success;
                                                                            else
                                                                                continue;
                                                                        else
                                                                            continue;
                                                                    else
                                                                        continue;
                                                                else
                                                                    continue;
                                                            else
                                                                continue;
                                                        else if (*cache_2 < c_b)
                                                            continue;
                                                        else
                                                            if (*(cache_2 + -6) > cb)
                                                                if (*(cache_0 + pixel[10]) > cb)
                                                                    if (*(cache_0 + pixel[6]) > cb)
                                                                        if (*(cache_0 + pixel[5]) > cb)
                                                                            if (*(cache_0 + pixel[11]) > cb)
                                                                                goto success;
                                                                            else
                                                                                continue;
                                                                        else
                                                                            continue;
                                                                    else
                                                                        continue;
                                                                else
                                                                    continue;
                                                            else
                                                                continue;
                                                    else
                                                        continue;
                                            else
                                                continue;
                                        else if (*(cache_0 + pixel[15]) < c_b)
                                            if (*(cache_0 + 3) > cb)
                                                if (*(cache_1 + 2) > cb)
                                                    if (*cache_2 > cb)
                                                        if (*(cache_0 + pixel[10]) > cb)
                                                            if (*(cache_0 + pixel[6]) > cb)
                                                                if (*(cache_0 + pixel[5]) > cb)
                                                                    if (*(cache_1 + 1) > cb)
                                                                        if (*(cache_0 + pixel[11]) > cb)
                                                                            goto success;
                                                                        else
                                                                            continue;
                                                                    else
                                                                        continue;
                                                                else
                                                                    continue;
                                                            else
                                                                continue;
                                                        else
                                                            continue;
                                                    else if (*cache_2 < c_b)
                                                        continue;
                                                    else
                                                        if (*(cache_2 + -6) > cb)
                                                            if (*(cache_0 + pixel[6]) > cb)
                                                                if (*(cache_0 + pixel[10]) > cb)
                                                                    goto success;
                                                                else
                                                                    continue;
                                                            else
                                                                continue;
                                                        else
                                                            continue;
                                                else
                                                    continue;
                                            else if (*(cache_0 + 3) < c_b)
                                                continue;
                                            else
                                                if (*(cache_0 + pixel[14]) > cb)
                                                    if (*(cache_0 + pixel[5]) > cb)
                                                        if (*(cache_0 + pixel[0]) > cb || *(cache_0 + pixel[0]) < c_b)
                                                            continue;
                                                        else
                                                            goto success;
                                                    else
                                                        continue;
                                                else
                                                    continue;
                                        else
                                            if (*(cache_0 + pixel[5]) > cb)
                                                if (*(cache_1 + 2) > cb)
                                                    if (*(cache_0 + pixel[14]) > cb)
                                                        if (*(cache_0 + pixel[11]) > cb)
                                                            if (*(cache_0 + pixel[6]) > cb)
                                                                if (*(cache_1 + 1) > cb)
                                                                    if (*(cache_0 + pixel[10]) > cb)
                                                                        if (*(cache_2 + -6) > cb)
                                                                            goto success;
                                                                        else if (*(cache_2 + -6) < c_b)
                                                                            continue;
                                                                        else
                                                                            if (*cache_2 > cb)
                                                                                if (*(cache_0 + 3) > cb)
                                                                                    goto success;
                                                                                else
                                                                                    continue;
                                                                            else
                                                                                continue;
                                                                    else
                                                                        continue;
                                                                else
                                                                    continue;
                                                            else
                                                                continue;
                                                        else
                                                            continue;
                                                    else if (*(cache_0 + pixel[14]) < c_b)
                                                        if (*(cache_0 + 3) > cb)
                                                            if (*cache_2 > cb)
                                                                goto success;
                                                            else if (*cache_2 < c_b)
                                                                continue;
                                                            else
                                                                if (*(cache_2 + -6) > cb)
                                                                    goto success;
                                                                else
                                                                    continue;
                                                        else
                                                            continue;
                                                    else
                                                        if (*(cache_0 + 3) > cb)
                                                            if (*(cache_0 + pixel[6]) > cb)
                                                                if (*(cache_2 + -6) > cb)
                                                                    if (*(cache_1 + 1) > cb)
                                                                        if (*(cache_0 + pixel[10]) > cb)
                                                                            if (*(cache_0 + pixel[11]) > cb)
                                                                                goto success;
                                                                            else
                                                                                continue;
                                                                        else
                                                                            continue;
                                                                    else
                                                                        continue;
                                                                else if (*(cache_2 + -6) < c_b)
                                                                    continue;
                                                                else
                                                                    if (*cache_2 > cb)
                                                                        if (*(cache_0 + pixel[10]) > cb)
                                                                            if (*(cache_1 + 1) > cb)
                                                                                if (*(cache_0 + pixel[11]) > cb)
                                                                                    goto success;
                                                                                else
                                                                                    continue;
                                                                            else
                                                                                continue;
                                                                        else
                                                                            continue;
                                                                    else
                                                                        continue;
                                                            else
                                                                continue;
                                                        else
                                                            continue;
                                                else
                                                    continue;
                                            else
                                                continue;
                                    else
                                        continue;
                            else if (*cache_1 < c_b)
                                if (*(cache_0 + pixel[1]) > cb)
                                    if (*(cache_0 + pixel[6]) > cb)
                                        if (*(cache_2 + -6) > cb)
                                            if (*(cache_0 + 3) > cb)
                                                if (*(cache_0 + pixel[15]) > cb)
                                                    if (*cache_2 > cb)
                                                        if (*(cache_0 + pixel[0]) > cb)
                                                            if (*(cache_0 + pixel[5]) > cb)
                                                                if (*(cache_0 + pixel[2]) > cb)
                                                                    goto success;
                                                                else
                                                                    continue;
                                                            else
                                                                continue;
                                                        else
                                                            continue;
                                                    else
                                                        continue;
                                                else
                                                    continue;
                                            else
                                                continue;
                                        else if (*(cache_2 + -6) < c_b)
                                            if (*(cache_0 + pixel[14]) > cb)
                                                if (*(cache_1 + 2) > cb)
                                                    if (*cache_2 > cb)
                                                        if (*(cache_0 + pixel[2]) > cb)
                                                            if (*(cache_0 + 3) > cb)
                                                                goto success;
                                                            else
                                                                continue;
                                                        else
                                                            continue;
                                                    else
                                                        continue;
                                                else
                                                    continue;
                                            else
                                                continue;
                                        else
                                            if (*(cache_1 + 2) > cb)
                                                if (*(cache_0 + pixel[14]) > cb)
                                                    if (*cache_2 > cb)
                                                        if (*(cache_0 + 3) > cb)
                                                            if (*(cache_0 + pixel[15]) > cb)
                                                                goto success;
                                                            else
                                                                continue;
                                                        else
                                                            continue;
                                                    else
                                                        continue;
                                                else
                                                    continue;
                                            else
                                                continue;
                                    else if (*(cache_0 + pixel[6]) < c_b)
                                        if (*(cache_0 + pixel[14]) > cb)
                                            if (*(cache_0 + 3) > cb)
                                                if (*(cache_0 + -3) > cb)
                                                    if (*(cache_0 + pixel[11]) > cb)
                                                        if (*(cache_0 + pixel[2]) > cb)
                                                            if (*cache_2 > cb)
                                                                if (*(cache_2 + -6) > cb)
                                                                    if (*(cache_0 + pixel[15]) > cb)
                                                                        goto success;
                                                                    else
                                                                        continue;
                                                                else
                                                                    continue;
                                                            else
                                                                continue;
                                                        else
                                                            continue;
                                                    else
                                                        if (*(cache_0 + pixel[5]) > cb)
                                                            goto success;
                                                        else
                                                            continue;
                                                else
                                                    continue;
                                            else if (*(cache_0 + 3) < c_b)
                                                if (*(cache_0 + pixel[2]) > cb)
                                                    continue;
                                                else if (*(cache_0 + pixel[2]) < c_b)
                                                    if (*(cache_0 + pixel[11]) < c_b)
                                                        if (*(cache_0 + -3) > cb)
                                                            continue;
                                                        else if (*(cache_0 + -3) < c_b)
                                                            if (*(cache_0 + pixel[5]) < c_b)
                                                                goto success;
                                                            else
                                                                continue;
                                                        else
                                                            goto success;
                                                    else
                                                        continue;
                                                else
                                                    if (*(cache_0 + -3) < c_b)
                                                        if (*(cache_2 + -6) > cb)
                                                            if (*cache_2 < c_b)
                                                                if (*(cache_0 + pixel[10]) < c_b)
                                                                    goto success;
                                                                else
                                                                    continue;
                                                            else
                                                                continue;
                                                        else if (*(cache_2 + -6) < c_b)
                                                            goto success;
                                                        else
                                                            continue;
                                                    else
                                                        continue;
                                            else
                                                if (*(cache_0 + pixel[10]) > cb)
                                                    if (*cache_2 > cb)
                                                        goto success;
                                                    else
                                                        continue;
                                                else
                                                    continue;
                                        else if (*(cache_0 + pixel[14]) < c_b)
                                            if (*(cache_0 + pixel[5]) > cb)
                                                if (*(cache_0 + pixel[15]) < c_b)
                                                    if (*(cache_1 + 2) < c_b)
                                                        goto success;
                                                    else
                                                        continue;
                                                else
                                                    continue;
                                            else if (*(cache_0 + pixel[5]) < c_b)
                                                if (*(cache_0 + -3) < c_b)
                                                    if (*(cache_0 + pixel[11]) < c_b)
                                                        if (*(cache_1 + 2) < c_b)
                                                            goto success;
                                                        else
                                                            continue;
                                                    else
                                                        continue;
                                                else
                                                    continue;
                                            else
                                                if (*(cache_0 + pixel[15]) < c_b)
                                                    if (*(cache_0 + pixel[11]) < c_b)
                                                        if (*(cache_1 + 2) < c_b)
                                                            goto success;
                                                        else
                                                            continue;
                                                    else
                                                        continue;
                                                else
                                                    continue;
                                        else
                                            if (*(cache_0 + 3) < c_b)
                                                if (*(cache_0 + -3) > cb)
                                                    continue;
                                                else if (*(cache_0 + -3) < c_b)
                                                    if (*(cache_2 + -6) > cb)
                                                        continue;
                                                    else if (*(cache_2 + -6) < c_b)
                                                        if (*(cache_1 + 2) < c_b)
                                                            if (*(cache_0 + pixel[10]) < c_b)
                                                                if (*(cache_0 + pixel[5]) < c_b)
                                                                    goto success;
                                                                else
                                                                    continue;
                                                            else
                                                                continue;
                                                        else
                                                            continue;
                                                    else
                                                        if (*cache_2 < c_b)
                                                            if (*(cache_1 + 2) < c_b)
                                                                if (*(cache_1 + 1) < c_b)
                                                                    goto success;
                                                                else
                                                                    continue;
                                                            else
                                                                continue;
                                                        else
                                                            continue;
                                                else
                                                    if (*(cache_0 + pixel[2]) < c_b)
                                                        if (*(cache_0 + pixel[11]) < c_b)
                                                            if (*(cache_0 + pixel[5]) < c_b)
                                                                goto success;
                                                            else
                                                                continue;
                                                        else
                                                            continue;
                                                    else
                                                        continue;
                                            else
                                                continue;
                                    else
                                        if (*(cache_0 + -3) > cb)
                                            if (*(cache_0 + 3) > cb)
                                                if (*(cache_0 + pixel[5]) > cb)
                                                    if (*cache_2 > cb)
                                                        if (*(cache_0 + pixel[15]) > cb)
                                                            goto success;
                                                        else
                                                            continue;
                                                    else
                                                        continue;
                                                else if (*(cache_0 + pixel[5]) < c_b)
                                                    continue;
                                                else
                                                    if (*(cache_1 + 2) > cb || *(cache_1 + 2) < c_b)
                                                        continue;
                                                    else
                                                        if (*(cache_0 + pixel[11]) > cb)
                                                            if (*(cache_0 + pixel[14]) > cb)
                                                                if (*(cache_0 + pixel[0]) > cb)
                                                                    goto success;
                                                                else
                                                                    continue;
                                                            else
                                                                continue;
                                                        else
                                                            continue;
                                            else if (*(cache_0 + 3) < c_b)
                                                continue;
                                            else
                                                if (*(cache_0 + pixel[10]) > cb)
                                                    if (*cache_2 > cb)
                                                        if (*(cache_2 + -6) > cb)
                                                            if (*(cache_0 + pixel[2]) > cb)
                                                                goto success;
                                                            else
                                                                continue;
                                                        else
                                                            continue;
                                                    else
                                                        continue;
                                                else
                                                    continue;
                                        else
                                            continue;
                                else if (*(cache_0 + pixel[1]) < c_b)
                                    if (*(cache_0 + 3) > cb)
                                        if (*(cache_0 + -3) < c_b)
                                            if (*(cache_0 + pixel[11]) < c_b)
                                                if (*(cache_0 + pixel[14]) < c_b)
                                                    if (*(cache_1 + 1) > cb)
                                                        goto success;
                                                    else if (*(cache_1 + 1) < c_b)
                                                        if (*(cache_0 + pixel[10]) < c_b)
                                                            if (*(cache_2 + -6) < c_b)
                                                                if (*(cache_0 + pixel[15]) > cb)
                                                                    continue;
                                                                else if (*(cache_0 + pixel[15]) < c_b)
                                                                    if (*(cache_0 + pixel[0]) > cb)
                                                                        continue;
                                                                    else if (*(cache_0 + pixel[0]) < c_b)
                                                                        goto success;
                                                                    else
                                                                        if (*(cache_0 + pixel[6]) < c_b)
                                                                            goto success;
                                                                        else
                                                                            continue;
                                                                else
                                                                    if (*(cache_0 + pixel[5]) < c_b)
                                                                        goto success;
                                                                    else
                                                                        continue;
                                                            else
                                                                continue;
                                                        else
                                                            continue;
                                                    else
                                                        if (*(cache_0 + pixel[2]) < c_b)
                                                            if (*(cache_0 + pixel[10]) < c_b)
                                                                if (*(cache_0 + pixel[15]) < c_b)
                                                                    goto success;
                                                                else
                                                                    continue;
                                                            else
                                                                continue;
                                                        else
                                                            continue;
                                                else
                                                    continue;
                                            else
                                                continue;
                                        else
                                            continue;
                                    else if (*(cache_0 + 3) < c_b)
                                        if (*(cache_0 + pixel[6]) > cb)
                                            if (*(cache_0 + pixel[2]) > cb || *(cache_0 + pixel[2]) < c_b)
                                                continue;
                                            else
                                                if (*(cache_1 + 1) < c_b)
                                                    if (*(cache_1 + 2) > cb || *(cache_1 + 2) < c_b)
                                                        continue;
                                                    else
                                                        goto success;
                                                else
                                                    continue;
                                        else if (*(cache_0 + pixel[6]) < c_b)
                                            if (*cache_2 > cb)
                                                continue;
                                            else if (*cache_2 < c_b)
                                                if (*(cache_0 + pixel[5]) > cb)
                                                    continue;
                                                else if (*(cache_0 + pixel[5]) < c_b)
                                                    if (*(cache_0 + pixel[0]) > cb)
                                                        continue;
                                                    else if (*(cache_0 + pixel[0]) < c_b)
                                                        if (*(cache_0 + pixel[2]) > cb)
                                                            continue;
                                                        else if (*(cache_0 + pixel[2]) < c_b)
                                                            if (*(cache_1 + 2) > cb)
                                                                continue;
                                                            else if (*(cache_1 + 2) < c_b)
                                                                if (*(cache_1 + 1) > cb)
                                                                    continue;
                                                                else if (*(cache_1 + 1) < c_b)
                                                                    goto success;
                                                                else
                                                                    if (*(cache_0 + pixel[14]) < c_b)
                                                                        if (*(cache_0 + pixel[15]) < c_b)
                                                                            goto success;
                                                                        else
                                                                            continue;
                                                                    else
                                                                        continue;
                                                            else
                                                                if (*(cache_2 + -6) < c_b)
                                                                    if (*(cache_0 + pixel[14]) < c_b)
                                                                        if (*(cache_0 + pixel[15]) < c_b)
                                                                            goto success;
                                                                        else
                                                                            continue;
                                                                    else
                                                                        continue;
                                                                else
                                                                    continue;
                                                        else
                                                            if (*(cache_0 + -3) < c_b)
                                                                if (*(cache_0 + pixel[11]) < c_b)
                                                                    if (*(cache_1 + 2) < c_b)
                                                                        if (*(cache_0 + pixel[10]) < c_b)
                                                                            goto success;
                                                                        else
                                                                            continue;
                                                                    else
                                                                        continue;
                                                                else
                                                                    continue;
                                                            else
                                                                continue;
                                                    else
                                                        if (*(cache_0 + pixel[10]) < c_b)
                                                            if (*(cache_1 + 2) < c_b)
                                                                if (*(cache_0 + pixel[2]) > cb)
                                                                    continue;
                                                                else if (*(cache_0 + pixel[2]) < c_b)
                                                                    if (*(cache_1 + 1) < c_b)
                                                                        goto success;
                                                                    else
                                                                        continue;
                                                                else
                                                                    if (*(cache_0 + -3) < c_b)
                                                                        goto success;
                                                                    else
                                                                        continue;
                                                            else
                                                                continue;
                                                        else
                                                            continue;
                                                else
                                                    if (*(cache_0 + -3) < c_b)
                                                        if (*(cache_0 + pixel[15]) < c_b)
                                                            if (*(cache_0 + pixel[11]) < c_b)
                                                                if (*(cache_0 + pixel[14]) < c_b)
                                                                    if (*(cache_2 + -6) < c_b)
                                                                        goto success;
                                                                    else
                                                                        continue;
                                                                else
                                                                    continue;
                                                            else
                                                                continue;
                                                        else
                                                            continue;
                                                    else
                                                        continue;
                                            else
                                                if (*(cache_0 + -3) < c_b)
                                                    if (*(cache_0 + pixel[11]) < c_b)
                                                        if (*(cache_2 + -6) < c_b)
                                                            if (*(cache_0 + pixel[10]) < c_b)
                                                                if (*(cache_1 + 1) < c_b)
                                                                    if (*(cache_0 + pixel[5]) > cb)
                                                                        continue;
                                                                    else if (*(cache_0 + pixel[5]) < c_b)
                                                                        goto success;
                                                                    else
                                                                        if (*(cache_0 + pixel[0]) < c_b)
                                                                            goto success;
                                                                        else
                                                                            continue;
                                                                else
                                                                    continue;
                                                            else
                                                                continue;
                                                        else
                                                            continue;
                                                    else
                                                        continue;
                                                else
                                                    continue;
                                        else
                                            if (*(cache_0 + pixel[14]) < c_b)
                                                if (*(cache_0 + -3) < c_b)
                                                    if (*(cache_0 + pixel[15]) < c_b)
                                                        if (*(cache_2 + -6) < c_b)
                                                            if (*(cache_0 + pixel[11]) > cb)
                                                                continue;
                                                            else if (*(cache_0 + pixel[11]) < c_b)
                                                                if (*(cache_0 + pixel[2]) > cb)
                                                                    continue;
                                                                else if (*(cache_0 + pixel[2]) < c_b)
                                                                    if (*(cache_0 + pixel[0]) < c_b)
                                                                        if (*(cache_0 + pixel[10]) > cb)
                                                                            continue;
                                                                        else if (*(cache_0 + pixel[10]) < c_b)
                                                                            goto success;
                                                                        else
                                                                            if (*cache_2 < c_b)
                                                                                goto success;
                                                                            else
                                                                                continue;
                                                                    else
                                                                        continue;
                                                                else
                                                                    if (*(cache_1 + 1) < c_b)
                                                                        if (*(cache_0 + pixel[10]) < c_b)
                                                                            goto success;
                                                                        else
                                                                            continue;
                                                                    else
                                                                        continue;
                                                            else
                                                                if (*(cache_0 + pixel[5]) < c_b)
                                                                    if (*(cache_0 + pixel[0]) < c_b)
                                                                        goto success;
                                                                    else
                                                                        continue;
                                                                else
                                                                    continue;
                                                        else
                                                            continue;
                                                    else
                                                        continue;
                                                else
                                                    continue;
                                            else
                                                continue;
                                    else
                                        if (*(cache_0 + -3) < c_b)
                                            if (*(cache_0 + pixel[14]) < c_b)
                                                if (*(cache_0 + pixel[11]) < c_b)
                                                    if (*(cache_2 + -6) < c_b)
                                                        if (*(cache_0 + pixel[10]) < c_b)
                                                            if (*(cache_1 + 1) > cb)
                                                                continue;
                                                            else if (*(cache_1 + 1) < c_b)
                                                                if (*(cache_0 + pixel[15]) > cb)
                                                                    continue;
                                                                else if (*(cache_0 + pixel[15]) < c_b)
                                                                    if (*(cache_0 + pixel[0]) > cb)
                                                                        continue;
                                                                    else if (*(cache_0 + pixel[0]) < c_b)
                                                                        goto success;
                                                                    else
                                                                        if (*(cache_0 + pixel[6]) < c_b)
                                                                            goto success;
                                                                        else
                                                                            continue;
                                                                else
                                                                    if (*(cache_0 + pixel[5]) < c_b)
                                                                        if (*(cache_1 + 2) < c_b)
                                                                            if (*(cache_0 + pixel[6]) < c_b)
                                                                                goto success;
                                                                            else
                                                                                continue;
                                                                        else
                                                                            continue;
                                                                    else
                                                                        continue;
                                                            else
                                                                if (*(cache_0 + pixel[2]) < c_b)
                                                                    if (*(cache_0 + pixel[15]) < c_b)
                                                                        if (*(cache_0 + pixel[0]) < c_b)
                                                                            goto success;
                                                                        else
                                                                            continue;
                                                                    else
                                                                        continue;
                                                                else
                                                                    continue;
                                                        else
                                                            continue;
                                                    else
                                                        continue;
                                                else
                                                    continue;
                                            else
                                                continue;
                                        else
                                            continue;
                                else
                                    if (*(cache_0 + pixel[11]) < c_b)
                                        if (*(cache_0 + pixel[15]) > cb)
                                            if (*cache_2 > cb)
                                                continue;
                                            else if (*cache_2 < c_b)
                                                if (*(cache_0 + pixel[2]) > cb)
                                                    continue;
                                                else if (*(cache_0 + pixel[2]) < c_b)
                                                    if (*(cache_0 + pixel[5]) < c_b)
                                                        if (*(cache_0 + pixel[6]) < c_b)
                                                            if (*(cache_0 + 3) < c_b)
                                                                goto success;
                                                            else
                                                                continue;
                                                        else
                                                            continue;
                                                    else
                                                        continue;
                                                else
                                                    if (*(cache_0 + -3) < c_b)
                                                        if (*(cache_0 + pixel[6]) < c_b)
                                                            if (*(cache_0 + 3) < c_b)
                                                                if (*(cache_0 + pixel[5]) < c_b)
                                                                    if (*(cache_1 + 2) < c_b)
                                                                        goto success;
                                                                    else
                                                                        continue;
                                                                else
                                                                    continue;
                                                            else
                                                                continue;
                                                        else
                                                            continue;
                                                    else
                                                        continue;
                                            else
                                                if (*(cache_2 + -6) < c_b)
                                                    if (*(cache_0 + 3) > cb)
                                                        continue;
                                                    else if (*(cache_0 + 3) < c_b)
                                                        if (*(cache_0 + pixel[6]) < c_b)
                                                            if (*(cache_0 + pixel[2]) > cb || *(cache_0 + pixel[2]) < c_b)
                                                                continue;
                                                            else
                                                                if (*(cache_0 + pixel[10]) < c_b)
                                                                    goto success;
                                                                else
                                                                    continue;
                                                        else
                                                            continue;
                                                    else
                                                        if (*(cache_0 + pixel[14]) < c_b)
                                                            if (*(cache_0 + pixel[5]) < c_b)
                                                                goto success;
                                                            else
                                                                continue;
                                                        else
                                                            continue;
                                                else
                                                    continue;
                                        else if (*(cache_0 + pixel[15]) < c_b)
                                            if (*(cache_1 + 2) < c_b)
                                                if (*(cache_0 + -3) > cb)
                                                    continue;
                                                else if (*(cache_0 + -3) < c_b)
                                                    if (*(cache_0 + pixel[14]) > cb)
                                                        continue;
                                                    else if (*(cache_0 + pixel[14]) < c_b)
                                                        if (*(cache_0 + pixel[6]) > cb)
                                                            if (*(cache_0 + pixel[0]) < c_b)
                                                                if (*(cache_1 + 1) < c_b)
                                                                    if (*(cache_0 + pixel[10]) < c_b)
                                                                        goto success;
                                                                    else
                                                                        continue;
                                                                else
                                                                    continue;
                                                            else
                                                                continue;
                                                        else if (*(cache_0 + pixel[6]) < c_b)
                                                            if (*(cache_2 + -6) > cb)
                                                                continue;
                                                            else if (*(cache_2 + -6) < c_b)
                                                                if (*(cache_0 + pixel[10]) < c_b)
                                                                    if (*(cache_1 + 1) < c_b)
                                                                        goto success;
                                                                    else
                                                                        continue;
                                                                else
                                                                    continue;
                                                            else
                                                                if (*cache_2 < c_b)
                                                                    if (*(cache_0 + pixel[5]) < c_b)
                                                                        if (*(cache_0 + 3) < c_b)
                                                                            goto success;
                                                                        else
                                                                            continue;
                                                                    else
                                                                        continue;
                                                                else
                                                                    continue;
                                                        else
                                                            if (*(cache_0 + pixel[0]) < c_b)
                                                                if (*(cache_0 + pixel[10]) < c_b)
                                                                    if (*(cache_2 + -6) < c_b)
                                                                        if (*(cache_1 + 1) < c_b)
                                                                            goto success;
                                                                        else
                                                                            continue;
                                                                    else
                                                                        continue;
                                                                else
                                                                    continue;
                                                            else
                                                                continue;
                                                    else
                                                        if (*(cache_0 + 3) < c_b)
                                                            if (*(cache_2 + -6) > cb)
                                                                continue;
                                                            else if (*(cache_2 + -6) < c_b)
                                                                if (*(cache_0 + pixel[6]) < c_b)
                                                                    if (*(cache_0 + pixel[10]) < c_b)
                                                                        goto success;
                                                                    else
                                                                        continue;
                                                                else
                                                                    continue;
                                                            else
                                                                if (*cache_2 < c_b)
                                                                    if (*(cache_0 + pixel[6]) < c_b)
                                                                        goto success;
                                                                    else
                                                                        continue;
                                                                else
                                                                    continue;
                                                        else
                                                            continue;
                                                else
                                                    if (*cache_2 < c_b)
                                                        if (*(cache_0 + 3) < c_b)
                                                            if (*(cache_0 + pixel[2]) < c_b)
                                                                if (*(cache_0 + pixel[5]) < c_b)
                                                                    if (*(cache_1 + 1) < c_b)
                                                                        if (*(cache_0 + pixel[6]) < c_b)
                                                                            goto success;
                                                                        else
                                                                            continue;
                                                                    else
                                                                        continue;
                                                                else
                                                                    continue;
                                                            else
                                                                continue;
                                                        else
                                                            continue;
                                                    else
                                                        continue;
                                            else
                                                continue;
                                        else
                                            if (*(cache_0 + 3) > cb)
                                                if (*(cache_0 + pixel[5]) < c_b)
                                                    if (*(cache_0 + pixel[14]) < c_b)
                                                        if (*(cache_1 + 2) < c_b)
                                                            if (*(cache_2 + -6) < c_b)
                                                                if (*(cache_0 + pixel[6]) < c_b)
                                                                    goto success;
                                                                else
                                                                    continue;
                                                            else
                                                                continue;
                                                        else
                                                            continue;
                                                    else
                                                        continue;
                                                else
                                                    continue;
                                            else if (*(cache_0 + 3) < c_b)
                                                if (*cache_2 > cb)
                                                    if (*(cache_2 + -6) < c_b)
                                                        if (*(cache_0 + -3) < c_b)
                                                            goto success;
                                                        else
                                                            continue;
                                                    else
                                                        continue;
                                                else if (*cache_2 < c_b)
                                                    if (*(cache_0 + pixel[6]) < c_b)
                                                        if (*(cache_0 + pixel[2]) > cb)
                                                            continue;
                                                        else if (*(cache_0 + pixel[2]) < c_b)
                                                            if (*(cache_1 + 2) < c_b)
                                                                if (*(cache_0 + pixel[5]) < c_b)
                                                                    if (*(cache_1 + 1) < c_b)
                                                                        if (*(cache_0 + pixel[10]) < c_b)
                                                                            goto success;
                                                                        else
                                                                            continue;
                                                                    else
                                                                        continue;
                                                                else
                                                                    continue;
                                                            else
                                                                continue;
                                                        else
                                                            if (*(cache_0 + -3) < c_b)
                                                                if (*(cache_1 + 2) < c_b)
                                                                    if (*(cache_0 + pixel[5]) < c_b)
                                                                        if (*(cache_1 + 1) < c_b)
                                                                            if (*(cache_0 + pixel[10]) < c_b)
                                                                                goto success;
                                                                            else
                                                                                continue;
                                                                        else
                                                                            continue;
                                                                    else
                                                                        continue;
                                                                else
                                                                    continue;
                                                            else
                                                                continue;
                                                    else
                                                        continue;
                                                else
                                                    if (*(cache_2 + -6) < c_b)
                                                        if (*(cache_0 + pixel[6]) < c_b)
                                                            if (*(cache_0 + -3) < c_b)
                                                                if (*(cache_1 + 2) < c_b)
                                                                    if (*(cache_0 + pixel[10]) < c_b)
                                                                        if (*(cache_0 + pixel[5]) < c_b)
                                                                            if (*(cache_1 + 1) < c_b)
                                                                                goto success;
                                                                            else
                                                                                continue;
                                                                        else
                                                                            continue;
                                                                    else
                                                                        continue;
                                                                else
                                                                    continue;
                                                            else
                                                                continue;
                                                        else
                                                            continue;
                                                    else
                                                        continue;
                                            else
                                                if (*(cache_0 + pixel[14]) < c_b)
                                                    if (*(cache_0 + pixel[5]) < c_b)
                                                        if (*(cache_0 + -3) < c_b)
                                                            if (*(cache_1 + 2) < c_b)
                                                                if (*(cache_2 + -6) < c_b)
                                                                    if (*(cache_0 + pixel[6]) < c_b)
                                                                        if (*(cache_0 + pixel[10]) < c_b)
                                                                            goto success;
                                                                        else
                                                                            continue;
                                                                    else
                                                                        continue;
                                                                else
                                                                    continue;
                                                            else
                                                                continue;
                                                        else
                                                            continue;
                                                    else
                                                        continue;
                                                else
                                                    continue;
                                    else
                                        continue;
                            else
                                if (*cache_2 > cb)
                                    if (*(cache_0 + pixel[15]) > cb)
                                        if (*(cache_0 + pixel[6]) > cb)
                                            if (*(cache_0 + 3) > cb)
                                                if (*(cache_2 + -6) > cb)
                                                    if (*(cache_0 + pixel[2]) > cb)
                                                        if (*(cache_0 + pixel[0]) > cb)
                                                            if (*(cache_0 + pixel[5]) > cb)
                                                                if (*(cache_0 + pixel[14]) > cb)
                                                                    if (*(cache_0 + pixel[1]) > cb)
                                                                        goto success;
                                                                    else
                                                                        continue;
                                                                else if (*(cache_0 + pixel[14]) < c_b)
                                                                    continue;
                                                                else
                                                                    if (*(cache_1 + 1) > cb)
                                                                        goto success;
                                                                    else
                                                                        continue;
                                                            else if (*(cache_0 + pixel[5]) < c_b)
                                                                continue;
                                                            else
                                                                if (*(cache_0 + pixel[11]) > cb)
                                                                    if (*(cache_0 + -3) > cb)
                                                                        goto success;
                                                                    else
                                                                        continue;
                                                                else
                                                                    continue;
                                                        else
                                                            continue;
                                                    else
                                                        continue;
                                                else if (*(cache_2 + -6) < c_b)
                                                    if (*(cache_1 + 1) > cb)
                                                        if (*(cache_0 + pixel[2]) > cb)
                                                            if (*(cache_0 + pixel[5]) > cb)
                                                                goto success;
                                                            else
                                                                continue;
                                                        else
                                                            continue;
                                                    else if (*(cache_1 + 1) < c_b)
                                                        continue;
                                                    else
                                                        if (*(cache_0 + pixel[14]) > cb)
                                                            if (*(cache_1 + 2) > cb)
                                                                goto success;
                                                            else
                                                                continue;
                                                        else
                                                            continue;
                                                else
                                                    if (*(cache_1 + 2) > cb)
                                                        if (*(cache_0 + pixel[14]) > cb)
                                                            if (*(cache_0 + pixel[5]) > cb)
                                                                if (*(cache_0 + pixel[2]) > cb)
                                                                    if (*(cache_0 + pixel[0]) > cb)
                                                                        if (*(cache_0 + pixel[1]) > cb)
                                                                            goto success;
                                                                        else
                                                                            continue;
                                                                    else
                                                                        continue;
                                                                else
                                                                    continue;
                                                            else
                                                                continue;
                                                        else if (*(cache_0 + pixel[14]) < c_b)
                                                            if (*(cache_1 + 1) > cb)
                                                                goto success;
                                                            else
                                                                continue;
                                                        else
                                                            if (*(cache_1 + 1) > cb)
                                                                if (*(cache_0 + pixel[2]) > cb)
                                                                    if (*(cache_0 + pixel[5]) > cb)
                                                                        if (*(cache_0 + pixel[0]) > cb)
                                                                            goto success;
                                                                        else
                                                                            continue;
                                                                    else
                                                                        continue;
                                                                else
                                                                    continue;
                                                            else
                                                                continue;
                                                    else
                                                        continue;
                                            else if (*(cache_0 + 3) < c_b)
                                                continue;
                                            else
                                                if (*(cache_0 + -3) > cb)
                                                    if (*(cache_0 + pixel[10]) > cb)
                                                        if (*(cache_2 + -6) > cb)
                                                            if (*(cache_0 + pixel[11]) > cb)
                                                                if (*(cache_0 + pixel[14]) > cb)
                                                                    if (*(cache_0 + pixel[1]) > cb)
                                                                        if (*(cache_0 + pixel[2]) > cb)
                                                                            if (*(cache_0 + pixel[0]) > cb)
                                                                                goto success;
                                                                            else
                                                                                continue;
                                                                        else
                                                                            continue;
                                                                    else
                                                                        continue;
                                                                else
                                                                    continue;
                                                            else
                                                                continue;
                                                        else
                                                            continue;
                                                    else
                                                        continue;
                                                else
                                                    continue;
                                        else if (*(cache_0 + pixel[6]) < c_b)
                                            if (*(cache_0 + pixel[10]) > cb)
                                                if (*(cache_0 + -3) > cb)
                                                    if (*(cache_0 + pixel[2]) > cb)
                                                        if (*(cache_0 + pixel[11]) > cb)
                                                            if (*(cache_2 + -6) > cb)
                                                                if (*(cache_0 + pixel[1]) > cb)
                                                                    goto success;
                                                                else
                                                                    continue;
                                                            else
                                                                continue;
                                                        else
                                                            continue;
                                                    else
                                                        continue;
                                                else
                                                    continue;
                                            else if (*(cache_0 + pixel[10]) < c_b)
                                                continue;
                                            else
                                                if (*(cache_0 + 3) > cb)
                                                    if (*(cache_0 + -3) > cb)
                                                        if (*(cache_1 + 1) > cb || *(cache_1 + 1) < c_b)
                                                            continue;
                                                        else
                                                            if (*(cache_0 + pixel[11]) > cb)
                                                                if (*(cache_2 + -6) > cb)
                                                                    if (*(cache_0 + pixel[5]) > cb)
                                                                        continue;
                                                                    else if (*(cache_0 + pixel[5]) < c_b)
                                                                        goto success;
                                                                    else
                                                                        if (*(cache_0 + pixel[14]) > cb)
                                                                            goto success;
                                                                        else
                                                                            continue;
                                                                else
                                                                    continue;
                                                            else if (*(cache_0 + pixel[11]) < c_b)
                                                                continue;
                                                            else
                                                                if (*(cache_0 + pixel[5]) > cb)
                                                                    goto success;
                                                                else
                                                                    continue;
                                                    else
                                                        continue;
                                                else
                                                    continue;
                                        else
                                            if (*(cache_0 + -3) > cb)
                                                if (*(cache_0 + pixel[10]) > cb)
                                                    if (*(cache_0 + pixel[14]) > cb)
                                                        if (*(cache_0 + pixel[1]) > cb)
                                                            if (*(cache_2 + -6) > cb)
                                                                if (*(cache_0 + pixel[2]) > cb)
                                                                    if (*(cache_0 + pixel[11]) > cb)
                                                                        if (*(cache_0 + pixel[0]) > cb)
                                                                            goto success;
                                                                        else
                                                                            continue;
                                                                    else if (*(cache_0 + pixel[11]) < c_b)
                                                                        continue;
                                                                    else
                                                                        if (*(cache_0 + pixel[5]) > cb)
                                                                            goto success;
                                                                        else
                                                                            continue;
                                                                else
                                                                    continue;
                                                            else
                                                                continue;
                                                        else
                                                            continue;
                                                    else
                                                        continue;
                                                else if (*(cache_0 + pixel[10]) < c_b)
                                                    if (*(cache_0 + pixel[5]) > cb)
                                                        if (*(cache_0 + 3) > cb)
                                                            if (*(cache_1 + 2) > cb || *(cache_1 + 2) < c_b)
                                                                continue;
                                                            else
                                                                goto success;
                                                        else
                                                            continue;
                                                    else
                                                        continue;
                                                else
                                                    if (*(cache_0 + 3) > cb)
                                                        if (*(cache_0 + pixel[14]) > cb)
                                                            if (*(cache_0 + pixel[5]) > cb)
                                                                if (*(cache_0 + pixel[1]) > cb)
                                                                    if (*(cache_2 + -6) > cb)
                                                                        if (*(cache_0 + pixel[2]) > cb)
                                                                            if (*(cache_0 + pixel[0]) > cb)
                                                                                goto success;
                                                                            else
                                                                                continue;
                                                                        else
                                                                            continue;
                                                                    else
                                                                        continue;
                                                                else
                                                                    continue;
                                                            else if (*(cache_0 + pixel[5]) < c_b)
                                                                if (*(cache_0 + pixel[11]) > cb)
                                                                    goto success;
                                                                else
                                                                    continue;
                                                            else
                                                                if (*(cache_0 + pixel[11]) > cb)
                                                                    if (*(cache_0 + pixel[1]) > cb)
                                                                        if (*(cache_2 + -6) > cb)
                                                                            if (*(cache_0 + pixel[2]) > cb)
                                                                                if (*(cache_0 + pixel[0]) > cb)
                                                                                    goto success;
                                                                                else
                                                                                    continue;
                                                                            else
                                                                                continue;
                                                                        else
                                                                            continue;
                                                                    else
                                                                        continue;
                                                                else
                                                                    continue;
                                                        else
                                                            continue;
                                                    else
                                                        continue;
                                            else
                                                continue;
                                    else
                                        continue;
                                else if (*cache_2 < c_b)
                                    if (*(cache_0 + pixel[15]) < c_b)
                                        if (*(cache_0 + pixel[5]) > cb)
                                            if (*(cache_0 + pixel[10]) < c_b)
                                                if (*(cache_1 + 2) > cb)
                                                    if (*(cache_0 + pixel[2]) < c_b)
                                                        if (*(cache_0 + pixel[14]) < c_b)
                                                            goto success;
                                                        else
                                                            continue;
                                                    else
                                                        continue;
                                                else if (*(cache_1 + 2) < c_b)
                                                    continue;
                                                else
                                                    if (*(cache_0 + pixel[11]) < c_b)
                                                        if (*(cache_0 + pixel[2]) < c_b)
                                                            if (*(cache_0 + pixel[1]) < c_b)
                                                                if (*(cache_0 + pixel[0]) < c_b)
                                                                    goto success;
                                                                else
                                                                    continue;
                                                            else
                                                                continue;
                                                        else
                                                            continue;
                                                    else
                                                        continue;
                                            else
                                                continue;
                                        else if (*(cache_0 + pixel[5]) < c_b)
                                            if (*(cache_1 + 2) > cb)
                                                if (*(cache_2 + -6) < c_b)
                                                    if (*(cache_0 + pixel[6]) > cb)
                                                        continue;
                                                    else if (*(cache_0 + pixel[6]) < c_b)
                                                        goto success;
                                                    else
                                                        if (*(cache_0 + -3) < c_b)
                                                            if (*(cache_0 + 3) > cb)
                                                                continue;
                                                            else if (*(cache_0 + 3) < c_b)
                                                                if (*(cache_0 + pixel[14]) < c_b)
                                                                    goto success;
                                                                else
                                                                    continue;
                                                            else
                                                                if (*(cache_0 + pixel[10]) < c_b)
                                                                    if (*(cache_0 + pixel[2]) < c_b)
                                                                        goto success;
                                                                    else
                                                                        continue;
                                                                else
                                                                    continue;
                                                        else
                                                            continue;
                                                else
                                                    continue;
                                            else if (*(cache_1 + 2) < c_b)
                                                if (*(cache_0 + 3) > cb)
                                                    continue;
                                                else if (*(cache_0 + 3) < c_b)
                                                    if (*(cache_0 + pixel[14]) > cb)
                                                        if (*(cache_1 + 1) < c_b)
                                                            if (*(cache_0 + pixel[6]) < c_b)
                                                                if (*(cache_0 + pixel[2]) < c_b)
                                                                    goto success;
                                                                else
                                                                    continue;
                                                            else
                                                                continue;
                                                        else
                                                            continue;
                                                    else if (*(cache_0 + pixel[14]) < c_b)
                                                        if (*(cache_0 + pixel[6]) > cb)
                                                            continue;
                                                        else if (*(cache_0 + pixel[6]) < c_b)
                                                            if (*(cache_0 + pixel[1]) < c_b)
                                                                if (*(cache_0 + pixel[2]) < c_b)
                                                                    if (*(cache_0 + pixel[0]) < c_b)
                                                                        goto success;
                                                                    else
                                                                        continue;
                                                                else
                                                                    continue;
                                                            else
                                                                continue;
                                                        else
                                                            if (*(cache_0 + -3) < c_b)
                                                                if (*(cache_0 + pixel[2]) < c_b)
                                                                    if (*(cache_2 + -6) < c_b)
                                                                        goto success;
                                                                    else
                                                                        continue;
                                                                else
                                                                    continue;
                                                            else
                                                                continue;
                                                    else
                                                        if (*(cache_1 + 1) < c_b)
                                                            if (*(cache_0 + pixel[6]) < c_b)
                                                                if (*(cache_0 + pixel[2]) < c_b)
                                                                    if (*(cache_0 + pixel[1]) < c_b)
                                                                        if (*(cache_0 + pixel[0]) < c_b)
                                                                            goto success;
                                                                        else
                                                                            continue;
                                                                    else
                                                                        continue;
                                                                else
                                                                    continue;
                                                            else
                                                                continue;
                                                        else
                                                            continue;
                                                else
                                                    if (*(cache_0 + -3) < c_b)
                                                        if (*(cache_0 + pixel[10]) < c_b)
                                                            if (*(cache_2 + -6) < c_b)
                                                                if (*(cache_0 + pixel[14]) < c_b)
                                                                    goto success;
                                                                else
                                                                    continue;
                                                            else
                                                                continue;
                                                        else
                                                            continue;
                                                    else
                                                        continue;
                                            else
                                                if (*(cache_2 + -6) < c_b)
                                                    if (*(cache_0 + pixel[6]) > cb)
                                                        if (*(cache_0 + pixel[10]) > cb)
                                                            goto success;
                                                        else
                                                            continue;
                                                    else if (*(cache_0 + pixel[6]) < c_b)
                                                        if (*(cache_0 + 3) > cb)
                                                            continue;
                                                        else if (*(cache_0 + 3) < c_b)
                                                            if (*(cache_0 + pixel[1]) < c_b)
                                                                if (*(cache_0 + pixel[14]) < c_b)
                                                                    if (*(cache_0 + pixel[2]) < c_b)
                                                                        if (*(cache_0 + pixel[0]) < c_b)
                                                                            goto success;
                                                                        else
                                                                            continue;
                                                                    else
                                                                        continue;
                                                                else
                                                                    continue;
                                                            else
                                                                continue;
                                                        else
                                                            if (*(cache_0 + -3) < c_b)
                                                                if (*(cache_0 + pixel[11]) < c_b)
                                                                    if (*(cache_0 + pixel[10]) < c_b)
                                                                        if (*(cache_0 + pixel[1]) < c_b)
                                                                            if (*(cache_1 + 1) > cb || *(cache_1 + 1) < c_b)
                                                                                continue;
                                                                            else
                                                                                goto success;
                                                                        else
                                                                            continue;
                                                                    else
                                                                        continue;
                                                                else
                                                                    continue;
                                                            else
                                                                continue;
                                                    else
                                                        if (*(cache_0 + -3) < c_b)
                                                            if (*(cache_0 + pixel[14]) < c_b)
                                                                if (*(cache_0 + pixel[0]) < c_b)
                                                                    if (*(cache_0 + 3) > cb)
                                                                        continue;
                                                                    else if (*(cache_0 + 3) < c_b)
                                                                        if (*(cache_0 + pixel[2]) < c_b)
                                                                            if (*(cache_0 + pixel[1]) < c_b)
                                                                                goto success;
                                                                            else
                                                                                continue;
                                                                        else
                                                                            continue;
                                                                    else
                                                                        if (*(cache_0 + pixel[10]) < c_b)
                                                                            if (*(cache_0 + pixel[11]) < c_b)
                                                                                if (*(cache_0 + pixel[2]) < c_b)
                                                                                    goto success;
                                                                                else
                                                                                    continue;
                                                                            else
                                                                                continue;
                                                                        else
                                                                            continue;
                                                                else
                                                                    continue;
                                                            else
                                                                continue;
                                                        else
                                                            continue;
                                                else
                                                    continue;
                                        else
                                            if (*(cache_0 + pixel[11]) < c_b)
                                                if (*(cache_0 + -3) < c_b)
                                                    if (*(cache_0 + pixel[10]) > cb)
                                                        continue;
                                                    else if (*(cache_0 + pixel[10]) < c_b)
                                                        if (*(cache_0 + pixel[14]) < c_b)
                                                            if (*(cache_0 + pixel[2]) < c_b)
                                                                if (*(cache_2 + -6) < c_b)
                                                                    if (*(cache_0 + pixel[1]) < c_b)
                                                                        if (*(cache_0 + pixel[0]) < c_b)
                                                                            goto success;
                                                                        else
                                                                            continue;
                                                                    else
                                                                        continue;
                                                                else
                                                                    continue;
                                                            else
                                                                continue;
                                                        else
                                                            continue;
                                                    else
                                                        if (*(cache_0 + 3) < c_b)
                                                            if (*(cache_0 + pixel[14]) < c_b)
                                                                if (*(cache_0 + pixel[1]) < c_b)
                                                                    if (*(cache_2 + -6) < c_b)
                                                                        if (*(cache_0 + pixel[0]) < c_b)
                                                                            if (*(cache_0 + pixel[2]) < c_b)
                                                                                goto success;
                                                                            else
                                                                                continue;
                                                                        else
                                                                            continue;
                                                                    else
                                                                        continue;
                                                                else
                                                                    continue;
                                                            else
                                                                continue;
                                                        else
                                                            continue;
                                                else
                                                    continue;
                                            else
                                                continue;
                                    else
                                        continue;
                                else
                                    continue;
                        success:
                            if (total >= rsize)
                            {
                                rsize *= 2;
                                #if DOTNET_V1_1
                                    ret = (FASTcorner[])ArrayResize(ret, rsize);
                                #else
                                    Array.Resize(ref ret, rsize);
                                #endif
                            }

                            int xx = (int)(cache_0 - line_min);
                            int yy = y;
                            ret[total] = new FASTcorner(xx, yy);
                            total++;
                        }
                    }
                    // resize the array so that we don't need to explicityly pass back the total
                    // number of corners found
                    #if DOTNET_V1_1
                        ret = (FASTcorner[])ArrayResize(ret, total);
                    #else
                        Array.Resize(ref ret, total);
                    #endif
                    return ret;
                }
            }
        }
Example #8
0
 public FASTline(FASTcorner point1, FASTcorner point2, int response)
 {
     this.point1   = point1;
     this.point2   = point2;
     this.response = response;
 }
Example #9
0
 public FASTline(FASTcorner point1, FASTcorner point2, int response)
 {
     this.point1 = point1;
     this.point2 = point2;
     this.response = response;
 }