示例#1
0
        public static int NewPointY(int y3old, int y1new, int y2new)  // old 는 기준처방전 new 는 실제처방전, 1 과 2는 기준좌표 두점을 말하고, 모르는 제3의 new 를 찾는 함수
        {
            ///////////// ini 객체 생성 시작 /////////////////////////////////////////////////////
            //현재 프로그램이 실행되고 있는정보 가져오기: 디버깅 모드라면 bin/debug/프로그램명.exe
            FileInfo exefileinfo = new FileInfo(@"C:\Program Files\PLOCR\PLOCR.exe");
            string   pathini     = exefileinfo.Directory.FullName.ToString();      //프로그램 실행되고 있는데 path 가져오기
            string   fileName    = @"\PLOCRconfig.ini";                            // 환경설정 파일명
            string   filePath    = pathini + fileName;                             //ini 파일 경로

            DocumentAnalysis.IniUtil ini = new DocumentAnalysis.IniUtil(filePath); // 만들어 놓았던 iniUtil 객체 생성(생성자 인자로 파일경로 정보 넘겨줌)
            //////////// ini 객체 생성 끝 /////////////////////////////////////////////////////////

            int y1old = int.Parse(ini.GetIniValue("스캔으로 찾은 좌표1번", "Y"));
            int y2old = int.Parse(ini.GetIniValue("스캔으로 찾은 좌표2번", "Y"));

            double y3new = 0;

            if ((y3old - y1old) < 0)
            {
                y3new = y1new - (Math.Abs((y3old - y1old)) * Math.Abs((y2new - y1new)) / Math.Abs((y2old - y1old))); // x1old 는 기준처방의 1번좌표, x2old 는 기준처방의 2번좌표, x3old 는 사용자가 지정한 기준처방의 좌표
            }                                                                                                        // x1new 는 실제처방의 1번좌표, x2new 는 실제처방의 2번좌표, x3new 는 찾으려고 하는 좌표
            else if ((y3old - y1old) > 0)
            {
                y3new = Math.Abs((y3old - y1old)) * Math.Abs((y2new - y1new)) / Math.Abs((y2old - y1old)) + y1new;
            }
            return((int)y3new);
        }
        public static Bitmap thick(Bitmap source)        // 선 굵게, 24비트로 넣어줘야함
        {
            ///////////// ini 객체 생성 시작 /////////////////////////////////////////////////////
            //현재 프로그램이 실행되고 있는정보 가져오기: 디버깅 모드라면 bin/debug/프로그램명.exe
            FileInfo exefileinfo = new FileInfo(@"C:\Program Files\PLOCR\PLOCR.exe");
            string   pathini     = exefileinfo.Directory.FullName.ToString();      //프로그램 실행되고 있는데 path 가져오기
            string   fileName    = @"\PLOCRconfig.ini";                            // 환경설정 파일명
            string   filePath    = pathini + fileName;                             //ini 파일 경로

            DocumentAnalysis.IniUtil ini = new DocumentAnalysis.IniUtil(filePath); // 만들어 놓았던 iniUtil 객체 생성(생성자 인자로 파일경로 정보 넘겨줌)
            //////////// ini 객체 생성 끝 /////////////////////////////////////////////////////////

            int order = int.Parse(ini.GetIniValue("선굵기값", "굵게횟수"));

            for (int i = 0; i < order; i++)
            {
                Bitmap tmp = (Bitmap)source;        // 중요! 한번 이미지 처리가 끝난 비트맵 source 는 clone 함수로 보내기 전에 다시 한번 (Bitmap) 처리 해줘야함, 이유는 잘 모르겠음
                // convert to 24 bits per pixel
                source = imageProcess.Clone(tmp, PixelFormat.Format24bppRgb);
                // delete old image
                tmp.Dispose();

                Erosion filter = new Erosion();
                filter.ApplyInPlace(source);;
            }

            return(source);
        }
