commit a190933e3518d5196bbdbd0999df459d6be4ee25 Author: nizhangdaye <2508022039@qq.com> Date: Mon Jun 17 18:08:24 2024 +0800 第一次递交:能够实现图片分割,开头数字识别 diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..359bb53 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# 默认忽略的文件 +/shelf/ +/workspace.xml diff --git a/.idea/.name b/.idea/.name new file mode 100644 index 0000000..ac0be0d --- /dev/null +++ b/.idea/.name @@ -0,0 +1 @@ +TLD_Code \ No newline at end of file diff --git a/.idea/TLD_Code.iml b/.idea/TLD_Code.iml new file mode 100644 index 0000000..e61883f --- /dev/null +++ b/.idea/TLD_Code.iml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/deployment.xml b/.idea/deployment.xml new file mode 100644 index 0000000..fef5aab --- /dev/null +++ b/.idea/deployment.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..9bf1c57 --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,20 @@ + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml new file mode 100644 index 0000000..105ce2d --- /dev/null +++ b/.idea/inspectionProfiles/profiles_settings.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..1e4b6b5 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,7 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..d381cb9 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/data/1-D2K286+520-300GD P_1.JPG b/data/1-D2K286+520-300GD P_1.JPG new file mode 100644 index 0000000..4588750 Binary files /dev/null and b/data/1-D2K286+520-300GD P_1.JPG differ diff --git a/data/1-D2K999+150-D2K999+350-ZQ-12 P_1.JPG b/data/1-D2K999+150-D2K999+350-ZQ-12 P_1.JPG new file mode 100644 index 0000000..00730fa Binary files /dev/null and b/data/1-D2K999+150-D2K999+350-ZQ-12 P_1.JPG differ diff --git a/data/1-DK199+530-470GD.JPG b/data/1-DK199+530-470GD.JPG new file mode 100644 index 0000000..63e7003 Binary files /dev/null and b/data/1-DK199+530-470GD.JPG differ diff --git a/data/2-DK199+580-530GD.JPG b/data/2-DK199+580-530GD.JPG new file mode 100644 index 0000000..8aa872f Binary files /dev/null and b/data/2-DK199+580-530GD.JPG differ diff --git a/data/3-DK199+635-580GD.JPG b/data/3-DK199+635-580GD.JPG new file mode 100644 index 0000000..7eaa197 Binary files /dev/null and b/data/3-DK199+635-580GD.JPG differ diff --git a/data/4-DK199+000-DK198+920YY P_111.JPG b/data/4-DK199+000-DK198+920YY P_111.JPG new file mode 100644 index 0000000..ce018a7 Binary files /dev/null and b/data/4-DK199+000-DK198+920YY P_111.JPG differ diff --git a/data/5-DK199+680-635GD.JPG b/data/5-DK199+680-635GD.JPG new file mode 100644 index 0000000..5bf6f0d Binary files /dev/null and b/data/5-DK199+680-635GD.JPG differ diff --git a/data/7-D2K285+600-845GD P_1.JPG b/data/7-D2K285+600-845GD P_1.JPG new file mode 100644 index 0000000..7c7b4c7 Binary files /dev/null and b/data/7-D2K285+600-845GD P_1.JPG differ diff --git a/data/num/num_0.png b/data/num/num_0.png new file mode 100644 index 0000000..257639e Binary files /dev/null and b/data/num/num_0.png differ diff --git a/data/num/num_1.png b/data/num/num_1.png new file mode 100644 index 0000000..fb660ae Binary files /dev/null and b/data/num/num_1.png differ diff --git a/data/num/num_2.png b/data/num/num_2.png new file mode 100644 index 0000000..a6802c0 Binary files /dev/null and b/data/num/num_2.png differ diff --git a/data/num/num_3.png b/data/num/num_3.png new file mode 100644 index 0000000..0307c70 Binary files /dev/null and b/data/num/num_3.png differ diff --git a/data/num/num_4.png b/data/num/num_4.png new file mode 100644 index 0000000..e45f7c8 Binary files /dev/null and b/data/num/num_4.png differ diff --git a/data/num/num_5.png b/data/num/num_5.png new file mode 100644 index 0000000..2fc4923 Binary files /dev/null and b/data/num/num_5.png differ diff --git a/data/num/num_6.png b/data/num/num_6.png new file mode 100644 index 0000000..cde3212 Binary files /dev/null and b/data/num/num_6.png differ diff --git a/data/num/num_7.png b/data/num/num_7.png new file mode 100644 index 0000000..d224c5e Binary files /dev/null and b/data/num/num_7.png differ diff --git a/data/num/num_8.png b/data/num/num_8.png new file mode 100644 index 0000000..d9bfa9b Binary files /dev/null and b/data/num/num_8.png differ diff --git a/data/num/num_9.png b/data/num/num_9.png new file mode 100644 index 0000000..d7324af Binary files /dev/null and b/data/num/num_9.png differ diff --git a/data/num1.PNG b/data/num1.PNG new file mode 100644 index 0000000..5b12d10 Binary files /dev/null and b/data/num1.PNG differ diff --git a/data/num2.PNG b/data/num2.PNG new file mode 100644 index 0000000..9aaeff2 Binary files /dev/null and b/data/num2.PNG differ diff --git a/data/num3.PNG b/data/num3.PNG new file mode 100644 index 0000000..2fcf5ea Binary files /dev/null and b/data/num3.PNG differ diff --git a/data/num4.PNG b/data/num4.PNG new file mode 100644 index 0000000..da4f15f Binary files /dev/null and b/data/num4.PNG differ diff --git a/data/saved_img/data_interest.PNG b/data/saved_img/data_interest.PNG new file mode 100644 index 0000000..bf4118a Binary files /dev/null and b/data/saved_img/data_interest.PNG differ diff --git a/data/saved_img/image_1.PNG b/data/saved_img/image_1.PNG new file mode 100644 index 0000000..ae4e177 Binary files /dev/null and b/data/saved_img/image_1.PNG differ diff --git a/data/saved_img/image_10.PNG b/data/saved_img/image_10.PNG new file mode 100644 index 0000000..c42de58 Binary files /dev/null and b/data/saved_img/image_10.PNG differ diff --git a/data/saved_img/image_11.PNG b/data/saved_img/image_11.PNG new file mode 100644 index 0000000..53011df Binary files /dev/null and b/data/saved_img/image_11.PNG differ diff --git a/data/saved_img/image_12.PNG b/data/saved_img/image_12.PNG new file mode 100644 index 0000000..ef18f06 Binary files /dev/null and b/data/saved_img/image_12.PNG differ diff --git a/data/saved_img/image_13.PNG b/data/saved_img/image_13.PNG new file mode 100644 index 0000000..41fb27b Binary files /dev/null and b/data/saved_img/image_13.PNG differ diff --git a/data/saved_img/image_14.PNG b/data/saved_img/image_14.PNG new file mode 100644 index 0000000..fbbf705 Binary files /dev/null and b/data/saved_img/image_14.PNG differ diff --git a/data/saved_img/image_15.PNG b/data/saved_img/image_15.PNG new file mode 100644 index 0000000..19b2fe5 Binary files /dev/null and b/data/saved_img/image_15.PNG differ diff --git a/data/saved_img/image_16.PNG b/data/saved_img/image_16.PNG new file mode 100644 index 0000000..0bb19f4 Binary files /dev/null and b/data/saved_img/image_16.PNG differ diff --git a/data/saved_img/image_17.PNG b/data/saved_img/image_17.PNG new file mode 100644 index 0000000..adfab3d Binary files /dev/null and b/data/saved_img/image_17.PNG differ diff --git a/data/saved_img/image_18.PNG b/data/saved_img/image_18.PNG new file mode 100644 index 0000000..b726efe Binary files /dev/null and b/data/saved_img/image_18.PNG differ diff --git a/data/saved_img/image_19.PNG b/data/saved_img/image_19.PNG new file mode 100644 index 0000000..ee9d10b Binary files /dev/null and b/data/saved_img/image_19.PNG differ diff --git a/data/saved_img/image_2.PNG b/data/saved_img/image_2.PNG new file mode 100644 index 0000000..915660c Binary files /dev/null and b/data/saved_img/image_2.PNG differ diff --git a/data/saved_img/image_20.PNG b/data/saved_img/image_20.PNG new file mode 100644 index 0000000..14aeebd Binary files /dev/null and b/data/saved_img/image_20.PNG differ diff --git a/data/saved_img/image_21.PNG b/data/saved_img/image_21.PNG new file mode 100644 index 0000000..3d294aa Binary files /dev/null and b/data/saved_img/image_21.PNG differ diff --git a/data/saved_img/image_22.PNG b/data/saved_img/image_22.PNG new file mode 100644 index 0000000..3d296fb Binary files /dev/null and b/data/saved_img/image_22.PNG differ diff --git a/data/saved_img/image_23.PNG b/data/saved_img/image_23.PNG new file mode 100644 index 0000000..b276503 Binary files /dev/null and b/data/saved_img/image_23.PNG differ diff --git a/data/saved_img/image_24.PNG b/data/saved_img/image_24.PNG new file mode 100644 index 0000000..c8d91f5 Binary files /dev/null and b/data/saved_img/image_24.PNG differ diff --git a/data/saved_img/image_25.PNG b/data/saved_img/image_25.PNG new file mode 100644 index 0000000..d948048 Binary files /dev/null and b/data/saved_img/image_25.PNG differ diff --git a/data/saved_img/image_26.PNG b/data/saved_img/image_26.PNG new file mode 100644 index 0000000..49340f7 Binary files /dev/null and b/data/saved_img/image_26.PNG differ diff --git a/data/saved_img/image_27.PNG b/data/saved_img/image_27.PNG new file mode 100644 index 0000000..a901ec6 Binary files /dev/null and b/data/saved_img/image_27.PNG differ diff --git a/data/saved_img/image_28.PNG b/data/saved_img/image_28.PNG new file mode 100644 index 0000000..315a3e7 Binary files /dev/null and b/data/saved_img/image_28.PNG differ diff --git a/data/saved_img/image_29.PNG b/data/saved_img/image_29.PNG new file mode 100644 index 0000000..247e7a7 Binary files /dev/null and b/data/saved_img/image_29.PNG differ diff --git a/data/saved_img/image_3.PNG b/data/saved_img/image_3.PNG new file mode 100644 index 0000000..d4d2f57 Binary files /dev/null and b/data/saved_img/image_3.PNG differ diff --git a/data/saved_img/image_30.PNG b/data/saved_img/image_30.PNG new file mode 100644 index 0000000..1f4a5f6 Binary files /dev/null and b/data/saved_img/image_30.PNG differ diff --git a/data/saved_img/image_31.PNG b/data/saved_img/image_31.PNG new file mode 100644 index 0000000..1afc6c2 Binary files /dev/null and b/data/saved_img/image_31.PNG differ diff --git a/data/saved_img/image_32.PNG b/data/saved_img/image_32.PNG new file mode 100644 index 0000000..aed3c92 Binary files /dev/null and b/data/saved_img/image_32.PNG differ diff --git a/data/saved_img/image_33.PNG b/data/saved_img/image_33.PNG new file mode 100644 index 0000000..f1a19e9 Binary files /dev/null and b/data/saved_img/image_33.PNG differ diff --git a/data/saved_img/image_34.PNG b/data/saved_img/image_34.PNG new file mode 100644 index 0000000..341dd45 Binary files /dev/null and b/data/saved_img/image_34.PNG differ diff --git a/data/saved_img/image_35.PNG b/data/saved_img/image_35.PNG new file mode 100644 index 0000000..9a37b4b Binary files /dev/null and b/data/saved_img/image_35.PNG differ diff --git a/data/saved_img/image_36.PNG b/data/saved_img/image_36.PNG new file mode 100644 index 0000000..6481eae Binary files /dev/null and b/data/saved_img/image_36.PNG differ diff --git a/data/saved_img/image_37.PNG b/data/saved_img/image_37.PNG new file mode 100644 index 0000000..87bd1b4 Binary files /dev/null and b/data/saved_img/image_37.PNG differ diff --git a/data/saved_img/image_38.PNG b/data/saved_img/image_38.PNG new file mode 100644 index 0000000..f054105 Binary files /dev/null and b/data/saved_img/image_38.PNG differ diff --git a/data/saved_img/image_39.PNG b/data/saved_img/image_39.PNG new file mode 100644 index 0000000..147ed5d Binary files /dev/null and b/data/saved_img/image_39.PNG differ diff --git a/data/saved_img/image_4.PNG b/data/saved_img/image_4.PNG new file mode 100644 index 0000000..dc97029 Binary files /dev/null and b/data/saved_img/image_4.PNG differ diff --git a/data/saved_img/image_40.PNG b/data/saved_img/image_40.PNG new file mode 100644 index 0000000..2556b6e Binary files /dev/null and b/data/saved_img/image_40.PNG differ diff --git a/data/saved_img/image_41.PNG b/data/saved_img/image_41.PNG new file mode 100644 index 0000000..dff0401 Binary files /dev/null and b/data/saved_img/image_41.PNG differ diff --git a/data/saved_img/image_42.PNG b/data/saved_img/image_42.PNG new file mode 100644 index 0000000..99f0e56 Binary files /dev/null and b/data/saved_img/image_42.PNG differ diff --git a/data/saved_img/image_43.PNG b/data/saved_img/image_43.PNG new file mode 100644 index 0000000..271ea14 Binary files /dev/null and b/data/saved_img/image_43.PNG differ diff --git a/data/saved_img/image_44.PNG b/data/saved_img/image_44.PNG new file mode 100644 index 0000000..b5c119e Binary files /dev/null and b/data/saved_img/image_44.PNG differ diff --git a/data/saved_img/image_5.PNG b/data/saved_img/image_5.PNG new file mode 100644 index 0000000..5213728 Binary files /dev/null and b/data/saved_img/image_5.PNG differ diff --git a/data/saved_img/image_6.PNG b/data/saved_img/image_6.PNG new file mode 100644 index 0000000..e4e21ba Binary files /dev/null and b/data/saved_img/image_6.PNG differ diff --git a/data/saved_img/image_7.PNG b/data/saved_img/image_7.PNG new file mode 100644 index 0000000..a305e51 Binary files /dev/null and b/data/saved_img/image_7.PNG differ diff --git a/data/saved_img/image_8.PNG b/data/saved_img/image_8.PNG new file mode 100644 index 0000000..0fac583 Binary files /dev/null and b/data/saved_img/image_8.PNG differ diff --git a/data/saved_img/image_9.PNG b/data/saved_img/image_9.PNG new file mode 100644 index 0000000..a5b9292 Binary files /dev/null and b/data/saved_img/image_9.PNG differ diff --git a/data/saved_img/number_interest.PNG b/data/saved_img/number_interest.PNG new file mode 100644 index 0000000..be3d40d Binary files /dev/null and b/data/saved_img/number_interest.PNG differ diff --git a/data/无效/image_29.PNG b/data/无效/image_29.PNG new file mode 100644 index 0000000..247e7a7 Binary files /dev/null and b/data/无效/image_29.PNG differ diff --git a/data/无效/image_30.PNG b/data/无效/image_30.PNG new file mode 100644 index 0000000..1f4a5f6 Binary files /dev/null and b/data/无效/image_30.PNG differ diff --git a/data/无效/image_31.PNG b/data/无效/image_31.PNG new file mode 100644 index 0000000..1afc6c2 Binary files /dev/null and b/data/无效/image_31.PNG differ diff --git a/data/无效/image_32.PNG b/data/无效/image_32.PNG new file mode 100644 index 0000000..aed3c92 Binary files /dev/null and b/data/无效/image_32.PNG differ diff --git a/data/无效/image_33.PNG b/data/无效/image_33.PNG new file mode 100644 index 0000000..f1a19e9 Binary files /dev/null and b/data/无效/image_33.PNG differ diff --git a/img_processing.py b/img_processing.py new file mode 100644 index 0000000..264eafd --- /dev/null +++ b/img_processing.py @@ -0,0 +1,89 @@ +import cv2 as cv +import numpy as np +from matplotlib import pyplot as plt +import number_processing + + +def cv_show(name, img): + """定义cv_show函数,用于显示图像""" + cv.namedWindow(name, cv.WINDOW_NORMAL) # 窗口大小可调 + cv.resizeWindow(name, img.shape[1], img.shape[0]) # 窗口大小可调 + cv.imshow(name, img) + cv.waitKey(0) + cv.destroyAllWindows() + + +def cv_info(name, img): + """ + 定义cv_info函数,确认图像是否成功读取,并且打印图像的基本信息 + """ + print(f"图像 {name} 信息如下:") + if img is None: + print("无法读取图像") + else: + print("图像数据类型:", img.dtype) + print("图像类型:", type(img)) + print("图像尺寸:", img.shape) + print("图像行数:", img.shape[0]) + print("图像列数:", img.shape[1]) + print() + + +def find_line(img): + """ + 定义find_line函数,用于寻找分界线 + 返回一段图像的宽度 + """ + for i in range(img.shape[1]): # 遍历 a 列 + if np.all(img[0, i] >= [230, 230, 230]): + # 求该列像素均值,判断是否为白色 + mean = np.mean(img[:, i]) + if mean >= 240: # 像素均值大于 230 判断为白色 + print(f"分界线位置:{i}, 像素均值:{mean}", end="\n\n") + return i + return -1 # 如果没有找到符合条件的分界线,则返回图像的宽度 + + +def split_img(img): + """ + 定义split_img函数,用于将图像分割并保存 + 无返回值 + """ + img_width = find_line(img) # 返回图像的宽度 + n = 0 # 用于计数分割得到的图像数 + for i in range(0, img.shape[1], img_width + 1): # 遍历 img 的每一列 + image = img[:, i: i + img_width] + n += 1 + cv.imwrite(f"data/saved_img/image_{n}.PNG", image) # 保存图片 无损压缩格式 PNG + + +def split_num(img): + """ + 定义split_num函数,用于分割数字并保存 + 返回数字 + """ + # 将彩色图像转化为灰度图像 + img_gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY) + # 二值化处理,你可以根据需要调整阈值 + _, thresh = cv.threshold(img_gray, 128, 255, cv.THRESH_BINARY_INV) + # 查找轮廓 + contours, _ = cv.findContours(thresh, cv.RETR_EXTERNAL, cv.CHAIN_APPROX_SIMPLE) + # 对轮廓进行排序,以便从左到右处理数字(可选) + contours = sorted(contours, key=lambda x: cv.boundingRect(x)[0]) + + # 用于存储识别出的数字字符串 + recognized_digits = [] + + # 遍历每个轮廓,并保存每个数字的图片 + for i, contour in enumerate(contours): + x, y, w, h = cv.boundingRect(contour) + digit = thresh[y:y + h, x:x + w] + # print(f"第{i+1}个数字的尺寸:{digit.shape[0]}") + if digit.shape[0] < 5: # 小数点的轮廓太小,跳过 + break + + recognized_digits.append(str(number_processing.num_list.index(digit.tolist()))) + + # # 保存数字图片 + # cv.imwrite(f'data/saved_img/digit_{i}.png', digit) + return int("".join(recognized_digits)) diff --git a/mian.py b/mian.py new file mode 100644 index 0000000..8a0f857 --- /dev/null +++ b/mian.py @@ -0,0 +1,30 @@ +import cv2 as cv +import numpy as np +from matplotlib import pyplot as plt +import img_processing as ip + +print(cv.__version__) + +img_path = 'data/1-D2K286+520-300GD P_1.JPG' +img = cv.imread(img_path, cv.IMREAD_COLOR) # 读取图像 三通道彩色图 + +# 起始点假设为固定位置,即 44 行,65 列 +data_interest = img[44:, 65:-2] # 感兴趣的数据区域 +number_interest = img[8:20, 64:175] # 感兴趣的数字区域 横向 + +ip.cv_info(f"data_interest", data_interest) +ip.cv_info(f"number_interest", number_interest) + +# 切割图像 +ip.split_img(data_interest) + +# 获取数字 +num = ip.split_num(number_interest) +print(type(num)) +print(num) + +# gi.cv_show('data', data_interest) +# gi.cv_show('number', a) + +cv.imwrite('data/saved_img/data_interest.PNG', data_interest) # 保存图片 +cv.imwrite('data/saved_img/number_interest.PNG', number_interest) # 保存图片 diff --git a/number_processing.py b/number_processing.py new file mode 100644 index 0000000..e4fa947 --- /dev/null +++ b/number_processing.py @@ -0,0 +1,61 @@ +import cv2 +import os + + +def get_num_list(folder_path): + """ + 读取文件夹中的所有.png格式图片,并进行二值化处理,并返回包含二值化图片的列表。 + """ + binary_images = [] + # 遍历文件夹中的所有文件 + for filename in sorted(os.listdir(folder_path)): + # 检查文件是否是.png格式 + if filename.endswith('.png'): + # 构建图片的完整路径 + img_path = os.path.join(folder_path, filename) + + # 使用OpenCV读取图片为灰度图 + img = cv2.imread(img_path, cv2.IMREAD_GRAYSCALE) + + # 检查图片是否成功读取 + if img is not None: + # 使用阈值进行二值化处理 + # 假设我们使用127作为阈值,但这可以根据你的需求进行调整 + _, binary_img = cv2.threshold(img, 127, 255, cv2.THRESH_BINARY) + + # 将二值化后的图片添加到列表中 + binary_images.append(binary_img.tolist()) + + return binary_images + + +num_list = [ + [[0, 255, 255, 255, 255, 0], [255, 255, 0, 0, 255, 255], [255, 255, 0, 0, 255, 255], [255, 255, 0, 0, 255, 255], + [255, 255, 0, 0, 255, 255], [255, 255, 0, 0, 255, 255], [255, 255, 0, 0, 255, 255], [255, 255, 0, 0, 255, 255], + [255, 255, 0, 0, 255, 255], [0, 255, 255, 255, 255, 0]], + [[0, 0, 255, 255], [255, 255, 255, 255], [0, 0, 255, 255], [0, 0, 255, 255], [0, 0, 255, 255], [0, 0, 255, 255], + [0, 0, 255, 255], [0, 0, 255, 255], [0, 0, 255, 255], [0, 0, 255, 255]], + [[0, 255, 255, 255, 255, 0], [255, 255, 0, 0, 255, 255], [255, 255, 0, 0, 255, 255], [0, 0, 0, 0, 255, 255], + [0, 0, 0, 255, 255, 0], [0, 0, 255, 255, 0, 0], [0, 255, 255, 0, 0, 0], [255, 255, 0, 0, 0, 0], + [255, 255, 0, 0, 0, 0], [255, 255, 255, 255, 255, 255]], + [[0, 255, 255, 255, 255, 0], [255, 255, 0, 0, 255, 255], [0, 0, 0, 0, 255, 255], [0, 0, 0, 0, 255, 255], + [0, 0, 255, 255, 255, 0], [0, 0, 0, 0, 255, 255], [0, 0, 0, 0, 255, 255], [0, 0, 0, 0, 255, 255], + [255, 255, 0, 0, 255, 255], [0, 255, 255, 255, 255, 0]], + [[0, 0, 0, 0, 255, 255], [0, 0, 0, 255, 255, 255], [0, 0, 255, 255, 255, 255], [0, 0, 255, 255, 255, 255], + [0, 255, 255, 0, 255, 255], [0, 255, 255, 0, 255, 255], [255, 255, 0, 0, 255, 255], [255, 255, 255, 255, 255, 255], + [0, 0, 0, 0, 255, 255], [0, 0, 0, 0, 255, 255]], + [[255, 255, 255, 255, 255, 255], [255, 255, 0, 0, 0, 0], [255, 255, 0, 0, 0, 0], [255, 255, 0, 0, 0, 0], + [255, 255, 255, 255, 255, 0], [255, 255, 0, 0, 255, 255], [0, 0, 0, 0, 255, 255], [0, 0, 0, 0, 255, 255], + [255, 255, 0, 0, 255, 255], [0, 255, 255, 255, 255, 0]], + [[0, 255, 255, 255, 255, 0], [255, 255, 0, 0, 255, 255], [255, 255, 0, 0, 0, 0], [255, 255, 0, 0, 0, 0], + [255, 255, 255, 255, 255, 0], [255, 255, 0, 0, 255, 255], [255, 255, 0, 0, 255, 255], [255, 255, 0, 0, 255, 255], + [255, 255, 0, 0, 255, 255], [0, 255, 255, 255, 255, 0]], + [[255, 255, 255, 255, 255, 255], [0, 0, 0, 0, 255, 255], [0, 0, 0, 255, 255, 0], [0, 0, 0, 255, 255, 0], + [0, 0, 255, 255, 0, 0], [0, 0, 255, 255, 0, 0], [0, 0, 255, 255, 0, 0], [0, 255, 255, 0, 0, 0], + [0, 255, 255, 0, 0, 0], [0, 255, 255, 0, 0, 0]], + [[0, 255, 255, 255, 255, 0], [255, 255, 0, 0, 255, 255], [255, 255, 0, 0, 255, 255], [255, 255, 0, 0, 255, 255], + [0, 255, 255, 255, 255, 0], [255, 255, 0, 0, 255, 255], [255, 255, 0, 0, 255, 255], [255, 255, 0, 0, 255, 255], + [255, 255, 0, 0, 255, 255], [0, 255, 255, 255, 255, 0]], + [[0, 255, 255, 255, 255, 0], [255, 255, 0, 0, 255, 255], [255, 255, 0, 0, 255, 255], [255, 255, 0, 0, 255, 255], + [255, 255, 0, 0, 255, 255], [0, 255, 255, 255, 255, 255], [0, 0, 0, 0, 255, 255], [0, 0, 0, 0, 255, 255], + [255, 255, 0, 0, 255, 255], [0, 255, 255, 255, 255, 0]]]