프로젝트

일반

사용자정보

개정판 66351e6d

ID66351e6d1285c95ca846f9a3618c50b5d63573a7
상위 5b5d9b1f
하위 67994a4d

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

ImageCompare 정확도 수정

Change-Id: If781225b99a2e230514abaaef8b9972e66463c07

차이점 보기:

ImageComparer/Markus.ImageComparer/ImageComparerBase.cs
46 46
            {
47 47
                SetStatus("Image Load", 0, CompareStatus.Loading);
48 48

  
49
                Originalbitmap = ChangeBitmapFormatAndSize(Originalbitmap, Originalbitmap.Size, PixelFormat.Format24bppRgb);
50
                TargatBitmap = ChangeBitmapFormatAndSize(TargatBitmap, Originalbitmap.Size, PixelFormat.Format24bppRgb);
51

  
49 52
                // 원본이미지의 크키와 Format24bppRgb로 타켓 이미지를 변경
50 53
                // 크기가 틀린 경우 비교시 바이트배열 오류 발생
51 54
                OriginalImageData = OpenCvSharp.Extensions.BitmapConverter.ToMat(Originalbitmap);
......
77 80
            return result;
78 81
        }
79 82

  
83
        protected System.Drawing.Bitmap ChangeBitmapFormatAndSize(System.Drawing.Bitmap bitmap, Size newSize, PixelFormat pixelFormat)
84
        {
85
            Bitmap result = bitmap;
86

  
87
            if (pixelFormat != bitmap.PixelFormat)
88
            {
89
                Point originPoint = new Point(0, 0);
90
                Rectangle rect = new Rectangle(originPoint, bitmap.Size);
91
                result = bitmap.Clone(rect, pixelFormat);
92
            }
93

  
94
            if (bitmap.Size != newSize)
95
            {
96
                result = new Bitmap(newSize.Width, newSize.Height);
97

  
98
                using (Graphics g = Graphics.FromImage(result))
99
                {
100
                    g.DrawImage(bitmap, 0, 0, newSize.Width, newSize.Height);
101
                    g.Dispose();
102
                }
103
            }
104

  
105
            return result;
106
        }
107

  
80 108
        /// <summary>
81 109
        /// Image<TColor, TDepth>의 틀린 부분을 Rect로 반환
82 110
        /// </summary>
......
102 130

  
103 131
            OpenCvSharp.Point testpoint = new OpenCvSharp.Point();
104 132
           
105
            Cv2.Threshold(data, data, 90, 255,ThresholdTypes.BinaryInv);
133
            Cv2.Threshold(data, data, 0, 0,ThresholdTypes.BinaryInv);
106 134

  
107 135
            Cv2.FindContours(data, out contours, out hierarchy,RetrievalModes.List,ContourApproximationModes.ApproxNone, testpoint);
108 136

  

내보내기 Unified diff

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