示例#3
0
        public static Bitmap originalcheck(Bitmap source)
        {
            ///////////// ini 객체 생성 시작 /////////////////////////////////////////////////////
            //현재 프로그램이 실행되고 있는정보 가져오기: 디버깅 모드라면 bin/debug/프로그램명.exe
            FileInfo exefileinfo = new FileInfo(@"C:\Program Files\PLOCR\PLOCR.exe");
            string   pathini     = exefileinfo.Directory.FullName.ToString();      //프로그램 실행되고 있는데 path 가져오기
            string   fileName    = @"\PLOCRconfig.ini";                            // 환경설정 파일명
            string   filePath    = pathini + fileName;                             //ini 파일 경로

            DocumentAnalysis.IniUtil ini = new DocumentAnalysis.IniUtil(filePath); // 만들어 놓았던 iniUtil 객체 생성(생성자 인자로 파일경로 정보 넘겨줌)
            //////////// ini 객체 생성 끝 /////////////////////////////////////////////////////////

            string exeNo1 = ini.GetIniValue("실행 순서", "1단계");
            string exeNo2 = ini.GetIniValue("실행 순서", "2단계");
            string exeNo3 = ini.GetIniValue("실행 순서", "3단계");
            string exeNo4 = ini.GetIniValue("실행 순서", "4단계");
            string exeNo5 = ini.GetIniValue("실행 순서", "5단계");
            string exeNo6 = ini.GetIniValue("실행 순서", "6단계");
            string exeNo7 = ini.GetIniValue("실행 순서", "7단계");

            if (exeNo1 == "원본" ||
                exeNo2 == "원본" ||
                exeNo3 == "원본" ||
                exeNo4 == "원본" ||
                exeNo5 == "원본" ||
                exeNo6 == "원본" ||
                exeNo7 == "원본")
            {
                string path = @"C:\Program Files\PLOCR\prescription.png";
                source = (Bitmap)Bitmap.FromFile(path);
            }
            return(source);
        }
        public static Bitmap RGBfilter(Bitmap source)     // rgb 필터
        {
            ///////////// ini 객체 생성 시작 /////////////////////////////////////////////////////
            //현재 프로그램이 실행되고 있는정보 가져오기: 디버깅 모드라면 bin/debug/프로그램명.exe
            FileInfo exefileinfo = new FileInfo(@"C:\Program Files\PLOCR\PLOCR.exe");
            string   pathini     = exefileinfo.Directory.FullName.ToString();      //프로그램 실행되고 있는데 path 가져오기
            string   fileName    = @"\PLOCRconfig.ini";                            // 환경설정 파일명
            string   filePath    = pathini + fileName;                             //ini 파일 경로

            DocumentAnalysis.IniUtil ini = new DocumentAnalysis.IniUtil(filePath); // 만들어 놓았던 iniUtil 객체 생성(생성자 인자로 파일경로 정보 넘겨줌)
            //////////// ini 객체 생성 끝 /////////////////////////////////////////////////////////

            int redMin   = int.Parse(ini.GetIniValue("색상필터값", "RedMin"));
            int redMax   = int.Parse(ini.GetIniValue("색상필터값", "RedMax"));
            int greenMin = int.Parse(ini.GetIniValue("색상필터값", "GreenMin"));
            int greenMax = int.Parse(ini.GetIniValue("색상필터값", "GreenMax"));
            int blueMin  = int.Parse(ini.GetIniValue("색상필터값", "BlueMin"));
            int blueMax  = int.Parse(ini.GetIniValue("색상필터값", "BlueMax"));

            // create filter
            ColorFiltering filter = new ColorFiltering();

            // set color ranges to keep
            filter.Red   = new IntRange(redMin, redMax);
            filter.Green = new IntRange(greenMin, greenMax);
            filter.Blue  = new IntRange(blueMin, blueMax);
            Bitmap processedImage = filter.Apply(source);

            return(processedImage);
        }
        // 밝게
        public static Bitmap bright(Bitmap source)
        {
            ///////////// ini 객체 생성 시작 /////////////////////////////////////////////////////
            //현재 프로그램이 실행되고 있는정보 가져오기: 디버깅 모드라면 bin/debug/프로그램명.exe
            FileInfo exefileinfo = new FileInfo(@"C:\Program Files\PLOCR\PLOCR.exe");
            string pathini = exefileinfo.Directory.FullName.ToString();  //프로그램 실행되고 있는데 path 가져오기
            string fileName = @"\PLOCRconfig.ini";  // 환경설정 파일명
            string filePath = pathini + fileName;   //ini 파일 경로
               DocumentAnalysis.IniUtil ini = new DocumentAnalysis.IniUtil(filePath);   // 만들어 놓았던 iniUtil 객체 생성(생성자 인자로 파일경로 정보 넘겨줌)
            //////////// ini 객체 생성 끝 /////////////////////////////////////////////////////////

            int order = int.Parse(ini.GetIniValue("밝기값", "밝게횟수"));

            for (int i = 0; i < order; i++)
            {
                // create filter
                BrightnessCorrection filter = new BrightnessCorrection(+10);
                // apply the filter
                filter.ApplyInPlace(source);
            }

            return source;
        }
        public static Bitmap dark(Bitmap source)        // 어둡게
        {
            ///////////// ini 객체 생성 시작 /////////////////////////////////////////////////////
            //현재 프로그램이 실행되고 있는정보 가져오기: 디버깅 모드라면 bin/debug/프로그램명.exe
            FileInfo exefileinfo = new FileInfo(@"C:\Program Files\PLOCR\PLOCR.exe");
            string   pathini     = exefileinfo.Directory.FullName.ToString();      //프로그램 실행되고 있는데 path 가져오기
            string   fileName    = @"\PLOCRconfig.ini";                            // 환경설정 파일명
            string   filePath    = pathini + fileName;                             //ini 파일 경로

            DocumentAnalysis.IniUtil ini = new DocumentAnalysis.IniUtil(filePath); // 만들어 놓았던 iniUtil 객체 생성(생성자 인자로 파일경로 정보 넘겨줌)
            //////////// ini 객체 생성 끝 /////////////////////////////////////////////////////////

            int order = int.Parse(ini.GetIniValue("밝기값", "어둡게횟수"));

            for (int i = 0; i < order; i++)
            {
                // create filter
                BrightnessCorrection filter = new BrightnessCorrection(-10);
                // apply the filter
                filter.ApplyInPlace(source);
            }

            return(source);
        }
