Ejemplo n.º 1
0
 private static ColorData[,] GetColorData(Color[,] data)
 {
     ColorData[,] colorData = new ColorData[data.GetLength(0), data.GetLength(1)];
     for (int i = 0; i < data.GetLength(0); i++)
     {
         for (int j = 0; j < data.GetLength(1); j++)
         {
             colorData[i, j] = new ColorData()
             {
                 color = data[i, j], colorName = ColorMethods.GetResistorColorCode(data[i, j])
             };
         }
     }
     return(colorData);
 }
Ejemplo n.º 2
0
    private static ColorMethods.ColorName GetColor(Color[,] data, int i)
    {
        float r = 0f, g = 0f, b = 0f;

        for (int j = 0; j < data.GetLength(0); j++)
        {
            r += data[j, i].r;
            g += data[j, i].g;
            b += data[j, i].b;
        }
        r /= data.GetLength(0);
        g /= data.GetLength(0);
        b /= data.GetLength(0);

        return(ColorMethods.GetResistorColorCode(new Color(r, g, b)));
    }
Ejemplo n.º 3
0
    private void Update()
    {
        //print(ColorMethods.GetResistorColorCode(new Color(0f, 4f/255f, 13f/255f)).ToString());

        if (Input.GetKeyDown(KeyCode.Space))
        {
            var data = t.EncodeToPNG();
            File.WriteAllBytes("a.png", data);
            print("oldu");
        }

        if (Input.touchCount > 0 && Input.touches[0].phase == TouchPhase.Began && Input.touches[0].position.x > Screen.width / 2)
        {
            Application.CaptureScreenshot("ss" + Time.fixedTime + ".png");
            //StartCoroutine(CaptureScreenshotCoroutine(Screen.width, Screen.height));
            s += "s";
        }

        if (!camAvailable)
        {
            return;
        }

        float ratio = (float)backCam.width / (float)backCam.height;

        fit.aspectRatio = ratio;

        float zoomValue = 2.7f;
        float scaleY    = backCam.videoVerticallyMirrored ? -1f : 1f;

        background.rectTransform.localScale = new Vector3(1f * zoomValue, scaleY * zoomValue, 1f);

        int orient = -backCam.videoRotationAngle;

        background.rectTransform.localEulerAngles = new Vector3(0, 0, orient);

        Color color = backCam.GetPixel(backCam.width / 2, backCam.height / 2);

        ColorMethods.ColorName colorName = ColorMethods.GetResistorColorCode(color);
        colorDisplayer.color = GetPrimitiveColor(colorName);
        //colorText.text = "Color: " + colorName.ToString();

        infoText.text = ColorMethods.GetHSV(color).ToString() + s;

        cursor.anchoredPosition = new Vector3(1080 / 2, 1920 / 2, 0f);
        int width  = 75;
        int heigth = 5;

        Color[] colorBlock = backCam.GetPixels(backCam.width / 2 - width / 2, backCam.height / 2 - (heigth - 1) / 2, width, heigth);
        Color[,] colorBlock2D = ArrayTo2DArray(colorBlock, width, heigth);
        //Color baseColor;
        //List<ColorData> colorData = ResistorOhmFinder.GetLines(colorBlock2D, out baseColor);
        //simulator.Set(colorData, baseColor);

        t = new Texture2D(width, heigth);
        t.SetPixels(0, 0, width, heigth, colorBlock);
        t.Apply();

        var t2 = MedianBlur(t, 5);

        t2.Apply();
        Color[] colorBlockBlurred = t2.GetPixels();
        Color[,] colorBlockBlurred2D = ArrayTo2DArray(colorBlockBlurred, width, heigth);
        //testTexture2D = MedianBlur(testTexture2D);
        testImage.texture  = t;
        testImage2.texture = t2;

        List <ColorMethods.ColorName> colorData = ResistorOhmFinder.GetLines(colorBlockBlurred2D, lineCount);

        simulator.Set(colorData, lineCount);


        redLine.sizeDelta = new Vector2(width * zoomValue / 2 * 1.1f, 3);

        //redLine.sizeDelta = new Vector2(width * ratio / 2 * zoomValue * 1.1f, 3);
    }
Ejemplo n.º 4
0
    private static ColorMethods.ColorName GetColor2(Color[,] data, int i)
    {
        int j = (data.GetLength(0) - 1) / 2;

        ColorMethods.ColorName color = ColorMethods.GetResistorColorCode(data[j, i]);
        if (color != ColorMethods.ColorName.Unknown)
        {
            return(color);
        }

        //If color did not recognized, look left..
        if (i > 0 && (color = ColorMethods.GetResistorColorCode(data[j, i - 1])) != ColorMethods.ColorName.Unknown)
        {
            return(color);
        }

        //If not recognized, look rigth
        if (i < data.GetLength(1) - 1 && (color = ColorMethods.GetResistorColorCode(data[j, i + 1])) != ColorMethods.ColorName.Unknown)
        {
            return(color);
        }

        //If not recognized, look top
        if (j > 0 && (color = ColorMethods.GetResistorColorCode(data[j - 1, i])) != ColorMethods.ColorName.Unknown)
        {
            return(color);
        }

        //If not recognized, look bottom
        if (data.GetLength(0) > 1 && (color = ColorMethods.GetResistorColorCode(data[j + 1, i])) != ColorMethods.ColorName.Unknown)
        {
            return(color);
        }

        //If not recognized, look top left
        if (j > 0 && i > 0 && (color = ColorMethods.GetResistorColorCode(data[j - 1, i - 1])) != ColorMethods.ColorName.Unknown)
        {
            return(color);
        }

        //If not recognized, look top rigth
        if (j > 0 && i < data.GetLength(1) - 1 && (color = ColorMethods.GetResistorColorCode(data[j - 1, i + 1])) != ColorMethods.ColorName.Unknown)
        {
            return(color);
        }

        //If not recognized, look bottom left
        if (data.GetLength(0) > 1 && i > 0 && (color = ColorMethods.GetResistorColorCode(data[j + 1, i - 1])) != ColorMethods.ColorName.Unknown)
        {
            return(color);
        }

        //If not recognized, look bottom right
        if (data.GetLength(0) > 1 && i < data.GetLength(1) - 1 && (color = ColorMethods.GetResistorColorCode(data[j + 1, i + 1])) != ColorMethods.ColorName.Unknown)
        {
            return(color);
        }

        //If never recognized, return null
        return(ColorMethods.ColorName.Unknown);
    }