프로젝트

일반

사용자정보

개정판 253c9730

ID253c973011a7e37766669ce83d920cd6a70e855c
상위 16231f58
하위 206eb77c

김태성이(가) 4달 전에 추가함

issue #00000 compare 속도 및 메모리 최적화
- page 변셩시 이미지 안 보이는 문제 수정

Change-Id: I0efcd3d93178807d9bead96c38e81377ca6730fd

차이점 보기:

Markus.ImageComparer/ImageCompareBase.cs
45 45
            try
46 46
            {
47 47
                SetStatus("Image Load", 0, CompareStatus.Loading);
48
                OpenCvSharp.Size rSize = new OpenCvSharp.Size(resultSize.Width, resultSize.Height);
48 49

  
49
                Originalbitmap = ChangeBitmapFormatAndSize(Originalbitmap, resultSize, PixelFormat.Format24bppRgb);
50
                TargatBitmap = ChangeBitmapFormatAndSize(TargatBitmap, resultSize, PixelFormat.Format24bppRgb);
50
                //Originalbitmap = ChangeBitmapFormatAndSize(Originalbitmap, resultSize, PixelFormat.Format24bppRgb);
51
                //TargatBitmap = ChangeBitmapFormatAndSize(TargatBitmap, resultSize, PixelFormat.Format24bppRgb);
51 52

  
52 53
                // 원본이미지의 크키와 Format24bppRgb로 타켓 이미지를 변경
53 54
                // 크기가 틀린 경우 비교시 바이트배열 오류 발생
......
55 56
                {
56 57
                    using (Mat TargatImageData = OpenCvSharp.Extensions.BitmapConverter.ToMat(TargatBitmap))
57 58
                    {
58
                        if (OriginalImageData.Size() != TargatImageData.Size())
59
                        if (OriginalImageData.Size() != rSize)
59 60
                        {
60
                            Cv2.Resize(TargatImageData, TargatImageData, OriginalImageData.Size());
61
                            Cv2.Resize(OriginalImageData, OriginalImageData, rSize);
62
                        }
63

  
64
                        if (TargatImageData.Size() != rSize)
65
                        {
66
                            Cv2.Resize(TargatImageData, TargatImageData, rSize);
61 67
                        }
62 68

  
63 69
                        Cv2.CvtColor(OriginalImageData, OriginalImageData, ColorConversionCodes.BGR2GRAY);
......
83 89
            return result;
84 90
        }
85 91

  
92
        protected Mat MathchesImageData(Mat OriginalImageData, Mat TargatImageData, Size resultSize)
93
        {
94
            Mat result = new Mat();
95

  
96
            try
97
            {
98
                SetStatus("Image Load", 0, CompareStatus.Loading);
99
                OpenCvSharp.Size rSize = new OpenCvSharp.Size(resultSize.Width, resultSize.Height);
100

  
101
                // 크기가 틀린 경우 비교시 바이트배열 오류 발생
102
         
103
                if (OriginalImageData.Size() != rSize)
104
                {
105
                    Cv2.Resize(OriginalImageData, OriginalImageData, rSize);
106
                }
107

  
108
                if (TargatImageData.Size() != rSize)
109
                {
110
                    Cv2.Resize(TargatImageData, TargatImageData, rSize);
111
                }
112

  
113
                Cv2.CvtColor(OriginalImageData, OriginalImageData, ColorConversionCodes.BGR2GRAY);
114
                Cv2.CvtColor(TargatImageData, TargatImageData, ColorConversionCodes.BGR2GRAY);
115

  
116
                using (Mat outputData = new Mat(new OpenCvSharp.Size(resultSize.Width, resultSize.Height), MatType.CV_8UC1))
117
                {
118
                    Cv2.Absdiff(OriginalImageData, TargatImageData, outputData);
119
                    // 틀린부분을 반환
120
                    Cv2.BitwiseNot(outputData, result);
121
                }
122
            }
123
            catch (Exception ex)
124
            {
125
                throw ex;
126
            }
127
            finally
128
            {
129
            }
130

  
131
            return result;
132
        }
133

  
86 134

  
87 135
        /// <summary>
88 136
        /// Image<TColor, TDepth>의 틀린 부분을 Rect로 반환

내보내기 Unified diff

클립보드 이미지 추가 (최대 크기: 500 MB)