示例#7
0
        public static Bitmap originalcheck(Bitmap source)
        {
            ///////////// ini 객체 생성 시작 /////////////////////////////////////////////////////
            //현재 프로그램이 실행되고 있는정보 가져오기: 디버깅 모드라면 bin/debug/프로그램명.exe
            FileInfo exefileinfo = new FileInfo(@"C:\Program Files\PLOCR\PLOCR.exe");
            string pathini = exefileinfo.Directory.FullName.ToString();  //프로그램 실행되고 있는데 path 가져오기
            string fileName = @"\PLOCRconfig.ini";  // 환경설정 파일명
            string filePath = pathini + fileName;   //ini 파일 경로
            DocumentAnalysis.IniUtil ini = new DocumentAnalysis.IniUtil(filePath);   // 만들어 놓았던 iniUtil 객체 생성(생성자 인자로 파일경로 정보 넘겨줌)
            //////////// ini 객체 생성 끝 /////////////////////////////////////////////////////////

            string exeNo1 = ini.GetIniValue("실행 순서", "1단계");
            string exeNo2 = ini.GetIniValue("실행 순서", "2단계");
            string exeNo3 = ini.GetIniValue("실행 순서", "3단계");
            string exeNo4 = ini.GetIniValue("실행 순서", "4단계");
            string exeNo5 = ini.GetIniValue("실행 순서", "5단계");
            string exeNo6 = ini.GetIniValue("실행 순서", "6단계");
            string exeNo7 = ini.GetIniValue("실행 순서", "7단계");

            if (exeNo1 == "원본" ||
               exeNo2 == "원본" ||
               exeNo3 == "원본" ||
               exeNo4 == "원본" ||
               exeNo5 == "원본" ||
               exeNo6 == "원본" ||
               exeNo7 == "원본")
            {
                string path = @"C:\Program Files\PLOCR\prescription.png";
                source = (Bitmap)Bitmap.FromFile(path);
            }
            return source;
        }
        // 선 가늘게
        public static Bitmap thin(Bitmap source)
        {
            ///////////// ini 객체 생성 시작 /////////////////////////////////////////////////////
            //현재 프로그램이 실행되고 있는정보 가져오기: 디버깅 모드라면 bin/debug/프로그램명.exe
            FileInfo exefileinfo = new FileInfo(@"C:\Program Files\PLOCR\PLOCR.exe");
            string pathini = exefileinfo.Directory.FullName.ToString();  //프로그램 실행되고 있는데 path 가져오기
            string fileName = @"\PLOCRconfig.ini";  // 환경설정 파일명
            string filePath = pathini + fileName;   //ini 파일 경로
               DocumentAnalysis.IniUtil ini = new DocumentAnalysis.IniUtil(filePath);   // 만들어 놓았던 iniUtil 객체 생성(생성자 인자로 파일경로 정보 넘겨줌)
            //////////// ini 객체 생성 끝 /////////////////////////////////////////////////////////

            int order = int.Parse(ini.GetIniValue("선굵기값", "가늘게횟수"));

            for (int i = 0; i < order; i++)
            {
                Bitmap tmp = (Bitmap)source;        // 중요! 한번 이미지 처리가 끝난 비트맵 source 는 clone 함수로 보내기 전에 다시 한번 (Bitmap) 처리 해줘야함, 이유는 잘 모르겠음
                // convert to 24 bits per pixel
                source = imageProcess.Clone(tmp, PixelFormat.Format24bppRgb);
                // delete old image
                tmp.Dispose();

                Dilatation filter = new Dilatation();
                filter.ApplyInPlace(source);
            }

            return source;
        }
        // rgb 필터
        public static Bitmap RGBfilter(Bitmap source)
        {
            ///////////// ini 객체 생성 시작 /////////////////////////////////////////////////////
            //현재 프로그램이 실행되고 있는정보 가져오기: 디버깅 모드라면 bin/debug/프로그램명.exe
            FileInfo exefileinfo = new FileInfo(@"C:\Program Files\PLOCR\PLOCR.exe");
            string pathini = exefileinfo.Directory.FullName.ToString();  //프로그램 실행되고 있는데 path 가져오기
            string fileName = @"\PLOCRconfig.ini";  // 환경설정 파일명
            string filePath = pathini + fileName;   //ini 파일 경로
              DocumentAnalysis.IniUtil ini = new DocumentAnalysis.IniUtil(filePath);   // 만들어 놓았던 iniUtil 객체 생성(생성자 인자로 파일경로 정보 넘겨줌)
            //////////// ini 객체 생성 끝 /////////////////////////////////////////////////////////

            int redMin = int.Parse(ini.GetIniValue("색상필터값", "RedMin"));
            int redMax = int.Parse(ini.GetIniValue("색상필터값", "RedMax"));
            int greenMin = int.Parse(ini.GetIniValue("색상필터값", "GreenMin"));
            int greenMax = int.Parse(ini.GetIniValue("색상필터값", "GreenMax"));
            int blueMin = int.Parse(ini.GetIniValue("색상필터값", "BlueMin"));
            int blueMax = int.Parse(ini.GetIniValue("색상필터값", "BlueMax"));

            // create filter
            ColorFiltering filter = new ColorFiltering();
            // set color ranges to keep
            filter.Red = new IntRange(redMin, redMax);
            filter.Green = new IntRange(greenMin, greenMax);
            filter.Blue = new IntRange(blueMin, blueMax);
            Bitmap processedImage = filter.Apply(source);

            return processedImage;
        }
