Пример #1
0
	void Awake() {
		openCVImage = OpenCVImage.Instance(webCamHeight, webCamWidth);

		renderTexture = new RenderTexture (webCamWidth, webCamHeight, 16);
		screenShot = new Texture2D (webCamWidth, webCamHeight);
		screenShotRect = new Rect (0, 0, webCamWidth, webCamHeight);
	}
Пример #2
0
 private int Percent(OpenCVImage picture)
 {
     var k1 = (int)((originalPictureBox.Height / (double)picture.Height) * 100);
     var k2 = (int)((originalPictureBox.Width / (double)picture.Width) * 100);
     var percent = Math.Min(k1, k2);
     return percent;
 }
Пример #3
0
 public OpenCVImage OpenImage(string fileName) {
     try {
         Mat load = new Mat(fileName, LoadMode.AnyColor);
         OpenCVImage original = new OpenCVImage(load);
         return original;
     } catch {
         MessageBox.Show("ошибка при открытии картинки");
         return null;
     } 
 }
    public ContinueExercise()
    {
        _srcBinaryImage = new Mat();
        _removeBgImage  = new Mat();

        openCVImage        = OpenCVImage.Instance();
        size               = new Size(5, 5);
        point              = new Point(3, 3);
        StructuringElement = Cv2.GetStructuringElement(MorphShapes.Ellipse, size, point);
    }
    public StepByStep()
    {
        openCVImage = OpenCVImage.Instance();

        _srcBinaryImage    = new Mat();
        _middleImage       = new Mat();
        StructuringElement = Cv2.GetStructuringElement(
            MorphShapes.Ellipse, new Size(5, 5), new Point(3, 3));

        _dstImageBuffer         = new Mat();
        stepImageBufferOfBuffer = new Mat();
        stepImageBuffer         = new Mat[2];
    }
    void Update()
    {
        if (this.isActiveAndEnabled)
        {
            text.text = (int)time + " / " + (int)(endTime - 1) + "초 안에 자세를 잡아주세요!\n"
                        + currentExercise + "  " + currentStep + " / " + maxStep;

            switch (currentStep)
            {
            case 1:
                time += Time.deltaTime;
                if (time >= endTime)
                {
                    OpenCVImage.Instance().stepOne = true;
                    nextCurrentStep();
                    okay.PlayOneShot(okay.clip);

                    GameObject.Find("/ImageTarget/Beta")
                    .GetComponent <BetaController>().nextStep();
                }
                break;

            case 2:
                time += Time.deltaTime;
                if (time >= endTime)
                {
                    OpenCVImage.Instance().stepTwo = true;
                    nextCurrentStep();
                    okay.PlayOneShot(okay.clip);
                }
                break;

            case 3:
                text.text = "잘하셨습니다!";
                if (!okay.isPlaying)
                {
                    Init();
                    GameObject.Find("/ImageTarget/Beta")
                    .GetComponent <BetaController>().endStep();
                    GameObject.Find("/ImageTarget/Beta")
                    .GetComponent <BetaController>().stopExerciseAnimation();
                    GameObject.Find("/Managers/Canvas Manager")
                    .GetComponent <CanvasManager>().nextCanvas();
                }
                break;

            default:
                break;
            }
        }
    }
Пример #7
0
 public override OpenCVImage ApplyFilter(Mat currentPicture)
 {
     try
     {
         Mat resultPicture = new Mat();
         Cv2.Threshold(currentPicture, resultPicture, downLimit, upLimit, type);
         OpenCVImage result = new OpenCVImage(resultPicture);
         return result;
     }
     catch
     {
         MessageBox.Show("не удалось применить фильтр Threshold");
         return new OpenCVImage(currentPicture);
     }
 }
Пример #8
0
 public override OpenCVImage ApplyFilter(Mat picture)
 {
     try
     {
         var resultPicture = new Mat();
         Cv2.CvtColor(picture, resultPicture, ColorConversion.BgraToGray);
         var result = new OpenCVImage(resultPicture);
         return result;
     }
     catch
     {
         MessageBox.Show("не удалось применить фильтр CvtColorToGray");
         return new OpenCVImage(picture);
     }
 }
