개정판 16231f58
issue #0000 imagecompare 수정
- rect을 opencv에서 그려 이미지로 출력
Change-Id: I241d6b62eb8dd88ae4a970c4e531d079bbaa3602
ImageComparer/Markus.ImageComparer/ImageCompare.cs | ||
---|---|---|
134 | 134 |
return result; |
135 | 135 |
} |
136 | 136 |
|
137 |
public System.Drawing.Bitmap CompareReturnDrawContours(System.Drawing.Bitmap Originalbitmap, System.Drawing.Bitmap TargatBitmap,Color rectColor) |
|
138 |
{ |
|
139 |
System.Drawing.Bitmap result = null; |
|
140 |
|
|
141 |
try |
|
142 |
{ |
|
143 |
List<System.Windows.Rect> rects = new List<System.Windows.Rect>(); |
|
144 |
|
|
145 |
var data = MathchesImageData(Originalbitmap, TargatBitmap); |
|
146 |
result = GetContoursImage(data, TargatBitmap.Size,rectColor); |
|
147 |
} |
|
148 |
catch (Exception ex) |
|
149 |
{ |
|
150 |
throw ex; |
|
151 |
} |
|
152 |
finally |
|
153 |
{ |
|
154 |
} |
|
155 |
|
|
156 |
return result; |
|
157 |
} |
|
158 |
|
|
137 | 159 |
/// <summary> |
138 | 160 |
/// 이미지를 비교 후 원본 이미지에 Rect를 그린다. |
139 | 161 |
/// 메모리 문제 발생 |
... | ... | |
220 | 242 |
/// </summary> |
221 | 243 |
/// <param name="nwdBitmap"></param> |
222 | 244 |
/// <returns></returns> |
223 |
public System.Windows.Media.Imaging.WriteableBitmap CreateWriteableBitmapFromBitmap(Bitmap bitmap)
|
|
245 |
public System.Windows.Media.Imaging.WriteableBitmap CreateWriteableBitmapFromBitmap(IList<Bitmap> bitmaps,Size size)
|
|
224 | 246 |
{ |
225 | 247 |
System.Windows.Media.Imaging.WriteableBitmap result = null; |
226 | 248 |
|
227 |
if (bitmap == null) |
|
228 |
throw new ArgumentNullException("bitmap"); |
|
229 |
|
|
230 | 249 |
try |
231 | 250 |
{ |
232 | 251 |
int bytesPerPixel = 4; |
233 | 252 |
|
234 |
Bitmap newBitmap = new Bitmap(bitmap.Width, bitmap.Height, PixelFormat.Format32bppArgb);
|
|
253 |
Bitmap newBitmap = new Bitmap(size.Width, size.Height, PixelFormat.Format32bppArgb);
|
|
235 | 254 |
using (Graphics g = Graphics.FromImage(newBitmap)) |
236 | 255 |
{ |
237 |
g.DrawImage(bitmap, 0, 0); |
|
256 |
foreach (var bitmap in bitmaps) |
|
257 |
{ |
|
258 |
g.DrawImage(bitmap, 0, 0); |
|
259 |
} |
|
238 | 260 |
} |
239 | 261 |
|
240 | 262 |
result = new System.Windows.Media.Imaging.WriteableBitmap(newBitmap.Width, newBitmap.Height, |
... | ... | |
256 | 278 |
} |
257 | 279 |
finally |
258 | 280 |
{ |
259 |
bitmap.Dispose(); |
|
260 |
bitmap = null; |
|
281 |
for (int i = 0; i < bitmaps.Count;i++) |
|
282 |
{ |
|
283 |
bitmaps[i].Dispose(); |
|
284 |
bitmaps[i] = null; |
|
285 |
} |
|
261 | 286 |
//GC.Collect(2); |
262 | 287 |
} |
263 | 288 |
|
내보내기 Unified diff