修改所有的保存图片

This commit is contained in:
TD 2025-04-02 20:14:06 +08:00
parent 67ba78f268
commit dbf412713b
3 changed files with 28 additions and 11 deletions

View File

@ -84,6 +84,8 @@ namespace DH.Devices.Vision
detectResult.SaveNGOriginal=detectConfig.SaveNGOriginal;
detectResult.SaveOKDetect=detectConfig.SaveOKDetect;
detectResult.SaveOKOriginal=detectConfig.SaveOKOriginal;
Mat OriginImage = originImgSet.Clone();
detectResult.DetectionOriginImage = CopyBitmapWithLockBits(OriginImage.ToBitmap());
//detectResult.DetectionOriginImage = originImgSet.Clone().ToBitmap();
Stopwatch sw = new Stopwatch();
#region 1.
@ -1003,7 +1005,7 @@ namespace DH.Devices.Vision
List<IShapeElement> detectionResultShapesClone = new List<IShapeElement>(detectionResultShapes);
DetectionDone(DetectionId, resultMask, detectionResultShapes);
detectResult.DetectionOriginImage = CopyBitmapWithLockBits(resultMask);
//detectResult.DetectionOriginImage = CopyBitmapWithLockBits(resultMask);
SaveDetectResultImageAsync(detectResult);
// SaveDetectResultCSVAsync(detectResult);
}
@ -1108,15 +1110,15 @@ namespace DH.Devices.Vision
Bitmap preTreatedBitmap = detectResult.DetectionOriginImage.CopyBitmap();
List<IShapeElement> detectionResultShapes = new List<IShapeElement>(detectResult.DetectionResultShapes);
DetectResultDisplay resultDisplay = new DetectResultDisplay(detectResult, resultMask, displayTxt);
detectionResultShapes.Add(resultDisplay);
//List<IShapeElement> detectionResultShapes = new List<IShapeElement>(detectResult.DetectionResultShapes);
//DetectResultDisplay resultDisplay = new DetectResultDisplay(detectResult, resultMask, displayTxt);
//detectionResultShapes.Add(resultDisplay);
Bitmap resultMap = GetResultImage(resultMask, detectionResultShapes);
Bitmap resultMap = GetResultImage(resultMask, detectResult.DetectionResultShapes);
resultDisplay.Dispose();
detectionResultShapes.Clear();
// resultDisplay.Dispose();
//detectionResultShapes.Clear();
Bitmap detectionFitImage = StaticHelper.HConnectBitmap(preTreatedBitmap, resultMap);
@ -1228,6 +1230,9 @@ namespace DH.Devices.Vision
{
g.DrawImage(baseImage, 0, 0);
// 创建临时拷贝避免共享状态
// var tempElements = eleList.Select(e => e.Clone()).Cast<IShapeElement>().ToList();
eleList.ForEach(e =>
{
e.State = ElementState.Normal;
@ -1267,7 +1272,11 @@ namespace DH.Devices.Vision
}
catch (Exception ex)
{
// Logger.Error($"保存检测结果失败: {ex.Message}");
// Logger.Error($"保存检测结果失败: {ex.Message}");
}
finally {
GC.Collect();
GC.WaitForPendingFinalizers();
}
}
private void SaveNGImages(DetectStationResult result, string rootPath, string format)
@ -1322,7 +1331,7 @@ namespace DH.Devices.Vision
using (Bitmap resultMask = result.DetectionOriginImage.CopyBitmap())
using (Bitmap preTreatedBitmap = result.DetectionOriginImage.CopyBitmap())
{
var detectionResultShapes = new List<IShapeElement>(result.DetectionResultShapes)
var detectionResultShapes = new List<IShapeElement>()
{
new DetectResultDisplay(result, resultMask, displayTxt)
};
@ -1333,7 +1342,7 @@ namespace DH.Devices.Vision
string prefix = Path.Combine(rootPath, "OKFitImages", result.ResultLabel);
Directory.CreateDirectory(prefix);
string fullname = Path.Combine(prefix, $"{result.Pid}_OKFitImage_{result.DetectName}_{result.Id}.{format}");
SaveImageAsync(fullname, result.DetectionOriginImage, result.ImageFormat);
SaveImageAsync(fullname, detectionFitImage, result.ImageFormat);
}
}

View File

@ -10,6 +10,14 @@
<Platforms>AnyCPU;x64</Platforms>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
<Optimize>False</Optimize>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Optimize>False</Optimize>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\DH.Commons\DH.Commons.csproj" />
</ItemGroup>

View File

@ -580,7 +580,7 @@ namespace DH.UI.Model.Winform
/// </summary>
[Browsable(false)]
public Rectangle BaseRectangle { get; set; }
EnumHelper.ElementState IShapeElement.State { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
public abstract bool IsMouseHover(PointF p);