From 60feedf43a35a9ca69d05095a01c5d1797b1bdc3 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期五, 09 九月 2022 18:47:14 +0800
Subject: [PATCH] '完善'

---
 ConsoleApplication/kernel.cl |  125 +++++++++++++++++++++++++++++++++++++++++
 1 files changed, 125 insertions(+), 0 deletions(-)

diff --git a/ConsoleApplication/kernel.cl b/ConsoleApplication/kernel.cl
index 5a35d98..8f523d0 100644
--- a/ConsoleApplication/kernel.cl
+++ b/ConsoleApplication/kernel.cl
@@ -452,8 +452,133 @@
 		nps[10] = -1;
 		nps[11] = -1;
 	}
+	//百分比
+	else if (type == 5) {
+	
+		//百分比数字起始位置
+		int percent_start = -1;
+		int emptyIndex = -1;
+		int i;
+		for (i = startx;i <= endx;i++) {
+			bool empty = 1;
+			for (int y = starty;y < endy;y++) {
+				if (get_binary_value(img_in[get_one_level_position(width, i, y)]) > 0) {
+					empty = 0;
+					break;
+				}
+			}
+			if (empty) {
+				emptyIndex = i;
+			}else if (emptyIndex > 0) {
+				percent_start = i;
+				break;
+			}
+
+		}
+
+	
+		//百分比数字的结束位置
+		int percent_end = -1;
+		emptyIndex = -1;
+		
+		for (i = endx;i >= startx;i--) {
+			bool empty = 1;
+			for (int y = starty;y < endy;y++) {
+				if (get_binary_value(img_in[get_one_level_position(width, i, y)]) > 0) {
+					empty = 0;
+					break;
+				}
+			}
+			if (empty) {
+				emptyIndex = i;
+			}else if (emptyIndex > 0) {
+				percent_end = i;
+				break;
+			}
+		}
+
+		
+
+		if (percent_start > -1) {
+			startx = percent_start;
+		}
+
+		if (percent_end > -1) {
+			endx = percent_end;
+		}
+
+	
+		//按照价格的形式做识别
+		int m_s = -1, m_e = -1;
+		uchar temp[8];
+		for (i = 0;i < cols;i++) {
+			if (i > cols - 5) {
+				break;
+			}
+			temp[0] = get_binary_value(img_in[get_one_level_position(width, startx + i, endy)]);
+			temp[1] = get_binary_value(img_in[get_one_level_position(width, startx + i + 1, endy)]);
+			temp[2] = get_binary_value(img_in[get_one_level_position(width, startx + i + 2, endy)]);
+			temp[3] = get_binary_value(img_in[get_one_level_position(width, startx + i + 3, endy)]);
+			temp[4] = get_binary_value(img_in[get_one_level_position(width, startx + i + 4, endy)]);
+			temp[5] = get_binary_value(img_in[get_one_level_position(width, startx + i + 5, endy)]);
+			temp[6] = get_binary_value(img_in[get_one_level_position(width, startx + i + 2, endy - 1)]);
+			temp[7] = get_binary_value(img_in[get_one_level_position(width, startx + i + 3, endy - 1)]);
+			if (temp[2] > 0 && temp[3] > 0 && temp[6] > 0 && temp[7] > 0) {
+
+				if (temp[0] + temp[1] + temp[4] + temp[5] == 0)
+				{
+
+					bool empty = 1;
+					for (int y = starty;y < endy - 1;y++) {
+						if (get_binary_value(img_in[get_one_level_position(width, startx + i + 2, y)]) > 0) {
+							empty = 0;
+							break;
+						}
+					}
+					//小数点上方为空值
+					if (empty) {
+						m_s = i;
+						m_e = i + 5;
+						break;
+					}
+				}
+			}
+		}
+
+		if (m_s == -1 || m_e == -1) {
+		
+			nps[0] = -1;
+			nps[1] = -1;
+			nps[2] = -1;
+			nps[3] = -1;
+
+			nps[4] = -1;
+			nps[5] = -1;
+			nps[6] = -1;
+			nps[7] = -1;
+		}
+		else {
+			nps[0] = startx;
+			nps[1] = starty;
+			nps[2] = startx + m_s - 1;
+			nps[3] = endy;
+
+			nps[4] = startx + m_e + 1;
+			nps[5] = starty;
+			nps[6] = endx;
+			nps[7] = endy;
+		}
+
+		nps[8] = -1;
+		nps[9] = -1;
+		nps[10] = -1;
+		nps[11] = -1;
+
+	}
+
 	//分隔数据
 
+
 	//最大分割20个数
 	int numCount = 0;
 	//记录分割得到的数据

--
Gitblit v1.8.0