示例#10
0
        public static void calibration(int quad)
        {
            ///////////// ini 객체 생성 시작 /////////////////////////////////////////////////////
            //현재 프로그램이 실행되고 있는정보 가져오기: 디버깅 모드라면 bin/debug/프로그램명.exe
            FileInfo exefileinfo = new FileInfo(@"C:\Program Files\PLOCR\PLOCR.exe");
            string pathini = exefileinfo.Directory.FullName.ToString();  //프로그램 실행되고 있는데 path 가져오기
            string fileName = @"\PLOCRconfig.ini";  // 환경설정 파일명
            string filePath = pathini + fileName;   //ini 파일 경로
            DocumentAnalysis.IniUtil ini = new DocumentAnalysis.IniUtil(filePath);   // 만들어 놓았던 iniUtil 객체 생성(생성자 인자로 파일경로 정보 넘겨줌)
            //////////// ini 객체 생성 끝 /////////////////////////////////////////////////////////

            int order;
            int sX1 = 0, sX2 = 0, sY1 = 0, sY2 = 0;

            int specialX = int.Parse(ini.GetIniValue("특정좌표영역", "X"));
            int specialY = int.Parse(ini.GetIniValue("특정좌표영역", "Y"));

            order = quad - 1;

            string path = @"C:\Program Files\PLOCR\prescription.png";
            Bitmap source = (Bitmap)Bitmap.FromFile(path);

            switch (order)
            {
                case 0:                             //1사분면일 경우
                    sX1 = (source.Width) / 2 + int.Parse(ini.GetIniValue("좌표1번", "X"));
                    sY1 = int.Parse(ini.GetIniValue("좌표1번", "Y"));
                    sX2 = (source.Width) / 2 + int.Parse(ini.GetIniValue("좌표2번", "X"));
                    sY2 = int.Parse(ini.GetIniValue("좌표1번", "Y"));

                    break;
                case 1:                             //2사분면일 경우
                    sX1 = int.Parse(ini.GetIniValue("좌표1번", "X"));
                    sY1 = int.Parse(ini.GetIniValue("좌표1번", "Y"));
                    sX2 = int.Parse(ini.GetIniValue("좌표2번", "X"));
                    sY2 = int.Parse(ini.GetIniValue("좌표2번", "Y"));

                    break;
                case 2:                             //3사분면일 경우
                    sX1 = int.Parse(ini.GetIniValue("좌표1번", "X"));
                    sY1 = (source.Height) / 2 + int.Parse(ini.GetIniValue("좌표1번", "Y"));
                    sX2 = int.Parse(ini.GetIniValue("좌표1번", "X"));
                    sY2 = (source.Height) / 2 + int.Parse(ini.GetIniValue("좌표2번", "Y"));

                    break;
                case 3:                             //4사분면일 경우
                    sX1 = (source.Width) / 2 + int.Parse(ini.GetIniValue("좌표1번", "X"));
                    sY1 = (source.Height) / 2 + int.Parse(ini.GetIniValue("좌표1번", "Y"));
                    sX2 = (source.Width) / 2 + int.Parse(ini.GetIniValue("좌표2번", "X"));
                    sY2= (source.Height) / 2 + int.Parse(ini.GetIniValue("좌표2번", "Y"));

                    break;
                case 4:                             //특정영역일 경우
                    sX1 = specialX + int.Parse(ini.GetIniValue("좌표1번", "X"));
                    sY1 = specialY + int.Parse(ini.GetIniValue("좌표1번", "Y"));
                    sX2 = specialX + int.Parse(ini.GetIniValue("좌표2번", "X"));
                    sY2 = specialY + int.Parse(ini.GetIniValue("좌표2번", "Y"));

                    break;
            }
        }
示例#11
0
        // 특정영역2에서 좌표1번, 좌표2번 텍스트 탐색하여 좌표 저장
        private void button24_Click(object sender, EventArgs e)
        {
            ///////////// ini 객체 생성 시작 /////////////////////////////////////////////////////
            //현재 프로그램이 실행되고 있는정보 가져오기: 디버깅 모드라면 bin/debug/프로그램명.exe
            FileInfo exefileinfo = new FileInfo(@"C:\Program Files\PLOCR\PLOCR.exe");
            string pathini = exefileinfo.Directory.FullName.ToString();  //프로그램 실행되고 있는데 path 가져오기
            string fileName = @"\PLOCRconfig.ini";  // 환경설정 파일명
            string filePath = pathini + fileName;   //ini 파일 경로
            DocumentAnalysis.IniUtil ini = new DocumentAnalysis.IniUtil(filePath);   // 만들어 놓았던 iniUtil 객체 생성(생성자 인자로 파일경로 정보 넘겨줌)
            //////////// ini 객체 생성 끝 /////////////////////////////////////////////////////////

            int x = int.Parse(ini.GetIniValue("특정좌표영역2", "X"));
            int y = int.Parse(ini.GetIniValue("특정좌표영역2", "Y"));
            int width = int.Parse(ini.GetIniValue("특정좌표영역2", "가로"));
            int height = int.Parse(ini.GetIniValue("특정좌표영역2", "세로"));

            //Bitmap source = (Bitmap)pictureBox1.Image;
            //string path = @"C:\Program Files\PLOCR\prescription.png";
            //Bitmap source = (Bitmap)Bitmap.FromFile(path);

            Bitmap source = Global.source;
            string htext = OcrEngine.hocr(source, x, y, width, height);

            if (radioButton1.Checked == true)
            {
                int standardX, standardY, standardWidth, standardHeight;
                standardXY.startXY(htext, ini.GetIniValue("좌표텍스트", "좌표1번"), out standardX, out standardY, out standardWidth, out standardHeight);
                ini.SetIniValue("스캔으로 찾은 좌표1번", "X", standardX.ToString());
                ini.SetIniValue("스캔으로 찾은 좌표1번", "Y", standardY.ToString());
                ini.SetIniValue("스캔으로 찾은 좌표1번", "가로", standardWidth.ToString());
                ini.SetIniValue("스캔으로 찾은 좌표1번", "세로", standardHeight.ToString());
            }
            else if (radioButton2.Checked == true)
            {
                int standardX, standardY, standardWidth, standardHeight;
                standardXY.startXY(htext, ini.GetIniValue("좌표텍스트", "좌표2번"), out standardX, out standardY, out standardWidth, out standardHeight);
                ini.SetIniValue("스캔으로 찾은 좌표2번", "X", standardX.ToString());
                ini.SetIniValue("스캔으로 찾은 좌표2번", "Y", standardY.ToString());
                ini.SetIniValue("스캔으로 찾은 좌표2번", "가로", standardWidth.ToString());
                ini.SetIniValue("스캔으로 찾은 좌표2번", "세로", standardHeight.ToString());
            }
            else
            {
                MessageBox.Show("\"좌표1번 찾기\" 또는 \"좌표2번 찾기\"를 체크해주세요.");
            }
        }