Пример #9
0
 public override OpenCVImage ApplyFilter(Mat picture)
 {
     try
     {
         Mat resultPicture = new Mat();
         Cv2.Dilate(picture, resultPicture, null);
         OpenCVImage result = new OpenCVImage(resultPicture);
         return result;
     }
     catch
     {
         MessageBox.Show("не удалось применить фильтр Dilate");
         return new OpenCVImage(picture);
     }
 }
Пример #10
0
 public override OpenCVImage ApplyFilter(Mat picture)
 {
     try
     {
         Mat resultPicture = new Mat();
         Cv2.CvtColor(picture, resultPicture, ColorConversion.BgraToGray);
         Cv2.Canny(resultPicture, resultPicture, 10, 100, 3);
         OpenCVImage result = new OpenCVImage(resultPicture);
         return result;
     }
     catch (Exception e)
     {
         MessageBox.Show("не удалось применить фильтр Canny");
         return new OpenCVImage(picture);
     }
 }
 void Start()
 {
     openCVImage = OpenCVImage.Instance();
 }
 void Awake()
 {
     openCVImage = OpenCVImage.Instance(webCamHeight, webCamWidth);
 }
Пример #13
0
 private void OnOpenMovieButtonClick(object sender, EventArgs e)
 {
     videoTimer.Stop();
     openFileDialog.Filter = "";
     if (openFileDialog.ShowDialog() == DialogResult.OK)
     {
         this.Text = filename = openFileDialog.FileName;
     }
     ShowOriginal();
     persistFiltersButton.Visible = false;
     stopPlaybackButton.Visible = true;
     originalImage = null;
 }
Пример #14
0
 private void OnSaveFilteredButtonClick(object sender, EventArgs e)
 {
     if (saveFileDialog.ShowDialog() == DialogResult.OK)
     {
         if (originalImage != null)
         {
             originalImage = originalImage.ApplyFilter(filter);
             originalImage.SaveToFile(saveFileDialog.FileName);
         }
         if (movie != null)
         {
             var currentFrame = movie.GetCurrentFrame();
             var filtered = currentFrame.ApplyFilter(filter);
             filtered.SaveToFile(saveFileDialog.FileName);
         }
     }
 }
Пример #15
0
 private void OnPersistFiltersButtonClick(object sender, EventArgs e)
 {
     originalImage = originalImage.ApplyFilter(filter);
     originalPictureBox.Image = originalImage.Resize(Percent(originalImage)).ToBitmap();
     filteredPictureBox.Image = null;
     filteredPictureBox.BackColor = Control.DefaultBackColor;
     originalPictureBox.Image.Save(Application.StartupPath + "\\temp.jpeg");
     this.Text = Application.StartupPath + "\\temp.jpeg";
 }
Пример #16
0
 private void OnApplyFilterButtonClick(object sender, EventArgs e)
 {
     var filterType = (FilterType)filterComboBox.SelectedValue;
     filter = Filter.Get(filterType);
     filteredImage = filteredImage.ApplyFilter(filter);
     if (movie != null)
     {
         videoTimer.Start();
     }
     else
     {
         ShowResult();
     }
 }
Пример #17
0
 private void OnResetImageClick(object sender, EventArgs e)
 {
     filteredImage = originalImage;
     ShowResult();
 }
Пример #18
0
 void Awake()
 {
     openCVImage = OpenCVImage.Instance(webCamHeight, webCamWidth);
     webCamImage = new Texture2D(webCamHeight, webCamWidth);
 }
Пример #19
0
 private void OnOpenImageButtonClick(object sender, EventArgs e)
 {
     videoTimer.Stop();
     openFileDialog.Filter = "jpg|*.jpg| bmp|*.bmp|png|*.png";
     if (openFileDialog.ShowDialog() == DialogResult.OK)
     {
         filename = openFileDialog.FileName;
         this.Text = filename;
     }
     originalImage = new Opener().OpenImage(filename);
     filteredImage = originalImage.Copy();
     ShowOriginal();
     movie = null;
     stopPlaybackButton.Visible = false;
 }