개정판 16231f58
issue #0000 imagecompare 수정
- rect을 opencv에서 그려 이미지로 출력
Change-Id: I241d6b62eb8dd88ae4a970c4e531d079bbaa3602
Markus.ImageComparer/ImageCompareBase.cs | ||
---|---|---|
126 | 126 |
|
127 | 127 |
return results; |
128 | 128 |
} |
129 |
protected System.Drawing.Bitmap GetContoursImage(Mat data, Size resultSize, Color RectColor) |
|
130 |
{ |
|
131 |
System.Drawing.Bitmap result = null; |
|
132 |
|
|
133 |
try |
|
134 |
{ |
|
135 |
Mat transparentImage = new Mat(new OpenCvSharp.Size(resultSize.Width, resultSize.Height), MatType.CV_8UC4, new Scalar(0, 0, 0, 0)); |
|
136 |
|
|
137 |
// 컨투어를 찾기 위한 변수 선언 |
|
138 |
HierarchyIndex[] hierarchy; |
|
139 |
OpenCvSharp.Point[][] contours; |
|
140 |
OpenCvSharp.Point testpoint = new OpenCvSharp.Point(); |
|
129 | 141 |
|
142 |
Cv2.Threshold(data, data, 100, 255, ThresholdTypes.BinaryInv); |
|
143 |
// 이진화된 이미지에서 컨투어 찾기 |
|
144 |
Cv2.FindContours(data, out contours, out hierarchy, RetrievalModes.List, ContourApproximationModes.ApproxNone, testpoint); |
|
145 |
|
|
146 |
|
|
147 |
// Scalar(B,G,R,A) |
|
148 |
// 컨투어 그리기 |
|
149 |
Cv2.DrawContours(transparentImage, contours, -1, new Scalar(RectColor.B, RectColor.G, RectColor.R, RectColor.A), 10); |
|
150 |
|
|
151 |
// Mat을 Bitmap으로 변환 |
|
152 |
result = OpenCvSharp.Extensions.BitmapConverter.ToBitmap(transparentImage); |
|
153 |
} |
|
154 |
catch (Exception ex) |
|
155 |
{ |
|
156 |
throw new Exception("GetContoursImage Error.", ex); |
|
157 |
} |
|
158 |
finally |
|
159 |
{ |
|
160 |
|
|
161 |
} |
|
162 |
|
|
163 |
return result; |
|
164 |
} |
|
130 | 165 |
private List<System.Windows.Rect> GetRectListAsParallel(OpenCvSharp.Point[] points, Size block) |
131 | 166 |
{ |
132 | 167 |
List<System.Windows.Rect> result = new List<System.Windows.Rect>(); |
내보내기 Unified diff