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