From 086ec74e94654e92b3a1c6f42612d12ef33ff4b2 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期五, 28 十月 2022 14:41:08 +0800
Subject: [PATCH] '优化自启动机制'

---
 ConsoleApplication/L2DataCapture.cpp |   41 +++++++++++++++++++++++++++++++++--------
 1 files changed, 33 insertions(+), 8 deletions(-)

diff --git a/ConsoleApplication/L2DataCapture.cpp b/ConsoleApplication/L2DataCapture.cpp
index e8c2a72..e51bf89 100644
--- a/ConsoleApplication/L2DataCapture.cpp
+++ b/ConsoleApplication/L2DataCapture.cpp
@@ -220,12 +220,26 @@
 		img.data = oimg.data;
 	}
 	else {
-		if (oimg.channels() == 3)
-		{
-			openCLExcuter->rgb2Gray(oimg.data, oimg.cols, oimg.rows, imgData);
+		try {
+			if (oimg.channels() == 3)
+			{
+				openCLExcuter->rgb2Gray(oimg, imgData);
+			}
+			else {
+				openCLExcuter->rgba2Gray(oimg, imgData);
+			}
 		}
-		else {
-			openCLExcuter->rgba2Gray(oimg.data, oimg.cols, oimg.rows, imgData);
+		catch (...) {
+
+			cv::imwrite("D:\\imgs\\l2.png", oimg);
+
+			if (imgData != NULL)
+			{
+				free(imgData);
+			}
+			imgData = NULL;
+			oimg.release();
+			throw string("灰度出错");
 		}
 		img.data = imgData;
 		oimg.release();
@@ -255,6 +269,8 @@
 	catch (...) {
 		//释放内存
 		free(imgData);
+		imgData = NULL;
+
 		throw int(ERROR_CODE_DIVIDE_IMG_FAIL);
 	}
 	//一维行图像数据
@@ -270,10 +286,19 @@
 		index++;
 		free(indexs);
 	}
-	//一维分块图像数据
+	//一维按行切分图像数据
 	int* rowSplitDataOneLevel = (int*)malloc(sizeof(int) * rowDataList.size() * 4 * 7);
-	openCLExcuter->splitL2RowData(imgData, img.cols, img.rows, rowDataOneLevel, rowDataList.size(), rowSplitDataOneLevel);
-	free(rowDataOneLevel);
+	try {
+		openCLExcuter->splitL2RowData(img, rowDataOneLevel, rowDataList.size(), rowSplitDataOneLevel);
+		free(rowDataOneLevel);
+	}
+	catch (...) {
+		free(rowDataOneLevel);
+		free(rowSplitDataOneLevel);
+		free(imgData);
+		throw string("图片分隔出错");
+	}
+	
 
 	/*
 	for (int i = 0;i < rowDataList.size();i++) {

--
Gitblit v1.8.0