개정판 66351e6d
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