我试图将13个彩色块的图片上的信息转换成一些文本.例如,我需要知道这里有多少黄色和蓝色块及其序列.
"C:\ target.jpg"
"C:\ blue.jpg"
"C:\ yellow.jpg"
我有的是:
import cv2 import numpy as np img_rgb = cv2.imread("c:\\target.jpg") img_gray = cv2.cvtColor(img_rgb, cv2.COLOR_BGR2GRAY) template = cv2.imread('c:\\blue.jpg',0) # template = cv2.imread('c:\\blue.jpg',0) w, h = template.shape[::-1] res = cv2.matchTemplate(img_gray,template,cv2.TM_CCOEFF_NORMED) threshold = 0.99 loc = np.where (res >= threshold) # if print loc # (array([ 3, 31, 59, 87, 115, 143, 171, 199, 227, 255, 283, 311, 339], dtype=int64), array([7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7], dtype=int64)) print str(loc[0] + loc[1])
当我单独运行它们时,会得到如下结果:
[ 13 41 69 97 125 153 181 209 237 265 293 321 349]
和
[ 10 38 66 94 122 150 178 206 234 262 290 318 346]
那些是13个数字,但我不知道如何处理它们.
如何将它们变成如下文本:
"蓝色,黄色,蓝色,黄色,蓝色,蓝色,黄色,黄色,蓝色,黄色,蓝色,黄色,蓝色,黄色".