示例#12
0
        private void Form1_Load(object sender, EventArgs e)
        {
            ///////////// ini 객체 생성 시작 /////////////////////////////////////////////////////
            //현재 프로그램이 실행되고 있는정보 가져오기: 디버깅 모드라면 bin/debug/프로그램명.exe
            FileInfo exefileinfo = new FileInfo(@"C:\Program Files\PLOCR\PLOCR.exe");
            string pathini = exefileinfo.Directory.FullName.ToString();  //프로그램 실행되고 있는데 path 가져오기
            string fileName = @"\PLOCRconfig.ini";  // 환경설정 파일명
            string filePath = pathini + fileName;   //ini 파일 경로
            DocumentAnalysis.IniUtil ini = new DocumentAnalysis.IniUtil(filePath);   // 만들어 놓았던 iniUtil 객체 생성(생성자 인자로 파일경로 정보 넘겨줌)
            //////////// ini 객체 생성 끝 /////////////////////////////////////////////////////////

            textBox1.Text = String.Format("{0}:{1}:{2}:{3}", ini.GetIniValue("좌표1번", "X"), ini.GetIniValue("좌표1번", "Y"), ini.GetIniValue("좌표1번", "가로"), ini.GetIniValue("좌표1번", "세로"));
            textBox2.Text = String.Format("{0}:{1}:{2}:{3}", ini.GetIniValue("좌표2번", "X"), ini.GetIniValue("좌표2번", "Y"), ini.GetIniValue("좌표2번", "가로"), ini.GetIniValue("좌표번", "세로"));
            textBox3.Text = String.Format("{0}:{1}:{2}:{3}", ini.GetIniValue("환자이름", "X"), ini.GetIniValue("환자이름", "Y"), ini.GetIniValue("환자이름", "가로"), ini.GetIniValue("환자이름", "세로"));
            textBox4.Text = String.Format("{0}:{1}:{2}:{3}", ini.GetIniValue("주민번호", "X"), ini.GetIniValue("주민번호", "Y"), ini.GetIniValue("주민번호", "가로"), ini.GetIniValue("주민번호", "세로"));
            textBox5.Text = String.Format("{0}:{1}:{2}:{3}", ini.GetIniValue("교부번호", "X"), ini.GetIniValue("교부번호", "Y"), ini.GetIniValue("교부번호", "가로"), ini.GetIniValue("교부번호", "세로"));
            textBox6.Text = String.Format("{0}:{1}:{2}:{3}", ini.GetIniValue("의사면허", "X"), ini.GetIniValue("의사면허", "Y"), ini.GetIniValue("의사면허", "가로"), ini.GetIniValue("의사면허", "세로"));
            textBox7.Text = String.Format("{0}:{1}:{2}:{3}", ini.GetIniValue("발행기관", "X"), ini.GetIniValue("발행기관", "Y"), ini.GetIniValue("발행기관", "가로"), ini.GetIniValue("발행기관", "세로"));
            textBox8.Text = String.Format("{0}:{1}:{2}:{3}", ini.GetIniValue("질병기호", "X"), ini.GetIniValue("질병기호", "Y"), ini.GetIniValue("질병기호", "가로"), ini.GetIniValue("질병기호", "세로"));
            textBox14.Text = ini.GetIniValue("좌표텍스트", "좌표1번");
            textBox15.Text = ini.GetIniValue("좌표텍스트", "좌표2번");
            textBox16.Text = ini.GetIniValue("색상필터값", "RedMin");
            textBox17.Text = ini.GetIniValue("색상필터값", "GreenMin");
            textBox18.Text = ini.GetIniValue("색상필터값", "BlueMin");
            textBox19.Text = ini.GetIniValue("색상필터값", "RedMax");
            textBox20.Text = ini.GetIniValue("색상필터값", "GreenMax");
            textBox21.Text = ini.GetIniValue("색상필터값", "BlueMax");
            trackBar1.Value = int.Parse(ini.GetIniValue("색상필터값", "RedMin"));
            trackBar2.Value = int.Parse(ini.GetIniValue("색상필터값", "RedMax"));
            trackBar3.Value = int.Parse(ini.GetIniValue("색상필터값", "GreenMin"));
            trackBar4.Value = int.Parse(ini.GetIniValue("색상필터값", "GreenMax"));
            trackBar5.Value = int.Parse(ini.GetIniValue("색상필터값", "BlueMin"));
            trackBar6.Value = int.Parse(ini.GetIniValue("색상필터값", "BlueMax"));
            trackBar1.Invalidate();
            trackBar2.Invalidate();
            trackBar3.Invalidate();
            trackBar4.Invalidate();
            trackBar5.Invalidate();
            trackBar6.Invalidate();
            textBox23.Text = ini.GetIniValue("밝기값", "밝게횟수");
            textBox22.Text = ini.GetIniValue("밝기값", "밝게횟수");
            textBox24.Text = ini.GetIniValue("선굵기값", "굵게횟수");
            textBox25.Text = ini.GetIniValue("선굵기값", "가늘게횟수");
            comboBox6.Text = ini.GetIniValue("지정한 사분면", "좌표1번사분면");
            comboBox7.Text = ini.GetIniValue("지정한 사분면", "좌표2번사분면");
            comboBox8.Text = ini.GetIniValue("실행 순서", "1단계");
            comboBox9.Text = ini.GetIniValue("실행 순서", "2단계");
            comboBox10.Text = ini.GetIniValue("실행 순서", "3단계");
            comboBox11.Text = ini.GetIniValue("실행 순서", "4단계");
            comboBox12.Text = ini.GetIniValue("실행 순서", "5단계");
            comboBox13.Text = ini.GetIniValue("실행 순서", "6단계");
            comboBox14.Text = ini.GetIniValue("실행 순서", "7단계");

            Global.source = null;
            Global.sourcebefore = null;
            Global.sourceoriginal = null;
            //string path = @"C:\Program Files\PLOCR\prescription.png";
            //Global.source = (Bitmap)Bitmap.FromFile(path);
            //Global.sourceoriginal = (Bitmap)Bitmap.FromFile(path);
        }
