Ejemplo n.º 1
0
        /// <summary>
        /// すべてのLGN細胞とカメラ画像を描画
        /// </summary>
        /// <param name="RetinalCell"></param>
        private void LGN_Draw(byte[] RetinalCell)
        {
            //LGN細胞への写像を計算するインスタンスを受容野の数だけ作成
            ImgDisplay = new ImgDisplayWindow();
            LGN_RF0    = new LGN_View(0);
            LGN_RF1    = new LGN_View(1);
            LGN_RF2    = new LGN_View(2);
            LGN_RF3    = new LGN_View(3);
            LGN_RF4    = new LGN_View(4);
            LGN_RF5    = new LGN_View(5);
            LGN_RF6    = new LGN_View(6);
            LGN_Projector LGN_Projector = new LGN_Projector();

            ImgDisplay.Show();
            LGN_RF0.Show();
            LGN_RF1.Show();
            LGN_RF2.Show();
            LGN_RF3.Show();
            LGN_RF4.Show();
            LGN_RF5.Show();
            LGN_RF6.Show();
            //受容野ごとにLGNへの射影結果を描画
            LGN_Projector.Dummy(0, RetinalCell, Ximg_RF0, Yimg_RF0, Xlgn_RF0, Ylgn_RF0, LGN_RF0);
            LGN_Projector.Dummy(1, RetinalCell, Ximg_RF1, Yimg_RF1, Xlgn_RF1, Ylgn_RF1, LGN_RF1);
            LGN_Projector.Dummy(2, RetinalCell, Ximg_RF2, Yimg_RF2, Xlgn_RF2, Ylgn_RF2, LGN_RF2);
            LGN_Projector.Dummy(3, RetinalCell, Ximg_RF3, Yimg_RF3, Xlgn_RF3, Ylgn_RF3, LGN_RF3);
            LGN_Projector.Dummy(4, RetinalCell, Ximg_RF4, Yimg_RF4, Xlgn_RF4, Ylgn_RF4, LGN_RF4);
            LGN_Projector.Dummy(5, RetinalCell, Ximg_RF5, Yimg_RF5, Xlgn_RF5, Ylgn_RF5, LGN_RF5);
            LGN_Projector.Dummy(6, RetinalCell, Ximg_RF6, Yimg_RF6, Xlgn_RF6, Ylgn_RF6, LGN_RF6);
            ImgDisplay.DrawMask(improc.ToImage(RetinalCell, 1280, 960), mask);
        }
Ejemplo n.º 2
0
 /// <summary>
 /// 非同期に描画のリフレッシュを実行
 /// </summary>
 private async void AsyncRefresh1()
 {
     await Task.Run(() =>
     {
         ImgDisplay = new ImgDisplayWindow();
         LGN_RF0    = new LGN_View(0);
         LGN_RF1    = new LGN_View(1);
         LGN_RF2    = new LGN_View(2);
         LGN_RF3    = new LGN_View(3);
         LGN_RF4    = new LGN_View(4);
         LGN_RF5    = new LGN_View(5);
         LGN_RF6    = new LGN_View(6);
         ImgDisplay.Show();
         LGN_RF0.Show();
         LGN_RF1.Show();
         LGN_RF2.Show();
         LGN_RF3.Show();
         LGN_RF4.Show();
         LGN_RF5.Show();
         LGN_RF6.Show();
         while (true)
         {
             if (DrawFlag_IMG)
             {
                 ImgDisplay.ImgRefresh();
                 LGN_RF0.DrawRefresh(bmp_RF0);
                 LGN_RF1.DrawRefresh(bmp_RF1);
                 LGN_RF2.DrawRefresh(bmp_RF2);
                 LGN_RF3.DrawRefresh(bmp_RF3);
                 LGN_RF4.DrawRefresh(bmp_RF4);
                 LGN_RF5.DrawRefresh(bmp_RF5);
                 LGN_RF6.DrawRefresh(bmp_RF6);
                 DrawFlag_IMG = false;
             }
             if (ReturnFlag)
             {
                 ImgDisplay.Close();
                 LGN_RF0.Close();
                 LGN_RF1.Close();
                 LGN_RF2.Close();
                 LGN_RF3.Close();
                 LGN_RF4.Close();
                 LGN_RF5.Close();
                 LGN_RF6.Close();
                 ReturnFlag = false;
                 return;
             }
         }
     });
 }