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); }
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))); }
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); }
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); }