示例#13
0
        // 실행순서 검증
        private void button54_Click(object sender, EventArgs e)
        {
            string path = @"C:\Program Files\PLOCR\prescription.png";
            Bitmap source = (Bitmap)Bitmap.FromFile(path);

            ///////////// ini 객체 생성 시작 /////////////////////////////////////////////////////
            //현재 프로그램이 실행되고 있는정보 가져오기: 디버깅 모드라면 bin/debug/프로그램명.exe
            FileInfo exefileinfo = new FileInfo(@"C:\Program Files\PLOCR\PLOCR.exe");
            string pathini = exefileinfo.Directory.FullName.ToString();  //프로그램 실행되고 있는데 path 가져오기
            string fileName = @"\PLOCRconfig.ini";  // 환경설정 파일명
            string filePath = pathini + fileName;   //ini 파일 경로
            DocumentAnalysis.IniUtil ini = new DocumentAnalysis.IniUtil(filePath);   // 만들어 놓았던 iniUtil 객체 생성(생성자 인자로 파일경로 정보 넘겨줌)
            //////////// ini 객체 생성 끝 /////////////////////////////////////////////////////////

            string exeNo1 = ini.GetIniValue("실행 순서", "1단계");
            string exeNo2 = ini.GetIniValue("실행 순서", "2단계");
            string exeNo3 = ini.GetIniValue("실행 순서", "3단계");
            string exeNo4 = ini.GetIniValue("실행 순서", "4단계");
            string exeNo5 = ini.GetIniValue("실행 순서", "5단계");
            string exeNo6 = ini.GetIniValue("실행 순서", "6단계");
            string exeNo7 = ini.GetIniValue("실행 순서", "7단계");

            if (exeNo7 == "끝")
            {
                source = calculator.imgProcess(source, exeNo1);
                pictureBox1.Image = source;
                pictureBox1.Refresh();
                System.Threading.Thread.Sleep(3000);
                source = calculator.imgProcess(source, exeNo2);
                pictureBox1.Image = source;
                pictureBox1.Refresh();
                System.Threading.Thread.Sleep(3000);
                source = calculator.imgProcess(source, exeNo3);
                pictureBox1.Image = source;
                pictureBox1.Refresh();
                System.Threading.Thread.Sleep(3000);
                source = calculator.imgProcess(source, exeNo4);
                pictureBox1.Image = source;
                pictureBox1.Refresh();
                System.Threading.Thread.Sleep(3000);
                source = calculator.imgProcess(source, exeNo5);
                pictureBox1.Image = source;
                pictureBox1.Refresh();
                System.Threading.Thread.Sleep(3000);
                source = calculator.imgProcess(source, exeNo6);
                pictureBox1.Image = source;
                pictureBox1.Refresh();
                System.Threading.Thread.Sleep(3000);
            }
            else if (exeNo6 == "끝")
            {
                source = calculator.imgProcess(source, exeNo1);
                pictureBox1.Image = source;
                pictureBox1.Refresh();
                System.Threading.Thread.Sleep(3000);
                source = calculator.imgProcess(source, exeNo2);
                pictureBox1.Image = source;
                pictureBox1.Refresh();
                System.Threading.Thread.Sleep(3000);
                source = calculator.imgProcess(source, exeNo3);
                pictureBox1.Image = source;
                pictureBox1.Refresh();
                System.Threading.Thread.Sleep(3000);
                source = calculator.imgProcess(source, exeNo4);
                pictureBox1.Image = source;
                pictureBox1.Refresh();
                System.Threading.Thread.Sleep(3000);
                source = calculator.imgProcess(source, exeNo5);
                pictureBox1.Image = source;
                pictureBox1.Refresh();
                System.Threading.Thread.Sleep(3000);
            }
            else if (exeNo5 == "끝")
            {
                source = calculator.imgProcess(source, exeNo1);
                pictureBox1.Image = source;
                pictureBox1.Refresh();
                System.Threading.Thread.Sleep(1000);
                source = calculator.imgProcess(source, exeNo2);
                pictureBox1.Image = source;
                pictureBox1.Refresh();
                System.Threading.Thread.Sleep(1000);
                source = calculator.imgProcess(source, exeNo3);
                pictureBox1.Image = source;
                pictureBox1.Refresh();
                System.Threading.Thread.Sleep(1000);
                source = calculator.imgProcess(source, exeNo4);
                pictureBox1.Image = source;
                pictureBox1.Refresh();
                System.Threading.Thread.Sleep(1000);
            }
            else if (exeNo4 == "끝")
            {
                source = calculator.imgProcess(source, exeNo1);
                pictureBox1.Image = source;
                pictureBox1.Refresh();
                System.Threading.Thread.Sleep(3000);
                source = calculator.imgProcess(source, exeNo2);
                pictureBox1.Image = source;
                pictureBox1.Refresh();
                System.Threading.Thread.Sleep(3000);
                source = calculator.imgProcess(source, exeNo3);
                pictureBox1.Image = source;
                pictureBox1.Refresh();
                System.Threading.Thread.Sleep(3000);
            }
            else if (exeNo3 == "끝")
            {
                source = calculator.imgProcess(source, exeNo1);
                pictureBox1.Image = source;
                pictureBox1.Refresh();
                System.Threading.Thread.Sleep(3000);
                source = calculator.imgProcess(source, exeNo2);
                pictureBox1.Image = source;
                pictureBox1.Refresh();
                System.Threading.Thread.Sleep(3000);
            }
            else if (exeNo2 == "끝")
            {
                source = calculator.imgProcess(source, exeNo1);
                pictureBox1.Image = source;
                pictureBox1.Refresh();
                System.Threading.Thread.Sleep(3000);
            }
            else if (exeNo1 == "끝")
            {
            }

            calculator.originalcheck(source);

            Global.source = source;
            pictureBox1.Image = source;
            pictureBox1.Refresh();

            Global.source.Save(@"C:\Program Files\PLOCR\processedprescription.png");
        }
示例#14
0
        public static void calibration(int quad)
        {
            ///////////// ini 객체 생성 시작 /////////////////////////////////////////////////////
            //현재 프로그램이 실행되고 있는정보 가져오기: 디버깅 모드라면 bin/debug/프로그램명.exe
            FileInfo exefileinfo = new FileInfo(@"C:\Program Files\PLOCR\PLOCR.exe");
            string   pathini     = exefileinfo.Directory.FullName.ToString();      //프로그램 실행되고 있는데 path 가져오기
            string   fileName    = @"\PLOCRconfig.ini";                            // 환경설정 파일명
            string   filePath    = pathini + fileName;                             //ini 파일 경로

            DocumentAnalysis.IniUtil ini = new DocumentAnalysis.IniUtil(filePath); // 만들어 놓았던 iniUtil 객체 생성(생성자 인자로 파일경로 정보 넘겨줌)
            //////////// ini 객체 생성 끝 /////////////////////////////////////////////////////////

            int order;
            int sX1 = 0, sX2 = 0, sY1 = 0, sY2 = 0;

            int specialX = int.Parse(ini.GetIniValue("특정좌표영역", "X"));
            int specialY = int.Parse(ini.GetIniValue("특정좌표영역", "Y"));

            order = quad - 1;

            string path   = @"C:\Program Files\PLOCR\prescription.png";
            Bitmap source = (Bitmap)Bitmap.FromFile(path);

            switch (order)
            {
            case 0:                                 //1사분면일 경우
                sX1 = (source.Width) / 2 + int.Parse(ini.GetIniValue("좌표1번", "X"));
                sY1 = int.Parse(ini.GetIniValue("좌표1번", "Y"));
                sX2 = (source.Width) / 2 + int.Parse(ini.GetIniValue("좌표2번", "X"));
                sY2 = int.Parse(ini.GetIniValue("좌표1번", "Y"));

                break;

            case 1:                                 //2사분면일 경우
                sX1 = int.Parse(ini.GetIniValue("좌표1번", "X"));
                sY1 = int.Parse(ini.GetIniValue("좌표1번", "Y"));
                sX2 = int.Parse(ini.GetIniValue("좌표2번", "X"));
                sY2 = int.Parse(ini.GetIniValue("좌표2번", "Y"));

                break;

            case 2:                                 //3사분면일 경우
                sX1 = int.Parse(ini.GetIniValue("좌표1번", "X"));
                sY1 = (source.Height) / 2 + int.Parse(ini.GetIniValue("좌표1번", "Y"));
                sX2 = int.Parse(ini.GetIniValue("좌표1번", "X"));
                sY2 = (source.Height) / 2 + int.Parse(ini.GetIniValue("좌표2번", "Y"));

                break;

            case 3:                                 //4사분면일 경우
                sX1 = (source.Width) / 2 + int.Parse(ini.GetIniValue("좌표1번", "X"));
                sY1 = (source.Height) / 2 + int.Parse(ini.GetIniValue("좌표1번", "Y"));
                sX2 = (source.Width) / 2 + int.Parse(ini.GetIniValue("좌표2번", "X"));
                sY2 = (source.Height) / 2 + int.Parse(ini.GetIniValue("좌표2번", "Y"));

                break;

            case 4:                                 //특정영역일 경우
                sX1 = specialX + int.Parse(ini.GetIniValue("좌표1번", "X"));
                sY1 = specialY + int.Parse(ini.GetIniValue("좌표1번", "Y"));
                sX2 = specialX + int.Parse(ini.GetIniValue("좌표2번", "X"));
                sY2 = specialY + int.Parse(ini.GetIniValue("좌표2번", "Y"));

                break;
            }
        }
示例#15
0
        // 이미지 처리 몇단계까지 해야하나 확인하고 처리
        public static Bitmap sequence(Bitmap source)
        {
            ///////////// ini 객체 생성 시작 /////////////////////////////////////////////////////
            //현재 프로그램이 실행되고 있는정보 가져오기: 디버깅 모드라면 bin/debug/프로그램명.exe
            FileInfo exefileinfo = new FileInfo(@"C:\Program Files\PLOCR\PLOCR.exe");
            string pathini = exefileinfo.Directory.FullName.ToString();  //프로그램 실행되고 있는데 path 가져오기
            string fileName = @"\PLOCRconfig.ini";  // 환경설정 파일명
            string filePath = pathini + fileName;   //ini 파일 경로
            DocumentAnalysis.IniUtil ini = new DocumentAnalysis.IniUtil(filePath);   // 만들어 놓았던 iniUtil 객체 생성(생성자 인자로 파일경로 정보 넘겨줌)
            //////////// ini 객체 생성 끝 /////////////////////////////////////////////////////////

            string exeNo1 = ini.GetIniValue("실행 순서", "1단계");
            string exeNo2 = ini.GetIniValue("실행 순서", "2단계");
            string exeNo3 = ini.GetIniValue("실행 순서", "3단계");
            string exeNo4 = ini.GetIniValue("실행 순서", "4단계");
            string exeNo5 = ini.GetIniValue("실행 순서", "5단계");
            string exeNo6 = ini.GetIniValue("실행 순서", "6단계");
            string exeNo7 = ini.GetIniValue("실행 순서", "7단계");

            if (exeNo7 == "끝")
            {
                source = imgProcess(source, exeNo1);
                source = imgProcess(source, exeNo2);
                source = imgProcess(source, exeNo3);
                source = imgProcess(source, exeNo4);
                source = imgProcess(source, exeNo5);
                source = imgProcess(source, exeNo6);
            }
            else if (exeNo6 == "끝")
            {
                source = imgProcess(source, exeNo1);
                source = imgProcess(source, exeNo2);
                source = imgProcess(source, exeNo3);
                source = imgProcess(source, exeNo4);
                source = imgProcess(source, exeNo5);
            }
            else if (exeNo5 == "끝")
            {
                source = imgProcess(source, exeNo1);
                source = imgProcess(source, exeNo2);
                source = imgProcess(source, exeNo3);
                source = imgProcess(source, exeNo4);
            }
            else if (exeNo4 == "끝")
            {
                source = imgProcess(source, exeNo1);
                source = imgProcess(source, exeNo2);
                source = imgProcess(source, exeNo3);
            }
            else if (exeNo3 == "끝")
            {
                source = imgProcess(source, exeNo1);
                source = imgProcess(source, exeNo2);
            }
            else if (exeNo2 == "끝")
            {
                source = imgProcess(source, exeNo1);
            }
            else if (exeNo1 == "끝")
            {
            }

            return source;
        }
示例#16
0
        // old 는 기준처방전 new 는 실제처방전, 1 과 2는 기준좌표 두점을 말하고, 모르는 제3의 new 를 찾는 함수
        public static int NewPointX(int x3old, int x1new, int x2new)
        {
            ///////////// ini 객체 생성 시작 /////////////////////////////////////////////////////
            //현재 프로그램이 실행되고 있는정보 가져오기: 디버깅 모드라면 bin/debug/프로그램명.exe
            FileInfo exefileinfo = new FileInfo(@"C:\Program Files\PLOCR\PLOCR.exe");
            string pathini = exefileinfo.Directory.FullName.ToString();  //프로그램 실행되고 있는데 path 가져오기
            string fileName = @"\PLOCRconfig.ini";  // 환경설정 파일명
            string filePath = pathini + fileName;   //ini 파일 경로
            DocumentAnalysis.IniUtil ini = new DocumentAnalysis.IniUtil(filePath);   // 만들어 놓았던 iniUtil 객체 생성(생성자 인자로 파일경로 정보 넘겨줌)
            //////////// ini 객체 생성 끝 /////////////////////////////////////////////////////////

            int x1old = int.Parse(ini.GetIniValue("스캔으로 찾은 좌표1번", "X"));
            int x2old = int.Parse(ini.GetIniValue("스캔으로 찾은 좌표2번", "X"));

            double x3new = 0;

            if ((x3old - x1old) < 0)
            {
                x3new = x1new - (Math.Abs((x3old - x1old)) * Math.Abs((x2new - x1new)) / Math.Abs((x2old - x1old)));  // x1old 는 기준처방의 1번좌표, x2old 는 기준처방의 2번좌표, x3old 는 사용자가 지정한 기준처방의 좌표
            }                                                                                                      // x1new 는 실제처방의 1번좌표, x2new 는 실제처방의 2번좌표, x3new 는 찾으려고 하는 좌표
            else if ((x3old - x1old) > 0)
            {
                x3new = Math.Abs((x3old - x1old)) * Math.Abs((x2new - x1new)) / Math.Abs((x2old - x1old)) + x1new;
            }
            return (int)x3new;  // 실제처방전의 원하는 좌표 x 값
        }
示例#17
0
        public static Bitmap sequence(Bitmap source)        // 이미지 처리 몇단계까지 해야하나 확인하고 처리
        {
            ///////////// ini 객체 생성 시작 /////////////////////////////////////////////////////
            //현재 프로그램이 실행되고 있는정보 가져오기: 디버깅 모드라면 bin/debug/프로그램명.exe
            FileInfo exefileinfo = new FileInfo(@"C:\Program Files\PLOCR\PLOCR.exe");
            string   pathini     = exefileinfo.Directory.FullName.ToString();      //프로그램 실행되고 있는데 path 가져오기
            string   fileName    = @"\PLOCRconfig.ini";                            // 환경설정 파일명
            string   filePath    = pathini + fileName;                             //ini 파일 경로

            DocumentAnalysis.IniUtil ini = new DocumentAnalysis.IniUtil(filePath); // 만들어 놓았던 iniUtil 객체 생성(생성자 인자로 파일경로 정보 넘겨줌)
            //////////// ini 객체 생성 끝 /////////////////////////////////////////////////////////

            string exeNo1 = ini.GetIniValue("실행 순서", "1단계");
            string exeNo2 = ini.GetIniValue("실행 순서", "2단계");
            string exeNo3 = ini.GetIniValue("실행 순서", "3단계");
            string exeNo4 = ini.GetIniValue("실행 순서", "4단계");
            string exeNo5 = ini.GetIniValue("실행 순서", "5단계");
            string exeNo6 = ini.GetIniValue("실행 순서", "6단계");
            string exeNo7 = ini.GetIniValue("실행 순서", "7단계");

            if (exeNo7 == "끝")
            {
                source = imgProcess(source, exeNo1);
                source = imgProcess(source, exeNo2);
                source = imgProcess(source, exeNo3);
                source = imgProcess(source, exeNo4);
                source = imgProcess(source, exeNo5);
                source = imgProcess(source, exeNo6);
            }
            else if (exeNo6 == "끝")
            {
                source = imgProcess(source, exeNo1);
                source = imgProcess(source, exeNo2);
                source = imgProcess(source, exeNo3);
                source = imgProcess(source, exeNo4);
                source = imgProcess(source, exeNo5);
            }
            else if (exeNo5 == "끝")
            {
                source = imgProcess(source, exeNo1);
                source = imgProcess(source, exeNo2);
                source = imgProcess(source, exeNo3);
                source = imgProcess(source, exeNo4);
            }
            else if (exeNo4 == "끝")
            {
                source = imgProcess(source, exeNo1);
                source = imgProcess(source, exeNo2);
                source = imgProcess(source, exeNo3);
            }
            else if (exeNo3 == "끝")
            {
                source = imgProcess(source, exeNo1);
                source = imgProcess(source, exeNo2);
            }
            else if (exeNo2 == "끝")
            {
                source = imgProcess(source, exeNo1);
            }
            else if (exeNo1 == "끝")
            {
            }

            return(source);
        }